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

⟦bf56e27db⟧ Wang Wps File

    Length: 90465 (0x16161)
    Types: Wang Wps File
    Notes: 99S/SDS/029               
    Names: »1827A «

Derivation

└─⟦bf0247e75⟧ Bits:30006089 8" Wang WCS floppy, CR 0141A
    └─ ⟦this⟧ »1827A « 

WangText



/               /…06….…0b…$…08…$…0a…$…0d…$…0e…$
$               #…08…#…0c…#…0e……1f……0a……1f……0f……1f……05……1e……0a……1e……0f……1e… …1d……09……1d……0c……1d……01……1d……07……1c……0c……1c……01……1c… …1c……05……1b……09……1b……0c……1b……0d……1b……01……1b……02……1b…
…1b……05……1a……0a……1a……0e……1a…                …19……08……19……0c……19……0d……19……0e……19…
…18……08……18……0c……18……00……18…                …86…1
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                …02… 
                 
                 
                 
                 
                 …02…
                 
                …02… 
                 
                 
                 
                

…02…CPS/SDS/029

…02…820514…02……02…
SYSTEM STATUS AND
 CONTROL
DETAILED DESIGN SPECIFICATION…02……02…CAMPS








4.2.9    C̲F̲H̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲



4.2.9.1  C̲F̲H̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The functions derived for the CFH subpackage are defined
         in figure 4.2.9.1-1.

         The CFH functions relate to the two input sources:

         -   execution of online operator commands

         -   handling of FMS, TMS and WDP errorreports and the
             functions derived from functional responsibilities:

         -   own errorhandling

         -   security handling

         -   start-up, which includes execution of the operator
             start-up command.















































               Fig. 4.2.9.1-1…01…CFH FUNCTIONS


4.2.9.1.1 …02…C̲O̲P̲S̲Y̲ ̲s̲t̲a̲r̲t̲-̲u̲p̲ ̲f̲u̲n̲c̲t̲i̲o̲n̲s̲

         The COPSY start-up responsibilities relate to the actions
         taken subsequent to a DAMOS bootload sequence and until
         online operation (refer to fig. 4.2.9.1.1-1 overleaf).

         The

         -   initialize COPSY

         -   execute start cmd

         -   initialize mirrored disk

         -   operator only actions

         -   supervisor only actions

         are described in section 2.2.2.1 and are not further
         detailed.








































                     4.2.9.1.3 (l/3)















































                   Fig. 4.2.9.1.1 (2/3)















































                   Fig. 4.2.9.1.1 (3/3)


         The following sections expand the

         -   create, load and start processes

         -   create peripherals

         functions.

         The description is divided into

         -   general start-up principles

         -   handling of objects and subjects

         -   start of processes


4.2.9.1.2    G̲e̲n̲e̲r̲a̲l̲ ̲S̲t̲a̲r̲t̲-̲u̲p̲ ̲p̲r̲i̲n̲c̲i̲p̲l̲e̲s̲

         A CAMPS software configuration is defined by

         -   configuration parameters per t̲y̲p̲e̲ of peripheral
             device connected to the CAMPS system e.g.
             VDU, ROP, TRC-PTOP etc.

         -   a set of load files per t̲y̲p̲e̲ of process

         -   a set of constants defining the maximum CAMPS site
             (corresponding to the maximum wired capacity) named
             "Maximum Configuration". The constants are preceded
             by MAX-; e.g. MAX ̲VDUS. The constants defines the
             maximum number of lines within a peripheral type.

         -   a set of constants defining a specific CAMPS site
             named "Site Configuration".

             The constants are preceded by NO ̲OF; e.g.
             NO ̲OF ̲VDUS.

         The configuration parameters per type are contained
         in a file CONFIG, which defines data for

         -   process
         -   subprocess
         -   mirrored disks
         -   CAMPS queues

         creation.

         The file is loaded into COPSY data space in a specific
         segment named CONFIG during the start-up phase.

         Given the above configuration data COPSY creates:

         -   processes
         -   subprocesses
         -   queues
         -   COPSY coroutines

         Processes, subprocesses and COPSY Coroutines are created
         according to the site configuration.


         CAMPS queues are created according to the maximum configuration.
         Hereby the logical terminal, device, channel numbers
         can be used in queue referencing in group capabilities.

         Site dependant disk tables are created according to
         the maximum configuration.

         For terminal device and channel tables the supervisor
         ensures that only entries corresponding to the site
         configuration are used.

         Thereby logical terminal device and channel numbers
         can be used in table referencing.

         The disk table creation is not a SSC responsibility.



4.2.9.1.2.1  O̲t̲h̲e̲r̲ ̲c̲o̲n̲s̲t̲r̲a̲i̲n̲t̲s̲

         a)  M̲e̲m̲o̲r̲y̲ ̲S̲i̲z̲e̲

             All process data and program space are memory resident.

         b)  P̲r̲o̲c̲e̲s̲s̲ ̲s̲e̲g̲m̲e̲n̲t̲s̲

             A process only contains one user level application

             -   program segment
             -   data segment

         As data segments have to be mapped into TMP data space
         during TMP data transfers a limit is set on the data
         segment size. This again limits the number of subprocesses
         in a process.

         The COMON segment is actually also a user level program
         segment.


4.2.9.1.3    H̲a̲n̲d̲l̲i̲n̲g̲ ̲o̲f̲ ̲o̲b̲j̲e̲c̲t̲s̲ ̲a̲n̲d̲ ̲s̲u̲b̲j̲e̲c̲t̲s̲

         The section defines the "subjects"

         -   processes and

         -   subprocesses

         in CAMPS and the associated "objects" i.e.

         -   Kernel objects

         -   FMS objects

         -   TMS objects

         -   CAMPS queues

         The definition refer to

         -   creation of objects

         -   how a process gets a handle to an object

         -   the security setting

         -   the resource management


4.2.9.1.3.1  C̲A̲M̲P̲S̲ ̲p̲r̲o̲c̲e̲s̲s̲e̲s̲ ̲a̲n̲d̲ ̲s̲u̲b̲p̲r̲o̲c̲e̲s̲s̲e̲s̲

         The CAMPS online software consists of a Kernel and
         a number of processes as illustrated in figure 4.2.9.1.3.1-1
         overleaf, where processes are arranged hierarchically
         with respect to creation.

         Processes are divided into

         -   line and

         -   non line processes

         Non-line processes and COPSY corresponds to one CAMPS
         subprocess.

         The line processes contains a number of subprocesses.

         Except for the user process, the subprocesses within
         a process are of the same type. A user process contains

         -   a USER subprocess

         -   Max one MSO subprocess

         -   Max one MDCO subprocess

         depending on the number of MSO and MDCO subprocesses.















































         Fig. 4.2.9.1.3.1-1…01…CAMPS online software


         The load and initialization of

         -   the Kernel
         -   ROOT
         -   FMS-MOVING
         -   FMS-FIXED
         -   TMS
         -   COPSY
         -   DUMMY PROCESSES

         is performed by DAMOS as a result of the BOOT command.

         The user interface to Kernel initialization, is the
         SASS (system attributes specification segment), which
         contains start-up parameters for the DAMOS modules.

         The SASS parameters are specified in CPS/SDS/013, Appendix
         8.

         DAMOS INITIALIZATION

         The user interface to ROOT start-up, is a command and
         parameter list, which defines the processes and resources
         to be created by ROOT.

         The parameters include the object code for the ROOT
         children.

         The ROOT command/parameter format is specified in CPS/SDS/015,
         Appendix 2:

         DAMOS ROOT OPERATING SYSTEM

         ROOT loads and starts the file systems

         -   FMS ̲MOVING (includes the MMS)

         for the mirrored, offline and floppy moving head disks
         

         -   FMS ̲FIXED

         for the mirrored fixed head disks,

         which are to be used during subsequent COPSY child
         process load (refer to fig. 4.2.9.1.3.2-2 overleaf).

         Also, ROOT creates, loads and starts the terminal management
         system (TMS ̲ID), a dummy process per CPU and COPSY.















































          Fig. 4.2.9.1.3.1-2…01…CAMPS File Systems


4.2.9.1.3.2  H̲a̲n̲d̲l̲i̲n̲g̲ ̲o̲f̲ ̲K̲e̲r̲n̲e̲l̲ ̲o̲b̲j̲e̲c̲t̲s̲

         The DAMOS Kernel handles the following objects:

             -   process ̲object
             -   segment ̲object
             -   CPU ̲object
             -   CPU ̲pool ̲object
             -   sync ̲el ̲object
             -   device ̲object
             -   resource ̲pool ̲object


         a)  P̲r̲o̲c̲e̲s̲s̲ ̲o̲b̲j̲e̲c̲t̲s̲

             The CAMPS process tree is defined in the previous
             section. No COPSY childprocesses create processes.

             During process creation a process "user" identification
             to be used in

             -   profile and functional capability checking
                 in the Kernel, FMS and TMS for a process versus
                 an object is specified.

             The user identification consists of two parts:

             -   a user group identification (UGI)
             -   a unique process identification

             In CAMPS the UGI is set identical to the CAMPS
             process no.

             The unique process identification is the PROC ̲ID
             received during creation of a process.


         b)  M̲e̲m̲o̲r̲y̲ ̲S̲e̲g̲m̲e̲n̲t̲ ̲o̲b̲j̲e̲c̲t̲s̲

             In figure 4.2.9.1.3.2-1 and 2 is shown the memory
             segments applicable for COPSY and its childprocesses.

             The

             -   COMON segment is created and loaded by ROOT

             -   CSF ̲SHARED and TMP ̲SHARED segments are created
                 by ROOT, but loaded by COPSY

             -   COPSY PS, DS, and PPS are created and loaded
                 by ROOT

             -   COPSY child PS, DS and PPS are created and
                 loaded by COPSY

         The PS, DS and PPS segments are specificed in a DAMOS
         Create ̲Process call and are mapped in by DAMOS.

         The COMON segment is inherited to COPSY and to children
         and are mapped in by the PRE ̲INITIALIZATION procedure
         (refer the SWICD and below).

         The CSF ̲SHARED and TMP ̲SHARED segments are inherited
         to COPSY and all COPSY children. The segments are mapped
         into a process during level 6 initialization (refer
         below).



         page        PROGRAM SPACE

                      ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ 

         0                                 GPS (global program
                                           segment)


                      ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ 


                                           PS (program segment)

                      ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲


                                           COMON (coroutine
                                           monitor segment
                      ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲


         63
                      ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲




















                             

 Fig. 4.2.9.1.3.2-1…01…CAMPS Process Program Memory Segments



         LEVEL   BOUND                            PAGE    SEGMENT

                 15           ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲

                             PPP                  63

         15
                              ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                             OBJECT DESCRIPTOR
                             TABLE
                 12,13,14     ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
         12                  XFER DATA
                 8,9,10,11    ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
         8                   IOS DATA
                 7            ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
         7                   STREAM DATA                  PPS
                 6            ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                             CSF LOCAL DATA
                              ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                             IOC LOCAL DATA
                              ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
         6                   TMP LOCAL DATA
                              ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                             TMP SHARED DATA              TMP
                                                          ̲SHARED
                              ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                             CSF SHARED DATA
                 1,2,3,4,5    ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
         1                   STP SHARED DATA              CSF
                                                          ̲SHARED
                 0            ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                             
                             empty              
         0                                                
                              ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                             DS                   0       DS
                              ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲









    Fig. 4.2.9.1.3.2-2…01…CAMPS process data space layout


         b1) D̲a̲t̲a̲ ̲S̲p̲a̲c̲e̲ ̲l̲a̲y̲o̲u̲t̲

             The CAMPS Process data space is defined in figure
             4.2.9.1.3.2-2.

             A DS (user mode data segment) and a PPS (process
             parameter segments) are created per process.

             The TMP ̲SHARED and CSF ̲SHARED segments only exists
             in one incarnation.

             The data space contains 16 levels defined by a
             number of BOUNDS, which are specified during process
             creation in the "process-creation-block". TMP ̲SHARED
             and CSF ̲SHARED are mapped in at the same page for
             all processes. The CAMPS service  system interfaces
             from

             -   CSF
             -   TMP
             -   IOC

             are executed in level 6, while

             -   STP service system interfaces are executed
                 on level 1.

         A level generally contains

         -   start-up parameters and

         -   data space

         to be used in the process to service system communication.

         Level 1 and 6 data will be defined during system generation.

         The stream level is not used, as CAMPS uses direct
         I/O.

         The IOS level data are specified in 



         CSS/4200
         I/O-SYSTEM ̲TYPES for PPS
         and will be defined during system generation.

         The XFER level data are specified in CSS/3200
         TRANSFER MODULE FOR PPS
         and will be defined during system generation.

         Level 15 contains Kernel data and includes

         -   the PPP (process parameter page)
         -   the object descriptor table

         Objects in the parents object descriptor table to be
         inherited to a child are specified in the future object
         descriptor table for the child.

         To each object inherited a capability vector is specified.

         In CAMPS

         -   FMS/TMS synchronization elements
         -   CPU pools
         -   CPU
         -   CSF/TMP synchronization elements
         -   COMON, CSF ̲SHARED, TMP ̲SHARED segments

             are inherited to children as is described for the
             object in question in this section.

             Inherited objects are accessed by a child according
             to the position in the inherit list. Identical
             objects (e.g. FMS synchr. elements) and identical
             object types (e.g. QMON ̲RSE) are identified by
             Common constants for all processes. Refer to section
             4.2.9.5.

         b2) L̲e̲v̲e̲l̲ ̲i̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲

             During resume of a process an initialization mask
             is specified in the "process creation block", which
             for each of the above defined levels defines if
             an initialization procedure is to be invoked prior
             to letting a process start execution.



             DAMOS provides

             -   XFER and

             -   IOS

             -   STREAM

             initialization procedures.

             Only the XFER and IOS initialization procedures
             are invoked in CAMPS for processes, which uses
             FMS or TMS.

             The IOS initialization procedure functions includes:

             -   look up of service system synchronization elements
             -   creation of response synchronization element
             -   set up of a service system communication

             The CAMPS level 6 and level 1 initialization procedures
             will be defined during system generation. The map-in
             of the

             -   CSF ̲SHARED
             -   TMP ̲SHARED

             segments is supported.

         The level 0 initialization procedure is named

         -   PREINITIALIZATION

         and is designed in the SWICD section 6.5.

         It implements the functions:

         -   map in of COMON segment
         -   in trace mode the
             -   trace file is looked-up and
             -   the INIT ̲TRACE procedure is invoked.

         The registers R0..R7 are used to define start-up information
         to a child (refer SWICD section 6.5).



         The information includes

         -   start-up type
         -   identification of subprocesses within the process

             -   no of subprocesses within type
             -   types of subprocess

         -   a CAMPS sequential process number

         c)  C̲P̲U̲ ̲a̲n̲d̲ ̲C̲P̲U̲ ̲p̲o̲o̲l̲ ̲o̲b̲j̲e̲c̲t̲s̲

             CPU and CPU pool objects can not be created (they
             are precreated by ROOT).

             CPU objects are inherited to all COPSY children
             and are used for performance monitoring of the
             CPU.

             CPU pool objects are inherited to COPSY and are
             given to children in the DAMOS create-process "process-creation-block".

         d)  S̲y̲n̲c̲h̲r̲o̲n̲i̲z̲a̲t̲i̲o̲n̲ ̲e̲l̲e̲m̲e̲n̲t̲ ̲o̲b̲j̲e̲c̲t̲s̲

             ROOT creates the following sync.els:

             -   FMS sync els (FMS)
             -   TMS sync els (TMS)
             -   CESE (DAMOS central errorreporting synchronization
                 element)
             -   TMON ̲SE (CSF)
             -   CSF ̲REPORT ̲SE (CSF) (SEMAPHORE)
             -   CSF ̲SAVE ̲SE (CSF)
             -   CSF ̲RTC ̲SE (CSF)(SEMAPHORE)
             -   TMP ̲SEARCH ̲SE (TMP)
             -   TMP ̲UPDATE ̲SE (TMP)
             -   STP ̲RESERVATION ̲SE (CSF)(SEMAPHORE)
             -   SYSE (COPSY)
             -   MMON ̲RSE (CSF)
             -   QMON ̲RSE (CSF)
             -   TMP ̲RSE (TMP)

         and inherits the objects to COPSY. COPSY again inherits
         the request sync.els ( ̲SE), received from ROOT to its
         children.



         COPSY creates reply sync. els ( ̲RSE), and inherits
         these to its children.

         Reply synchronization elements for TMS and FMS are
         created by IOS during level 8 initialization.

         The QMON ̲RSE objects and the STP ̲RESERVATION ̲SE are
         cataloged by the creator.

         Also, the FMS and TMS synchronization elements are
         cataloged.

         COPSY also creates a

         -   PSE (parent synchronization element), which are
             specified in the process creation block during
             DAMOS create ̲process.

         -   DSSE (device status sync.el used for FMS and TMS
             asynchronous reporting), which are specified in
             TMS assign and create subdevice and FMS assign
             commands.

         e)  D̲e̲v̲i̲c̲e̲ ̲o̲b̲j̲e̲c̲t̲s̲

             All devices are assigned by COPSY.

         f)  R̲e̲s̲o̲u̲r̲c̲e̲ ̲p̲o̲o̲l̲ ̲o̲b̲j̲e̲c̲t̲s̲

             No such pools exist in CAMPS.



4.2.9.1.3.3  S̲e̲c̲u̲r̲i̲t̲y̲ ̲o̲n̲ ̲K̲e̲r̲n̲e̲l̲ ̲o̲b̲j̲e̲c̲t̲s̲

         a)  C̲a̲p̲a̲b̲i̲l̲i̲t̲y̲ ̲v̲e̲c̲t̲o̲r̲s̲

             Functional capabilities are specified during inheritance
             of objects according to data in the CONFIG segment.

         b)  O̲b̲j̲e̲c̲t̲ ̲l̲e̲v̲e̲l̲

             All ROOT and COPSY created synchronization elements
             are given level 8. The TMP ̲SHARED and CSF ̲SHARED
             segments are given level 6. The COPSY, TMP and
             CSF processes are given level 8.

             Remaining objects are given level 0.



         c)  P̲r̲o̲f̲i̲l̲e̲s̲

             In CAMPS, the DAMOS security profiles have an appearance
             as defined in figure 4.2.9.1.3.3-1.
             A profile is set during creation of an object.

         C1) S̲y̲n̲c̲ ̲e̲l̲e̲m̲e̲n̲t̲ ̲p̲r̲o̲f̲i̲l̲e̲s̲

             All CAMPS sync. els have the same profile, the
             maximum profile:

             -   classification = CTS (cosmic top secret) (S
                 = 5)

             -   the atomal and encrypted special handling categories
                 are set (A = 1 and E = 1)

         C2) S̲e̲g̲m̲e̲n̲t̲ ̲p̲r̲o̲f̲i̲l̲e̲s̲

             The coroutine monitor segment COMON has an all
             zero profile as it is accessed by all COPSY child
             processes and by COPSY.

             The TMP ̲SHARED and CSF ̲SHARED segments have the
             maximum profile.

             All DSs (data segment) and PSs (program segment)
             have a profile as the process they use to be mapped
             into.

         C3) P̲r̲o̲c̲e̲s̲s̲ ̲P̲r̲o̲f̲i̲l̲e̲s̲

             The processes

             -   LOG
             -   STP
             -   CMI
             -   OLD

             have an all zero profile (as they do not handle
             classified objects), while remaining processes
             have the maximum profile and are trusted.

             TMP is given the maximum profile as it has to map-in
             the DS-data segment for any process.



         15                       1     0
          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲

         T           S            A     E
          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲



         T:  Trusted Flag         (only applicable for processes)

         S:  Security Classification    0    dummy
                                        1    unclassified
                                        2    restricted
                                        3    confidential
                                        4    secret
                                        5    CTS


         A:  Atomal Special Handling Category

         E:  Encrypted Special Handling Category




















    DAMOS Security Profile in CAMPS…01…Fig. 4.2.9.1.3.3-1


4.2.9.1.3.4  K̲e̲r̲n̲e̲l̲ ̲R̲e̲s̲o̲u̲r̲c̲e̲s̲

         DAMOS resources are specified below (refer to DAMOS
         for a definition of the types):


         -   resource ̲pool ̲resource,
         -   process ̲resource,
         -   sync ̲el ̲resource,
         -   pcf ̲list ̲el ̲resource,      "used during AWAIT
         -   info ̲el ̲resource,          "used during SEND
         -   segment ̲resource,
         -   pm ̲list ̲el ̲resource,
         -   internal ̲ram ̲ws ̲resource,
         -   external ̲ram ̲ws ̲resource,
         -   special ̲mem ̲ws ̲resource,
         -   vm ̲resource,
         -   df ̲entry ̲resource,
         -   df ̲acle ̲resource,
         -   DMA ̲resource,
         -   STI ̲resource


         The ROOT process initially owns all resources.

         During process creation a resource specification is
         given, which per resource type specifies the maximum
         claim for the child to the resource. 

         In CAMPS no resource pools are created, but resources
         are drawn from the natural pool of a process, i.e.
         from the parents resources.

         Processes does not share resources; i.e. the sum of
         the max. claims for

         -   ROOT children and
         -   COPSY child processes

         to a specific resource type is less than or equal to
         the ROOT natural pool.

         The allocation of DAMOS resources to a process is specified
         in the PROCESS ̲CONF table.


4.2.9.1.3.5  F̲M̲S̲ ̲o̲b̲j̲e̲c̲t̲s̲

         CFH creates all files/directories on the mirroed disks,
         enters file names into directories and projects files/directories.
         Children have to lookup their files to get a handle.

         CFH assigns disks and mounts volumes according to the
         status of the device, which is specified in a port-table.

         CFH assigns the mirrored disks and mounts the volume.

         The offline disk is assigned by COPSY, but mounting
         is handled by the supervisor. The floppy disk is assigned
         and mounted by CFH.

         ROOT users COPSY on to FMS, whereas CFH users on the
         COPSY childprocesses, which uses the FMS. COPSY and
         the supervisor(in order to mount volumes) are system
         users, while all children are ordinary users.

         During user-on, resources for the child process within
         FMS are specified (e.g. no of files open simultaneously).

         The resources to be used by the childprocess itself
         are specified in the PPS at the IOS level 8 and are
         taken from PPS memory space (e.g. no of simultaneous
         IO-requests).

         The profile of all files is set to zero by CFH via
         a call of the CHANGE ̲PROFILE Command.

         CFH looks up the CSF MMSSTORAGE file and gives it the
         maximum profile.



4.2.9.1.3.6  T̲M̲S̲ ̲O̲b̲j̲e̲c̲t̲s̲

         CFH creates devices according to the status of the
         device, which is contained in a port-table.

         STI devices, TIA and LTUX subdevices are created by
         CFH, whereas LTUX line subdevices/"terminals" are created
         by TEMCO, DEMCO, CEMCO.



         LTU devices are assigned by CFH, whereas LTU line subdevices/"terminals"
         are created by CEMCO.

         During "terminal" creation an access level is specified.
         This level corresponds to the Format Handler CPU level.
         By this specification, it is ensured that the IOS can
         not be called from below the Format Handler level.

         The MAP is assigned by CFH, whereas WDP subdevices/"terminals"
         are created by WAMCO.

         TMS connections to a line are offered to a line handling
         subprocess, which has to accept the line.

         In the offer command is specified functional capabilities
         for the child.

         The security profile for the line is set via the CHANGE
         ̲PROFILE command (refer to figure 4.2.9.1.3.3-1  for
         a profile layout) according to the terminal, device
         or channel profile by TEMCO, DEMCO, CEMCO. All children
         are trusted. The TMS purges buffers for lines having
         a security classification higher than a security level,
         which is initially defined to TMS.

         ROOT users on COPSY to TMS.

         CFH users on COPSY children, which uses TMS, to TMS.

         For resource handling refer to FMS objects.


4.2.9.1.3.7  C̲A̲M̲P̲S̲ ̲q̲u̲e̲u̲e̲s̲ ̲a̲n̲d̲ ̲s̲u̲b̲p̲r̲o̲c̲e̲s̲s̲e̲s̲

         CAMPS queues are created by CTH (via the INITIALIZE
         ̲QUEUES CSF command).

         Subprocesses are initially identified to CSF and initial
         profiles and functional capability are set by CFH (via
         the CHANGE ̲SUBPROCESS ̲ATTRIBUTES command).

         Queue profiles, which depends on terminal, device or
         channel profile contents, are initially set by TEMCO,
         DEMCO, CEMCO (via the SET ̲PROFILE Command).

         During online operation TEMCO, DEMCO, CEMCO sets:

         -   CHANGE ̲SUBPROCESS ̲ATTRIBUTES (sets subprocess profile)

         -   SET ̲PROFILE (sets queue profile)

         -   SET ̲CAPABILITY (sets subprocess functional capability
             to a queue)

         The supervisor handler blocking of queues.



4.2.9.1.4    S̲t̲a̲r̲t̲ ̲p̲r̲o̲c̲e̲s̲s̲e̲s̲

         COPSY childprocesses and MMS (in FMS ̲MOVING) are started
         by CFH.

         The start-up method depends upon the process type:

         -   MMS

             MMS is resumed by ROOT, but is logically started
             by CFH via a system call. The system call START
             ̲SYSTEM requests the MMS to restore queue contents
             in WARM1 start-up.

         -   non-line processes.

             These processes are started by a DAMOS resume command.

             CFH does not synchronize the start-up.


         -   line processes.

             These processes are started by a DAMOS resume command
             and logically on a subprocess basis via CAMPS queue
             commands.

             CFHs initiates the start-up by starting the TEMCO,
             DEMCO, CEMCO, WAMCO coroutines via a command to
             an operation semaphore.



4.2.9.1.5    C̲F̲H̲ ̲o̲n̲l̲i̲n̲e̲ ̲f̲u̲n̲c̲t̲i̲o̲n̲s̲

         The CFH online functions are defined overleaf.

         CFH receives FMS, TMS and WDP errorreports and operator
         commands.

         The CFH functions related to errorreport handling are
         defined in section 4.1.1.3.















































          Fig. 4.2.9.1.5-1…01…Online CFH functions


4.2.9.1.5.1  O̲p̲e̲r̲a̲t̲o̲r̲ ̲c̲o̲m̲m̲a̲n̲d̲s̲

         CFH receives requests for execution of operator commands
         from the CMI and sends a reply upon completion of execution.

         The operator commands are divided into the following
         areas:

         -   PU reconfiguration
         -   software control
         -   peripheral reconfiguration

         The following PU reconfiguration commands are handled.

         -   close ̲down active PU
         -   close ̲down standby PU
         -   switchover

         The commands are described in section 4.1.1.4.

         CFH executes the CFH software control commands:

         -   load modified software
         -   print software version
         -   set trace mask
         -   adjust time

         The commands will be further described in the module
         section.

         CFH executes the peripheral reconfiguration commands:

         -   handle BSM ̲X
         -   handle LTUX
         -   handle LTUX ̲LINE
         -   handle LTU
         -   handle LTU ̲LINE
         -   handle DISKS


         For disks handle covers the commands:

         -   set offline (i.e. the device is connected to the
             offline PU)

         -   enable (FMS: ASSIGN)

         -   disable (FMS: DISMANTLE)

         -   mount

         -   dismount

         For BSM ̲X, LTUX, LTUX ̲LINE, LTU, LTU ̲LINE HANDLE covers
         the commands

         -   set offline (TMS: deassign and WDP control)

         -   enable (TMS: create ̲subdevice)

         -   disable (TMS: dismantle)

         -   take out of service (TMS: dismantle)



4.2.9.1.6    C̲o̲m̲m̲o̲n̲ ̲f̲u̲n̲c̲t̲i̲o̲n̲s̲

         The CFH functional breakdown has identified the common
         functions, which are defined in figure 4.2.9.1.6-1
         overleaf.

         The common functions are realized by a number of CFH
         common procedures.















































          Fig. 4.2.9.1.6-1…01…Common CFH functions


4.2.9.1.7    C̲F̲H̲ ̲i̲n̲t̲e̲r̲n̲a̲l̲ ̲e̲r̲r̲o̲r̲h̲a̲n̲d̲l̲i̲n̲g̲ ̲a̲n̲d̲ ̲v̲a̲l̲i̲d̲i̲t̲y̲ ̲c̲h̲e̲c̲k̲s̲

         The general CFH errorhandling and validity checking
         is defined in section 2.2.2.3.

         The specific errorhandling and validity checking is
         included in the module design.



4.2.9.1.8    C̲F̲H̲ ̲s̲e̲c̲u̲r̲i̲t̲y̲ ̲f̲u̲n̲c̲t̲i̲o̲n̲s̲

         The CFH security functions relating to 

         -   DAMOS/FMS/TMS objects and processes

         -   CAMPS queues and subqueues

         are defined in section 4.2.9.1.3.




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

         CFH contains 12 modules, a number of common procedures
         and a common coroutine (COUNT)
         A hierarchical invocation diagram for CFH modules is
         presented overleaf.

         The module COPSY ̲MAIN contains the COPSY main program.

         The remaining modules are procedure collections within
         the CFH coroutine.

         In figure 4.2.9.2-2 functions defined in section 4.2.9.2
         are allocated to modules.

















































                      Fig 4.2.9.2-1

















































                      Fig. 4.2.9.2-1


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



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

         The control logic for the CFH subpackage is illustrated
         in figure 4.2.9.3-1.

         Modules are indicated by capital letters.

         The logic is only schematically specified. The CREATE
         ̲ENVIRONMENT module also invokes:

         -   LOAD ̲SEGMENT

         and the OPERATOR and SUPERVISOR ̲ONLY ̲MODE modules also
         invokes:

         -   HW ̲ERROR ̲HANDLING.



   COPSY ̲MAIN
   begin
       create ̲copsy ̲coroutines
   end

   CFH ̲MAIN
   begin
       execute ̲start ̲up ̲command
       CREATE ̲PROCESSES
       begin
           CREATE ̲ENVIRONMENT
           loop ̲for ̲all ̲child ̲processes
               for ̲each ̲process ̲segment ̲do  : LOAD ̲SEGMENT
               create ̲process
           end loop
           start ̲up ̲type eq dead 1 or dead 2 ? INITIALIZE
           ̲MIRRORED ̲
                                                     
                        DISKS ̲QUEUES

       end ̲create ̲process

       start ̲up ̲type eq sb1 or sb2 ? await ̲the ̲wdp ̲signals
       ̲
                                                     
                       go ̲sb ̲active
       CREATE ̲PERIPHERALS

       operator ̲only ̲mode eq true ?    OPERATOR ̲ONLY ̲MODE

       supervisor only ̲mode eq true ?  SUPERVISOR ̲ONLY
       ̲MODE

       start ̲processes

       ONLINE ̲OPERATION
       begin
           loop ̲forever
               serve ̲cfh ̲os () (cmd)
               case cmd of
                   wdp,fms,tms ̲report ?    HW ̲ERROR ̲HANDLING

                   cmi ̲cmd?  case cmi ̲cmd of
                                close ̲active ? ORDERED
                       ̲CLOSE ̲DOWN
                                other ? execute command
                             end case

               end ̲case ̲cmd
           end ̲loop ̲forever
       end ̲online ̲operation
   end ̲cfh ̲main


                  Figure 4.2.9.3-1
                 CFH Control Logic


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



4.2.9.3.2.1 T̲a̲b̲l̲e̲s̲

         CFH makes use of the following tables:

         a)  P̲O̲R̲T̲ ̲T̲a̲b̲l̲e̲s̲ ̲(̲D̲B̲D̲)̲

             These tables contains a:

             -   PU, BSM ̲X, LTUX, LTU, LTUX ̲LINE and an LTU
                 ̲LINE table. The tables are used to:

             -   determine the initial CAMPS hardware configuration

             -   register the current hardware configuration
                 which are updated by the operator

             -   contain the status for all devices which may
                 be changed due to:

                 -   ERRORS
                 -   Operator setting


         b)  P̲r̲o̲f̲i̲l̲e̲s̲ ̲(̲D̲B̲D̲)̲

             CFH accesses the

             -   terminal, device and channel table profile
                 connected/block field to ensure that terminal/traffic
                 activities are closed during operator reconfigurations.

         c)  I̲n̲h̲e̲r̲i̲t̲a̲n̲c̲e̲ ̲t̲a̲b̲l̲e̲s̲ ̲(̲D̲B̲D̲)̲

             CFH updates during the initialization 

             -   a TMP ̲LOAD ̲TABLE
             -   a CSF ̲LOAD ̲TABLE

             which are loaded into TMP,CSF data space during
             process segment load.


             Also, environment tables data to all processes
             are updated. Especially a

             -   CSF ̲ENVIRONMENT and a
             -   TMP ̲ENVIRONMENT

             is made

         d)  C̲o̲n̲f̲i̲g̲u̲r̲a̲t̲i̲o̲n̲ ̲t̲a̲b̲l̲e̲s̲ ̲(̲C̲F̲H̲.̲C̲O̲M̲M̲O̲N̲)̲

             A number of configuration tables (refer to section
             4.2.9.5.1) are accessed to create the CAMPS Software
             System.

         e)  P̲R̲O̲C̲E̲S̲S̲ ̲T̲A̲B̲L̲E̲ ̲(̲S̲S̲C̲.̲C̲O̲M̲M̲O̲N̲)̲

             During the initialization phase CFH saves objects
             concerning a process in the process entry.

             During online operation the table is used by SEH
             to register the overall process state.

         f)  S̲U̲B̲P̲ ̲T̲A̲B̲L̲E̲ ̲(̲S̲S̲C̲.̲C̲O̲M̲M̲O̲N̲)̲

             CFH updates during the initialization phase the
             process no to subprocess no relationship.

         g)  S̲U̲B̲P̲ ̲T̲A̲B̲L̲E̲ ̲(̲S̲S̲C̲.̲C̲O̲M̲M̲O̲N̲)̲

             CFH updates during the initialization phase per
             subprocess type:

             -   the first subprocess no within the type
             -   the number of subprocesses within the type
             -   the number of subprocesses of the given type
                 which exists in a single process
             -   access rights to be used during offer of connection
                 to childs.

         h)  L̲O̲G̲ ̲D̲ ̲T̲O̲ ̲L̲O̲C̲A̲L̲ ̲(̲S̲S̲C̲.̲C̲O̲M̲M̲O̲N̲)̲

             CFH updates during the initialization phase a

             -   logical device no to local device relation.

         i)  L̲O̲G̲ ̲C̲ ̲T̲O̲ ̲L̲O̲C̲A̲L̲ ̲(̲S̲S̲C̲.̲C̲O̲M̲M̲O̲N̲)̲

             CFH updates during the initialization phase a

             -   logical channel no to local channel no relation.


         j)  M̲M̲O̲N̲ ̲R̲S̲E̲ ̲T̲A̲B̲L̲E̲ ̲(̲S̲S̲C̲.̲C̲O̲M̲M̲O̲N̲)̲

             During the initialization phase CFH updates the
             subprocess no to MMON reply synchronization element
             relationship, which is used by TEMCO to answer
             MMON security interrogation/warning requests.



4.2.9.3.2.2 F̲i̲l̲e̲s̲

         SSC files are described in section 4.1.4.

         a)  P̲a̲t̲c̲h̲f̲i̲l̲e̲s̲

             CFH uses the patchfiles during sequent load. The
             patchfiles can be copied to another volume due
             to operator request.

         b)  F̲o̲r̲m̲a̲t̲s̲

             During dead 1, dead 2 start-up from the offline
             disk, CFH copies format files to the mirrored disks.

         c)  G̲a̲r̲b̲l̲e̲ ̲f̲i̲l̲e̲

             CFH copies the mirrored garble file to another
             volume on operator request.

         d)  B̲O̲O̲T̲ ̲C̲A̲M̲P̲S̲

             CFH copies the BOOT ̲CAMPS file from one volume
             to another. The file is accessed by the DAMOS bootleader.

         e)  L̲o̲a̲d̲ ̲F̲i̲l̲e̲s̲

             The LTU ̲FW files are used for LTU creation:

             -   during initialization
             -   online.


             The DS, PS, PPS load files are used for segment
             load during initialization. The CONFIG file is
             used for:

             -   process
             -   mirrored disk
             -   CAMPS queues

             creation. All load files in common can be copied
             between volumes during online operation on operator
             request.



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



4.2.9.4.1 T̲h̲e̲ ̲C̲O̲P̲S̲Y̲ ̲M̲A̲I̲N̲ ̲M̲o̲d̲u̲l̲e̲



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

         The module which constitutes the COPSY Main Program,
         creates the semaphores which COPSY uses.

         Thereafter pools for internal coroutine communication
         is made.

         At last all coroutines in COPSY are initialized and
         the CFH coroutine started.



4.2.9.4.1.2 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)  COPSY ̲MAIN
         b)  COPSY ̲MAIN (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  LINK


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

         COPSY ̲MAIN contains/references the procedures/modules
         specified in figure 4.2.9.4.1.3-1. The own procedures
         are described in section 4.2.9.4.1.5.








                   Figure 4.2.9.4.1.3-1



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

         a 1) C̲o̲n̲s̲t̲a̲n̲t̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲ ̲i̲n̲ ̲S̲S̲C̲ ̲C̲O̲M̲M̲O̲N̲

             "P̲r̲i̲o̲r̲i̲t̲i̲e̲s̲

             CFH ̲PRIO, SEH ̲PRIO, CMD ̲PRIO, WDP ̲MONITOR ̲REPORTS
             ̲PRIO,KEEP ̲ALIVE ̲PRIO, RECEIVE ̲OPERATIONAL ̲COMMANDS
             ̲PRIO, COUNT ̲PRIO, SHORT ̲PRIO, LONG ̲PRIO, TEMCO
             ̲PRIO, DEMCO ̲PRIO, CEMCO ̲PRIO, PRINT ̲ERROR ̲REPORT
             ̲PRIO.

             C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲P̲r̲o̲g̲r̲a̲m̲ ̲E̲n̲t̲r̲i̲e̲s̲

             SEH ̲MAIN, CFH ̲MAIN, WDP ̲MONITOR ̲REPORTS, KEEP ̲ALIVE,
             RECEIVE ̲OPERATIONAL ̲COMMANDS, COUNT ̲MAIN, CMD ̲MAIN,
             TEMCO ̲MAIN, DEMCO ̲MAIN, CEMCO ̲MAIN, PRINT ̲ERRROR
             ̲REPORT.

             O̲p̲e̲r̲a̲t̲i̲o̲n̲ ̲B̲u̲f̲f̲e̲r̲s̲

             NO ̲OF ̲SHORT ̲OPERATIONS,
             NO ̲OF ̲LONG ̲OPERATIONS

         a2) S̲i̲t̲e̲ ̲D̲e̲p̲e̲n̲d̲e̲n̲t̲ ̲C̲o̲n̲s̲t̲a̲n̲t̲s̲ ̲i̲n̲ ̲D̲B̲D̲

             NO ̲OF ̲VDUS,
             NO ̲OF ̲SADS,
             NO ̲OF ̲EXCS,
             NO ̲OF ̲MTP ̲ROPS, MAX ̲MTP ̲ROPS,
             NO ̲OF ̲LTPS,     MAX ̲LTPS,
             NO ̲OF ̲DEDICATED ̲OCRS,   MAX ̲DEDICATED ̲OCPS,
             NO ̲OF ̲DEDICATED ̲PTPS,   MAX ̲DEDICATED ̲PTPS,
             NO ̲OF ̲MICS ̲TAPE ̲EXCS,   MAX ̲NICS ̲TAPE ̲EXCS,
             NO ̲OF ̲SCARS ̲EXCS,  MAX ̲SCARS ̲EXCS,
             NO ̲OF ̲CCIS ̲EXCS,   MAX ̲CCIS ̲EXCS,
             COPSY ̲NO

         a 3) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲ ̲i̲n̲ ̲S̲S̲C̲ ̲C̲O̲M̲M̲O̲N̲

             O̲p̲e̲r̲a̲t̲i̲o̲n̲ ̲S̲e̲m̲a̲p̲h̲o̲r̲e̲s̲

             CFH ̲OS, VDU ̲OS (), SAD ̲OS (), EXC ̲OS (),CMD ̲OS,
             SEH ̲OS, WAMCO ̲OS, WDP ̲MON ̲OS, LONG ̲OS, SHORT ̲OS,
             ERROR ̲REPORT ̲OS, REPORT ̲ERROR ̲OS


             S̲i̲m̲p̲l̲e̲ ̲S̲e̲m̲a̲p̲h̲o̲r̲e̲s̲

             CFH ̲S, ERRORS ̲S

             O̲p̲e̲r̲a̲t̲i̲o̲n̲s̲

             LONG ̲OP (), SHORT ̲OP ()

             L̲i̲n̲e̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲D̲a̲t̲a̲

             TEMCO ̲DATA, DEMCO ̲DATA, CEMCO ̲DATA

             N̲o̲n̲-̲L̲i̲n̲e̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲D̲a̲t̲a̲

             CFH ̲COROUTINE,
             SEH ̲COROUTINE,
             CMD ̲COROUTINE,
             WDP ̲MONITOR ̲REPORTS ̲COROUTINE,
             KEEP ̲ALIVE ̲COROUTINE,
             RECEIVE ̲OPERATIONAL ̲COMMANDS ̲COROUTINE,
             COUNT ̲COROUTINE
             PRINT ̲ERROR ̲REPORT ̲COROUTINE
             contains a coroutine description.

         a 4) T̲a̲b̲l̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲ ̲i̲n̲ ̲S̲S̲C̲ ̲C̲O̲M̲M̲O̲N̲

             LOG ̲D ̲TO ̲LOCAL  (m)
             LOG ̲C ̲TO ̲LOCAL  (m)

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

             TEMCO ̲DATA (). COROUTINE     (m)
             TEMCO ̲DATA (). TNO           (m)
             DEMCO ̲DATA (). COROUTINE     (m)
             DEMCO ̲DATA (). LOCAL ̲DNO     (m)
             DEMCO ̲DATA (). DNO           (m)
             CEMCO ̲DATA (). COROUTINE     (m)
             CEMCO ̲DATA (). LOCAL ̲CNO     (m)
             CEMCO ̲DATA (). CNO           (m)
             CEMCO ̲DATA (). CI ̲NO         (m)

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

             VAR I : INTEGER

             VAR COR ̲NO : INTEGER
                 Coroutine number of the coroutine to be initialized.


             VAR DNO, LOCAL ̲DNO : INTEGER
                 Logical and local device number respectively

             VAR CNO, LOCAL ̲CNO, CI ̲NO : INTEGER
                 Logical and local

                 -   channel number

                 and logical

                 -   circuit number



4.2.9.4.1.5 C̲O̲P̲S̲Y̲ ̲M̲A̲I̲N̲ ̲D̲e̲s̲i̲g̲n̲

         a)  C̲O̲P̲S̲Y̲ ̲M̲A̲I̲N̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲

             Creates COPSY coroutines and semaphores.

             F̲l̲o̲w̲g̲r̲a̲m̲:̲ Fig. 4.2.9.4.1.5-1

         b)  I̲N̲I̲T̲ ̲C̲O̲P̲S̲Y̲ ̲S̲E̲M̲A̲P̲H̲O̲R̲E̲S̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲

             Initializes the semaphores used in COPSY

             F̲l̲o̲w̲g̲r̲a̲m̲:̲ See fig. 4.2.9.4.1.5-2

         c)  I̲N̲I̲T̲ ̲B̲U̲F̲F̲E̲R̲ ̲P̲O̲O̲L̲S̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲

             COPSY coroutines communicates by means of 2 buffer
             pools:

                 SHORT ̲OP (1.. NO ̲OF ̲SHORT ̲OPERATIONS)
                 LONG ̲OP (1.. NO ̲OF ̲LONG ̲OPERATIONS)
             The buffer pools are initialized and placed in
             the two operation semaphores:

                 SHORT ̲OS
                 LONG ̲OS

             F̲l̲o̲w̲g̲r̲a̲m̲:̲  See fig. 4.2.9.4.1.5-3




         d)  C̲R̲E̲A̲T̲E̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲C̲O̲R̲O̲U̲T̲I̲N̲E̲S̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲

             For I= 1.. NO ̲OF ̲VDUS the data area, TEMCO ̲DATA
             (I), for the I'te terminal is initialized. Specially
             TEMCO ̲DATA (I). COROUTINE is initialized as the
             coroutine-record corresponding to the I'te terminal.



             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)  CREATE ̲TERMINAL ̲COROUTINES (COR ̲NO:INTEGER)
                                                   (COR ̲NO:INTEGER)
             b)  CREATE ̲TERMINAL ̲COROUTINES (R1, 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 1  COR ̲NO
             R 6  LINK

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

             R 1  COR ̲NO

             F̲l̲o̲w̲g̲r̲a̲m̲:̲ See fig. 4.2.9.4.1.5-4


         e)  C̲R̲E̲A̲T̲E̲ ̲D̲E̲V̲I̲C̲E̲ ̲C̲O̲R̲O̲U̲T̲I̲N̲E̲S̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲

             For I=1.. NO ̲OF ̲SADS the data area, DEMCO ̲DATA
             (I) for the I'te device is initialized. Specially
             DEMCO ̲DATA (I).COROUTINE is initialized as the
             coroutine-reford corresponding to the I'te device.


             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)  CREATE ̲DEVICE ̲COROUTINES (COR ̲NO:INTEGER)
                                                  (COR ̲NO:INTEGER)

             b)  CREATE ̲DEVICE ̲COROUTINES (R1, 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 1  COR ̲NO
             R 6  LINK

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

             R 1  COR ̲NO

             F̲l̲o̲w̲g̲r̲a̲m̲:̲  See fig. 4.2.9.4.1.5-5


         f)  C̲R̲E̲A̲T̲E̲ ̲C̲H̲A̲N̲N̲E̲L̲ ̲C̲O̲R̲O̲U̲T̲I̲N̲E̲S̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲

             For I=1.. NO ̲OF ̲EXCS the data area, CEMCO ̲DATA
             (1) for the I'te channel is initialized. Specially
             CEMCO ̲DATA (I).COROUTINE Is initialized as the
             coroutine-record corresponding to the I'te device.

             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)  CREATE ̲CHANNEL ̲COROUTINES (COR ̲NO:INTEGER)
                                                 (COR ̲NO:INTEGER)
             b)  CREATE ̲CHANNEL ̲COROUTINES (R1, 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 1  COR ̲NO
             R 6  LINK

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

             R 1  COR ̲No

             F̲l̲o̲w̲g̲r̲a̲m̲:̲  See fig. 4.2.9.4.1.5-6


   PROCEDURE  COPSY ̲MAIN

   BEGIN

      INIT ̲COPSY ̲SEMAPHORES
      INIT ̲BUFFER ̲POOLS
      INIT ̲COMMON (CFH ̲COROUTINE, CFH ̲PRIO, COPSY ̲NO, 1)
      INIT ̲COROUTINE (SEH ̲COROUTINE, SEH ̲PRIO, COPSY ̲NO, 2,LOCATION
                                                      (SEH ̲MAIN))
      INIT ̲COROUTINE (CMD ̲COROUTINE, CMD ̲PRIO, COPSY ̲NO, 3,LOCATION
                                                      (CMD ̲MAIN))

      "create 3 WAMCO coroutines"

      INIT ̲COROUTINE (WDP ̲MONTIOR ̲REPORTS ̲COROUTINE, 
                      WDP ̲MONITOR ̲REPORTS ̲PRIO, COPSY ̲NO, 4,
                    LOCATION (WDP ̲MONITOR ̲REPORTS))
      INIT ̲COROUTINE (KEEP ̲ALIVE ̲COROUTINE, KEEP ̲ALIVE ̲PRIO,
 
                      COPSY ̲NO, 5, LOCATION (KEEP ̲ALIVE))
      INIT ̲COROUTINE (RECEIVE ̲OPERATIONAL ̲COMMAND ̲COROUTINE,
                      COPSY ̲NO,6,RECEIVE ̲OPERATIONAL ̲COMMANDS
 ̲PRIO,
                    LOCATION (RECEIVE ̲OPERATIONAL ̲COMMANDS))
      INIT ̲COROUTINE (COUNT ̲COROUTINE, COUNT ̲PRIO, COPSY ̲NO,
 7,
                      LOCATION (COUNT ̲MAIN))
      INIT ̲COROUTINE (PRINT ̲ERROR ̲REPORT ̲COROUTINE,
                     PRINT ̲ERROR ̲REPORT ̲PRIO,
                     COPSY ̲NO, 8, LOCATION(PRINT ̲ERROR ̲REPORT)

      COR ̲NO = 9

      CREATE ̲TERMINAL COROUTINES (COR ̲NO)(COR ̲NO)

      CREATE ̲DEVICE ̲COROUTINES (COR ̲NO)(COR ̲NO)

      CREATE ̲CHANNEL ̲COROUTINES (COR ̲NO) (COR ̲NO)

      "enter coroutine operation

      PRE ̲INITIALIZATION (MAP ̲IN ̲INIT)

      CFH ̲MAIN


   END ̲COPSY ̲MAIN





                    Fig. 4.2.9.4.1.5-1



         PROCEDURE  INIT ̲COPSY ̲SEMAPHORES

         VAR I = INTEGER

         BEGIN

             I = 0

             LOOP

                 I = I + 1
                 INIT ̲SEMAPHORE (0, VDU ̲OS (I))
                 I EQ NO ̲OF ̲VDUS ?   EXIT
             END ̲LOOP

             I = 0

             LOOP

                 I = I + 1
                 INIT ̲SEMAPHORE (0, SAD ̲OS (I))
                 I EQ NO ̲OF ̲SADS ?   EXIT
             END ̲LOOP

             I = 0
             LOOP

                 I = I + 1
                 INIT ̲SEMAPHORE (0, EXC ̲OS (I))
                 I EQ NO ̲OF ̲EXCS ?   EXIT
             END ̲LOOP

             INIT ̲SEMAPHORE (0, CFH ̲OS)
             INIT ̲SEMAPHORE (0, CFH ̲S)
             INIT ̲SEMAPHORE (0, SHORT ̲OS)
             INIT ̲SEMAPHORE (0, LONG ̲OS)
             INIT ̲SEMAPHORE (0, CMD ̲OS)
             INIT ̲SEMAPHORE (0, SEH ̲OS)
             INIT ̲SEMAPHORE (0, WAMO ̲OS)
             INIT ̲SEMAPHORE (0, WDP ̲MON ̲OS)
             INIT ̲SEMAPHORE (0, ERROR ̲S)
             INIT ̲SEMAPHORE (0, REPORT ̲ERROR ̲OS)
             INIT ̲SEMAPHORE (0, ERROR ̲REPORT ̲OS)
             INIT ̲SEMAPHORE (0, REPORT ̲ERROR ̲OS)
             INIT ̲SEMAPHORE (0, ERROR ̲REPORT ̲OS)

         END ̲INIT ̲COPSY ̲SEMAPHORES



                    Fig. 4.2.9.4.1.5-2


         PROCEDURE  INIT ̲BUFFER ̲POOLS

         VAR I : INTEGER

         BEGIN

             I = 0

             LOOP
                 I = I + 1
                 INIT ̲OPERATION (SHORT ̲PRIO, SHORT ̲OPC(I))

                 SIGNAL ̲OPSEM (SHORT ̲OS, SHORT ̲OPC(I))

                 I EQ NO ̲OF ̲SHORT ̲OPERATIONS ?   EXIT

             END LOOP



             I = 0

             LOOP

                 I = I + 1

                 INIT ̲OPERATION (LONG ̲PRIO, LONG ̲OP(I))

                 SIGNAL ̲OPSEM (LONG ̲OS, LONG ̲OP(I))

                 I EQ NO ̲OF ̲LONG ̲OPERATIONS ?   EXIT

             END LOOP


         END ̲INIT ̲BUFFER ̲POOLS











                    Fig. 4.2.9.4.1.5-3


         PROCEDURE    CREATE ̲TERMINAL ̲COROUTINES
                      (COR ̲NO : INTEGER)(COR ̲NO:INTEGER)

         VAR I : INTEGER

         BEGIN

             I = 0

             LOOP

                 I = I + 1

                 INIT ̲COROUTINE (TEMCO ̲DATA (I).COROUTINE,
                                 TEMCO ̲PRIO, COPSY ̲NO, COR ̲NO,
                                 LOCATION (TEMCO ̲MAIN))

                 TEMCO ̲DATA (I). TNO = I

                 COR ̲NO = COR ̲NO + 1

                 I EQ NO ̲OF ̲VDUS ?   EXIT

             END LOOP

         END ̲CREATE ̲TERMINAL ̲COROUTINES





















                    Fig. 4.2.9.4.1.5-4


         PROCEDURE   CREATE ̲DEVICES ̲COROUTINES (COR ̲NO:INTEGER)
                                                 (COR ̲NO:INTEGER)

         VAR DNO, LOCAL ̲DNO : INTEGER

         BEGIN

             DNO=0

             LOCAL ̲DNO = 0

             LOOP

                 DNO = DNO + 1,

                 LOCAL ̲DNO = LOCAL ̲DNO + 1

                 INIT ̲COROUTINE(DEMCO ̲DATA(LOCAL ̲DNO).COROUTINE,
                                DEMCO ̲PRIO, COPSY ̲NO, COR ̲NO,
                                LOCATION (DEMCO ̲MAIN)

                 DEMCO ̲DATA (LOCAL ̲DNO).LOCAL ̲DNO = LOCAL ̲DNO

                 DEMCO ̲DATA (LOCAL ̲DNO)DNO = DNO

                 LOG ̲D ̲TO ̲LOCAL (DNO) = LOCAL ̲DNO

                 LOCAL ̲DNO EQ NO ̲OF ̲MTP ̲ROPS ? DNO =
                               DNO + MAX ̲MTP ̲ROPS-NO ̲OF ̲MTP
                     ̲ROPS

                 LOCAL ̲DNO EQ (NO ̲OF ̲MTP ̲ROPS + NO ̲OF ̲LTPS)?

                                      DNO=DNO+MAX ̲LTPS ̲NO-OF
                     ̲LTPS

                 LOCAL ̲DNO EQ (NO ̲OF ̲MTP ̲ROPS + NO ̲OF ̲LTPS
                 + NO ̲OF ̲DEDICATED ̲OCRS ?
                 DNO=DNO+MAX ̲DEDICATED ̲OCRS-NO ̲OF ̲DEDICATED
                 ̲OCRS

                 LOCAL ̲DNO EQ (NO ̲OF ̲MTP ̲ROPS + NO ̲OF ̲LTPS +
                 NO ̲OF ̲DEDICATED ̲OCRS + NO ̲OF ̲DEDICATED ̲PTRS)?

                 DNO=DNO+MAX ̲DEDICATED ̲PTPS-NO ̲OF ̲DEDICATED
                 ̲PTRS

                 COR ̲NO = COR ̲NO + 1

                 LOCAL ̲DNO EQ NO ̲OF ̲SADS ?   EXIT

             END LOOP

         END ̲CREATE ̲DEVICE ̲COROUTINES
                    Fig. 4.2.9.4.1.5-5


   PROCEDURE   CREATE ̲CHANNEL ̲COROUTINES (COR ̲NO : INTEGER)
                                         (COR ̲NO : INTEGER)

   VAR CNO,LOCAL ̲CNO, CI ̲NO : INTEGER

   BEGIN

      CNO = 0, LOCAL ̲CNO=0, CI ̲NO = 0

      LOOP

         CNO = CNO + 1, LOCAL ̲CNO = LOCAL ̲CNO + 1, CI ̲NO = CI
 ̲NO +1

         INIT ̲COROUTINE(CEMCO ̲DATA(LOCAL ̲CDN).COROUTINE,CEMCO
 ̲PRIO,
                      COPSY ̲NO, COR ̲NO, LOCATION(CEMCO ̲MAIN))

         CEMCO ̲DATA (LOCAL ̲CNO).LOCAL ̲CNO = LOCAL ̲CNO

         CEMCO ̲DATA (LOCAL ̲CNO).CNO = CNO

         CEMCO ̲DATA (LOCAL ̲CNO).CI ̲NO = CI ̲NO

         LOG ̲C ̲TO ̲LOCAL (CNO) = LOCAL ̲CNO

         LOCAL ̲CNO LT NO ̲OF ̲NICS ̲TARE ̲EXCS ?
                                    CI ̲NO = 0

         LOCAL ̲CNO EQ NO ̲OF ̲NICS ̲TARE ̲EXCS ?
                CNO = CNO + MAX ̲NICS ̲TARE ̲EXCS-NO ̲OF ̲NICS ̲TARE
 ̲EXCS

         LOCAL ̲CNO EQ (NO ̲OF ̲NICS ̲TARE ̲EXCS + NO ̲OF ̲SCARS ̲EXCS)?
                    (CNO = CNO + MAX ̲SCARS ̲EXCS-NO ̲OF ̲SCARS
                 ̲EXCS

         LOCAL ̲CNO EQ (NO ̲OF ̲NICS ̲TARE ̲EXCS + NO ̲OF ̲SCARS ̲EXCS
 +
                     NO ̲OF ̲CCIS ̲EXCS) ?
                     CNO = CNO + MAX ̲CCIS ̲EXCS-NO ̲OF ̲CCIS ̲EXCS

         COR ̲NO = COR ̲NO + 1

         LOCAL ̲CNO EQ NO ̲OF ̲EXCS ?   EXIT

      END LOOP

   END ̲CREATE ̲CHANNEL ̲COROUTINES




                    Fig. 4.2.9.4.1.5-6


4.2.9.4.2    T̲h̲e̲ ̲C̲F̲H̲ ̲M̲A̲I̲N̲ ̲M̲o̲d̲u̲l̲e̲



4.2.9.4.2.1 C̲F̲H̲ ̲M̲A̲I̲N̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲d̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         The CFH ̲MAIN module contains the main CFH coroutine
         program.

         The CFH coroutine creates TMS connections to the WDP
         ̲VDU and WDP ̲ROP with the intention of executing the
         operator start command.

         Via the start command, which is executed is VDU TTY
         mode, CFH gets the following parameters:

         -   time of day
         -   whether initial or modified software is to be used
         -   the CAMPS errorhandling mode of operation
         -   a mask specifying the patchfiles to be used
         -   specification of whether the operator and/or supervisor
             only modes are to be entered
         -   start-up type.

         The start-up disks to be used for further start-up
         is determined:

         -   for start-up type SB1, SB2, DEAD 1, DEAD 2:

             the offline disk

         -   for start-up type COLD, WARM 1: the mirrored disks

             and the disk(s) are assigned and modules via FMS.

         The module : CREATE ̲PROCESS is invoked.

         Further actions depends on the start-up type.

         S̲t̲a̲n̲d̲b̲y̲ ̲s̲t̲a̲r̲t̲-̲u̲p̲.̲

         In the standby mode only OLD and CSF are started.

         The start-up disk i.e. the offline disk is deassigned
         and dismounted.



         A go-active command from the WDP is awaited. Having
         received this, TMP is started to allow TEMCO, DEMCO,
         CEMCO operations, and the TEMCO, DEMCO,CEMCO coroutines
         are commanded to set the subprocess queueprofiles according
         to terminal, device and channel profile     is started
         i.e. CAMPS queue contents are retired.

         The CREATE ̲PERIPHERALS module is invoked and remaining
         processes are started DAMOS wise and logically via
         TEMCO, DEMCO, CEMCO, WAMCO.

         A̲c̲t̲i̲v̲e̲ ̲s̲t̲a̲r̲t̲-̲u̲p̲

         TMP and CSF are started to allow TEMCO, DEMCO, CEMCO
         operation and TEMCO, DEMCO, CEMCO are requested to
         set queue profiles.

         The CREATE ̲PERIPHERALS module is called and the processes
         necessary for operator and supervisor only actions:

         -   LOG
         -   STP
         -   UMAM
         -   CMI

         are started.

         The line processes are started DAMOS wise (via a resume
         command).

         Hereafter the operator-only-mode and supervisor-only-mode
         modules are invoked if so specified in the start-up
         command.

         Hereafter remaining processes are started DAMOS wise
         and logically via TEMCO, DEMCO, CEMCO.

         At last the on-line operation module is invoked.


4.2.9.4.2.2 M̲o̲d̲u̲l̲e̲ ̲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)  CFH ̲MAIN
         b)  CFH ̲MAIN (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  LINK



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

         The CFH ̲MAIN module references/consists of the procedure/modules
         defined in figure 4.2.9.4.2.3-1, -2




                Figures 4.1.9.4.2.3-1, -2



         a)  C̲F̲H̲ ̲M̲A̲I̲N̲

             The procedure performs the following functions:

             -requests execution of

                 -the start-up command
                 -assign/mount of start-up disks
                 -creation of processes, queues and disks
                 -the standby mode
                 -definition of subprocess message queue profiles
                 -creation of peripherals
                 -the only modes
                 -on-line operation 

             -starts

                 -SEH, CMD and WAMCO coroutines
                 -the processes necessary for execution of

                     -setting of queue profiles
                     -creation of peripherals
                     -the only modes
                     -on-line operation

         b)  S̲B̲ ̲S̲T̲A̲R̲T̲ ̲U̲P̲

             The procedure starts the

             - CSF and
             - OLD

             processes and starts the

             - WAMCO coroutine (keep alive messages will be
             sent).

             The start-up disks are dismounted and deassigned
             and a WDP go achive signal is awaited.

             When receiving this

             - the mirrored disks are assigned and mounted
             - the OLD PU clock is saved
             - remaining functions are a ...set of the start-up
             active functions.




         c)  R̲E̲A̲D̲ ̲F̲R̲O̲M̲ ̲W̲D̲P̲ ̲V̲D̲U̲

             The watchdog TMS connection tree is created and
             the start-up command is executed.


         d)  A̲S̲S̲I̲G̲N̲ ̲M̲O̲U̲N̲T̲ ̲S̲T̲A̲R̲T̲ ̲U̲P̲ ̲D̲I̲S̲K̲S̲

             The disks

             - offline and/or
             - mirrored disk

             needed for start-up is assigned and mounted. The
             root directory and load file directory is found.


         e)  A̲S̲S̲I̲G̲N̲ ̲M̲O̲U̲N̲T̲ ̲O̲F̲F̲L̲I̲N̲E̲ ̲D̲I̲S̲K̲ ̲

             Assigns and mounts the offline disk and determines
             the root directory.
             The configuration display.

         f)  A̲S̲S̲I̲G̲N̲ ̲M̲O̲U̲N̲T̲ ̲M̲I̲R̲R̲O̲R̲E̲D̲ ̲D̲I̲S̲K̲S̲

             The mirrored discs are assigned and mounted.  At
             first the discs are mounted as "dual" i.e. corresponding
             to, that the discs were dismounted at close down.
              If this fails, the discs are mounted as "dualisable"
             i.e. they were not dismounted at system close down
             and one of the discs is copied to the other disc.


         g)  S̲T̲A̲R̲T̲ ̲R̲E̲M̲A̲I̲N̲I̲N̲G̲ ̲P̲R̲O̲C̲E̲S̲S̲E̲S̲

             Resumes the COPSY child processes not yet resumed.


         h)  S̲T̲A̲R̲T̲ ̲P̲R̲O̲C̲E̲S̲S̲

             Resumes a single COPSY child process


         i)  S̲T̲A̲R̲T̲ ̲L̲I̲N̲E̲ ̲P̲R̲O̲C̲E̲S̲S̲E̲S̲

             Resumes the line processes




         j)  S̲T̲A̲R̲T̲ ̲W̲A̲M̲C̲O̲ ̲S̲E̲T̲ ̲P̲U̲ ̲S̲T̲A̲T̲U̲S̲

             Starts WAMCO, which

             - starts CMI
             - starts sending keep-alive messages.

             The configuration display is updated.


         k)  D̲E̲F̲I̲N̲E̲ ̲Q̲U̲E̲U̲E̲ ̲P̲R̲O̲F̲I̲L̲E̲S̲

             The TEMCO, DEMCO and CEMCO coroutines are requested
             to set subprocesses queue profiles according to
             terminal, device and channel profiles.

             A reply from the coroutines is awaited via the
             COUNT coroutine.

             Hardware errorhandling is supported.


         l)  A̲W̲A̲I̲T̲ ̲G̲O̲ ̲A̲C̲T̲I̲V̲E̲

             The procedure awaits a signal from the WDP to go
             active.

             Having received this

             -   the PU clock is updated
             -   a report is sent to the WDP ̲ROP, which defines
                 the reason for switchover.


         m)  S̲T̲A̲R̲T̲ ̲M̲M̲S̲

             The MMS process is started via a specific MMON
             command. Also, the current security interrogation/warning
             profile is given.


         n)  S̲A̲V̲E̲ ̲O̲L̲D̲ ̲C̲L̲O̲C̲K̲

             The PU clock is periodically dumped to disk in
             a system parameter.

             The value is saved in a system parameter.


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

         a 1)T̲y̲p̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

             FDCB ̲INDEX, VOLUME ̲NAME,OBJ ̲INDEX      : DAMOS
             IOS
             SECURITY ̲PARAMETER ̲TYPE,
             SECURITY ̲PARAMS,
             DTG ̲TYPE                               : DBD.CSF

             START ̲COR, START ̲SEH, START ̲SB, 
             SET ̲ACCESS ̲PROFILE, SEH ̲COR, WAMCO ̲COR : DBD

             SB1,SB2, WARM1,WARM2,DEAD1,DEAD2       : DBD

             OFFLINE ̲DISK, DISK ̲MOUNTED, ACTIVE,
             PU1, PU2,                              : SSC.COMMON

             SET ̲STATUS, OFFL ̲DISK, MIR ̲DISK ̲1,
             MIR ̲DISK ̲2                             : SSC.COMMON

             LOAD ̲FAILED                            : SSC.COMMON

             WDP ̲REP ̲COMMAND, WDP ̲INFO              : SSC.COMMON

         a2) C̲o̲n̲s̲t̲a̲n̲t̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

             TMP ̲P ̲NO, CSF ̲P ̲NO, LOG ̲P ̲NO, STP ̲P ̲NO, UMAM ̲P
             ̲NO,
             CSF ̲P ̲NO, OLD ̲P ̲NO, COPSY ̲P ̲NO, SUPV ̲P ̲NO

             NO ̲OF ̲PROCESSES                        : DBD

             SYS ̲GEN, SSC ̲DIR ̲MODIFIED, SSC ̲DIR ̲INI-
             TIAL, SSC ̲DIR,

             FMS ̲FIXED, FMS ̲MOVING,

             MIRM, MIRF                              : DBD

             MIR ̲FIXED ̲ATTR (1..2),

             MIR ̲MOVING ̲ATTR (1..2),                : SSC.COMMON

             MIR ̲FIXED, MIR ̲MOVING                  : DBD

             NO ̲OF ̲VDUS, NO ̲OF ̲SADS, NO ̲OF ̲EXCS     : DBD

             NO ̲OF ̲OUTSTANDING ̲ANSWERS,
             DEFINE ̲Q ̲PROFILE ̲PROC,
             AWAIT ̲GO ̲ACTIVE ̲PROC,
             CMD ̲TYPE ̲ERROR, CMD ̲ERROR              : CFH.VARIOUS


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

             OPERATOR ̲ONLY, SUPERVISOR ̲ONLY,
             LOAD ̲SW ̲TYPE,
             START ̲DTG                              : CFH.VARIOUS
             PATCH ̲MASK                             : CFH.LOAD
             START ̲UP ̲TYPE ̲D                        : CFH.VARIOUS

             PU ̲NO, CAMPS ̲ERROR ̲MODE,

             DEVICE ̲SE,

             LONG ̲OS                                : SSC.COMMON

             MMS ̲STORAGE ̲FDCB                   : SSC.COMMON
             MMS ̲STORAGE                            : DBD
             LONG ̲OP,
             COUNT ̲ANSWER, WRK                      : CFH.VARIOUS
             CURRENT ̲CLOCK,
             OLD ̲CLOCK                              : DBD

         a 4)T̲a̲b̲l̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

             PROCESS ̲TABLE   (m)                    : SSC.COMMON

                CURRENT and OLD ̲CLOCK system parameters


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

             PROCESS ̲TABLE (). STATUS  (m)
             read  CURRENT ̲CLOCK        :  system parameter
             set OLD ̲CLOCK              :  system parameter
             COUNT ̲ANSWER               :  common CFH


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

             VAR START ̲UP ̲ROOT ̲DIR, START ̲UP ̲DIR  :  FDCB ̲INDEX

             Handle for the

             - Root directory and the
             - SSC ̲DIR ̲INITIAL or SSC ̲DIR ̲MODIFIED directory
             are 
               the start-up disk.

             VAR CC,I: INTEGER



             VAR INF = RECORD
                           CC : INTEGER
                           VOLUME : VOLUME ̲NAME
                       END

             Information to REPORT ̲ERROR/PU ̲DOWN

             VAR OBJECT : OBJECT ̲INDEX

             VAR PU ̲ID : PU1..PU2

             VAR G ̲INF : COPSY ̲GARBLE ̲PARAMS

             Information to COPSY ̲SEND ̲GARBLE

             VAR SECP ̲SECURITY ̲PROFILE

             VAR ROOT ̲DISK, MMS ̲FILE : FDCB ̲INDEX



4.2.9.4.2.5 C̲F̲H̲ ̲M̲A̲I̲N̲ ̲D̲e̲s̲i̲g̲n̲

         The CFH ̲MAIN is described by the flowgrams in figure
         4.2.9.4.2.5-1 through to 4.2.9.4.2.5-14



   PROCEDURE  CFH ̲MAIN

   VAR  START ̲UP ̲ROOT ̲DIR, START ̲UP ̲DIR : FDCB ̲INDEX

   BEGIN
       READ ̲FROM ̲WDP ̲VDU
       ASSIGN ̲MOUNT ̲START ̲UP ̲DISKS ( ) (START ̲UP ̲ROOT ̲DIR,
                                                     START ̲UP ̲DIR)

       CREATE ̲PROCESSES (START ̲UP ̲ROOT ̲DIR, START ̲UP ̲DIR)
       DISMANTLE (START ̲UP ̲DIR) ; DISMANTLE (START ̲UP ̲ROOT ̲DIR)
       (START ̲UP ̲TYPE ̲D EQ DEAD 1 OR)  
       (START ̲UP ̲TYPE ̲D EQ DEAD 2   ) ?

                       DISMOUNT ̲DISK (OFFLINE ̲DISK, SYSGEN) (CC)
                       DEASSIGN ̲DISK (OFFLINE ̲DISK)


       PRE ̲INITIALIZATION(TRACE ̲MODE ̲INIT)

       NOTIFY ̲CMD (START ̲COR)
       NOTIFY ̲LONG (SEH ̲COR, START ̲SEH)
       START ̲UP ̲TYPE ̲D EQ SB1 OR 
                                   ?   SB ̲START ̲UP
       START ̲UP ̲TYPE ̲D EQ SB2 
       START ̲PROCESS (TMP ̲P ̲NO)  ;  SAVE ̲OLD ̲CLOCK
       START ̲PROCESS (CSF ̲P ̲NO)
       DEFINE ̲Q ̲PROFILE
       START ̲MMS; START ̲PROCESS(LOG ̲P ̲NO); START ̲PROCESS(STP ̲P ̲NO)
       START ̲PROCESS (UMAM ̲P ̲NO)
       CREATE ̲PERIPHERALS
       START ̲WAMCO ̲SET ̲PU ̲STATUS
       START ̲LINE ̲PROCESSES


                              
       OPERATOR ̲ONLY EQ TRUE ?     OPERATOR ̲ONLY ̲MODE
                                     
       (SUPERVISOR ̲ONLY EQ TRUE AND
       START ̲UP ̲TYPE ̲D EQ WARM  1) ?   SUPERVISOR ̲ONLY ̲MODE
       START ̲REMAINING ̲PROCESSES
       COMMON ̲NOTIFY ̲LINE ̲COROUTINE (START ̲COR, NIL)
       ONLINE ̲OPERATION
   END ̲CFH ̲MAIN
                                    Fig. 4.2.9.4.2.5-1


   PROCEDURE

   SB ̲START ̲UP

   VAR CC : INTEGER

   BEGIN

       START ̲PROCESS (CSF ̲P ̲NO)

       START ̲PROCESS (OLD ̲P ̲NO)

       DISMOUNT ̲DISK (OFFLINE ̲DISK, SYS ̲GEN) (CC)

       DEASSIGN ̲DISK (OFFLINE ̲DISK)

       NOTIFY ̲LONG (WAMCO ̲COR, START ̲SB)

       AWAIT ̲GO ̲ACTIVE

       ASSIGN ̲MOUNT ̲MIRRORED ̲DISKS

       START ̲PROCESS (TMP ̲P ̲NO)

       SAVE ̲OLD ̲CLOCK

       DEFINE ̲Q ̲PROFILES

       START ̲MMS

       CREATE ̲PERIPHERALS

       START ̲WAMCO ̲SET ̲PU ̲STATUS


   END ̲SB ̲START ̲UP











                 Fig. 4.2.9.4.2.5-2


   PROCEDURE

   READ ̲FROM ̲WDP ̲VDU

   BEGIN


       CREATE ̲WDP ̲TREE

       get parameters

   END ̲READ ̲FROM ̲WDP ̲VDU



































                 Fig. 4.2.9.4.2.5-3


   PROCEDURE

   ASSIGN ̲MOUNT ̲START ̲UP ̲DISKS ( ) (START ̲UP ̲ROOT ̲DIR,
                                         START ̲UP ̲DIR
               : FDCB ̲INDEX)

   VAR  OFFL ̲ROOT ̲DIR, MIR ̲ROOT ̲DIR  :  FDCB ̲INDEX

   VAR  NAME  :  FILE ̲NAME

   BEGIN

        START ̲UP ̲TYPE ̲D EQ DEAD1  OR
        START ̲UP ̲TYPE ̲D EQ DEAD2  OR      ?
        START ̲UP ̲TYPE ̲D EQ SB1    OR
        START ̲UP ̲TYPE ̲D EQ SB2

           ASSIGN ̲MOUNT ̲OFFLINE ̲DISK ( ) (OFFL ̲ROOT ̲DIR)

        START ̲UP ̲TYPE ̲D EQ DEAD1  OR
        START ̲UP ̲TYPE ̲D EQ DEAD2  OR ?
        START ̲UP ̲TYPE ̲D EQ COLD   OR
        START ̲UP ̲TYPE ̲D EQ WARM1

               ASSIGN ̲MOUNT ̲MIRRORED ̲DISKS ( )  (MIR ̲ROOT
               ̲DIR)

        LOAD ̲SW ̲TYPE EQ INITIAL ̲SW ?  NAME = SSC ̲DIR ̲MODIFIED

        NAME = SSC ̲DIR ̲INITIAL

           START ̲UP ̲TYPE ̲D EQ COLD  OR 
                                        ?
           START ̲UP ̲TYPE ̲D EQ WARM1

               START ̲UP ̲ROOT ̲DIR = MIR ̲ROOT ̲DIR

        START ̲UP ̲ROOT ̲DIR = OFFL ̲ROOT ̲DIR

        LOOK ̲UP (START ̲UP ̲ROOT ̲DIR, NAME) (START ̲UP ̲DIR)

   END ̲ASSIGN ̲MOUNT ̲START ̲UP ̲DISKS







                 Fig. 4.2.9.4.2.5-4


   PROCEDURE  ASSIGN ̲MOUNT ̲OFFLINE ̲DISK ( ) (ROOT ̲DIR
   : FDCB ̲INDEX)

   VAR  INF = RECORD

                 CC     : INTEGER
                 VOLUME : VOLUME ̲NAME
               END

   BEGIN

       ASSIGN ̲DISK (OFFLINE ̲DISK)

       MOUNT ̲DISK (OFFLINE ̲DISK, SYS ̲GEN) (CC)

       CC NE 0  ?  INF.CC = CC
                   INF.VOLUME = SYS ̲GEN
                   REPORT ̲ERROR (LOAD ̲FAILED, INF)
                   PU ̲DOWN (LOAD ̲FAILED,INF)

       GET ̲ROOT ̲MOV (SYS ̲GEN) (ROOT ̲DIR)

       CONF ̲DISPLAY (SET ̲STATUS, OFFL ̲DISK, DISK ̲MOUNTED)

   END ̲ASSIGN ̲MOUNT ̲OFFLINE ̲DISK





















                 Fig. 4.2.9.4.2.5-5



   PROCEDURE

   ASSIGN ̲MOUNT ̲MIRRORED ̲DISKS ( ) (ROOT ̲DIR : FDCB ̲INDEX)

   VAR  CC . INTEGER

   VAR  INF = RECORD
                 CC     : INTEGER
                 VOLUME : VOLUME ̲NAME
              END

   BEGIN
       CASE  ASSIGN ̲DUAL (FMS ̲FIXED, MIR ̲FIXED ̲ATTR (1),
       
                       MIR ̲FIXED ̲ATTR (2), MIRF, DEVICE
                   ̲SE) (CC) OF
           ERROR ?   ANALYZE ̲ERROR (CC, 0)
       END CASE

       CASE  ASSIGN ̲DUAL (FMS ̲MOVING, MIR ̲MOVING ̲ATTR
       (1), 
                       MIR ̲MOVING ̲ATTR(2), MIRM, DEVICE
                   ̲SE) (CC) OF
           ERROR ?   ANALYZE ̲ERROR (CC, 0)
       END CASE

       CASE  MOUNT (FMS ̲FIXED, MIRF,MIR ̲FIXED,DUAL) (CC)
        OF
           ERROR ? CASE ANALYZE ̲ERROR (CC, 1, HW,VOLUME
           ̲NOT ̲DUAL) OF
                       HW ?  INF. CC = CC
                             INF. VOLUME = MIR ̲FIXED
                             REPORT ̲ERROR (LOAD ̲FAILED,
                           INF)
                             PU ̲DOWN (LOAD ̲FAILED, INF)
                       VOLUME ̲NOT ̲DUAL? MOUNT ̲DUALIZABLE
                       ̲FIXED
                   END ̲CASE
       END ̲CASE

       CASE  MOUNT(FMS ̲MOVING,MIRM,MIR ̲MOVING ̲DUAL)(CC)
        OF
           ERROR ? CASE ANALYZE ̲ERROR (CC,1, HW,VOLUME
                   ̲NOT ̲DUAL) OF
                       HW ? INF. CC = CC
                            INF. VOLUME = MIR ̲MOVING
                            REPORT ̲ERROR(LOAD ̲FAILED,INF)
                            PU ̲DOWN (LOAD ̲FAILED, INF)
                       VOLUME ̲NOT ̲DUAL? MOUNT ̲DUALIZABLE
                       ̲MOVING
                   END CASE
       END ̲CASE

       GET ̲ROOT ̲MOV (MIR ̲MOVING) (ROOT ̲DIR)
       CONF ̲DISPLAY (SET ̲STATUS, MIR ̲DISK ̲1, DISK ̲MOUNTED)
       CONF ̲DISPLAY (SET ̲STATUS, MIR ̲DISK ̲2, DISK ̲MOUNTED)
   END ̲ASSIGN ̲MOUNT ̲MIRRORED ̲DISKS


              Fig. 4.2.9.4.2.5-6(1/3)


   PROCEDURE       MOUNT ̲DUALIZABLE ̲FIXED

   VAR SECTOR ̲SPEC:  SECTOR ̲ADDRESS

   BEGIN

       CASE MOUNT (FMD ̲FIXED,MIRF,MIR ̲FIXED DUALIZABLE)(CC)
       OF

           ERROR?  CASE ANALYZE ̲ERROR (CC,HW,1) OF

                       HW?   INF.CC = CC
                             INF.VOLUME = MIR ̲FIXED
                             REPORT ̲ERROR(LOAD ̲FAILED,INF)
                             PU ̲DOWN(LOAD ̲FAILED,INF)

                   END ̲CASE

       END ̲CASE

       SECTOR ̲SPEC.FIRST ̲SECTOR = 0

       SECTOR ̲SPEC.SECTOR ̲COUNT = MAX ̲FIXED ̲DISK ̲SECTORS

       CASE    DUALIZE ̲SECTORS(FMS ̲FIXED,SECTOE ̲SPEC,MIRF)(CC)
               OF

           ERROR?  CASE  ANALYZE ̲ERROR(CC,HW,1) OF

                     HW?  INF.CC = CC
                          INF.VOLUME = MIR ̲FAILED
                          REPORT ̲ERROR(LOAD ̲FAILED,INF)
                          PU ̲DOWN(LOAD ̲FAILED,INF)

                   END ̲CASE

       END ̲CASE

       CASE FINISH ̲DUALIZE (FMS ̲FIXED,MIRF)(CC) OF

           ERROR?  ANALYZE ̲ERROR(CC,0)

       END ̲CASE

   END ̲MOUNT ̲DUALIZABLE ̲FIXED



              Fig. 4.2.9.4.2.5-6 (2/3)


   PROCEDURE   MOUNT ̲DUALIZABLE ̲MOVING

   VAR SECTOR ̲SPEC: SECTOR ̲ADDRESS

   BEGIN

       CASE MOUNT(FMD ̲MOVING,MIRM,MIR ̲MOVING,DUALIZABLE)(CC)
       OF

           ERROR?  CASE ANALYZE ̲ERROR(CC,HW,1)  OF

                     HW?  INF.CC = CC
                          INF.VOLUME = MIR ̲MOVING
                          REPORT ̲ERROR(LOAD ̲FAILED,INF)
                          PU ̲DOWN(LOAD ̲FAILED,INF)

                   END ̲CASE

       END ̲CASE

       SECTOR ̲SPEC.FIRST ̲SECTOR = 0

       SECTOR ̲SPEC.SECTOR ̲COUNT = MAX ̲MOVING ̲DISC ̲SECTORS

       CASE    DUALIZE ̲SECTORS (FMS ̲MOVING,SECTOR ̲SPEC,MIRM)(CC)
               OF

           ERROR?  CASE  ANALYZE ̲ERROR (CC,HW,1) OF

                     HW?  INF.CC = CC
                          INF.VOLUME = MIR ̲MOVING
                          REPORT ̲ERROR(LOAD ̲FAILED,INF)
                          PU ̲DOWN(LOAD ̲FAILED;INF)

                   END ̲CASE

       END ̲CASE

       CASE  FINISH ̲DUALIZE (FMS ̲MOVING,MIRM)(CC) OF

           ERROR?  ANALYZE ̲ERROR(CC,0)

       END ̲CASE

   END ̲MOUNT ̲DUALIZABLE ̲MOVING



              Fig. 4.2.9.4.2.5-6 (3/3)


   PROCEDURE

   START ̲REMAINING ̲PROCESSES

   VAR  I : INTEGER

   BEGIN

       I = COPSY ̲P ̲NO

       LOOP

           I = I + 1

           PROCESS ̲TABLE (I).STATUS EQ CREATED ?

               START ̲PROCESS (I)

           I EQ NO ̲OF ̲PROCESSES ?   EXIT

       END LOOP

   END PROCEDURE
























                 Fig. 4.2.9.4.2.5-7


   PROCEDURE

   START ̲PROCESS (PROC ̲P ̲NO : INTEGER)

   VAR  OBJECT : OBJECT ̲INDEX

   BEGIN

       OBJECT = PROCESS ̲TABLE (PROC ̲P ̲NO).OBJECT

       CASE  RESUME (OBJECT)  OF

           ERROR ?   ANALYZE ̲ERROR (CC, 0)

           OK ?   PROCESS ̲TABLE (PROC ̲P ̲NO).STATUS = RESUMED

       END CASE

   END PROCEDURE START ̲PROCESS




























                 Fig. 4.2.9.4.2.5-8


   PROCEDURE  START ̲LINE ̲PROCESSES

   INTEGER I

   BEGIN

       I = SUPV ̲P ̲NO ̲1

       LOOP

           I = I + 1

           START ̲PROCESS (I)

           I EQ NO ̲OF ̲PROCESSES ?   EXIT

       END LOOP

   END START ̲LINE ̲PROCESSES




























                 Fig. 4.2.9.4.2.5-9



   PROCEDURE   START ̲WAMCO ̲SET ̲PU ̲STATUS


   VAR  PU ̲ID : PU1..PU2

   BEGIN

       CASE  PU ̲NO  OF

           1 ?  PU ̲ID = PU1

           2 ?  PU ̲ID = PU2

       END CASE

       CONFIG ̲TABLE.PU ̲N(PU ̲NO) = ACTIVE

       CONF ̲DISPLAY (SET ̲STATUS, PU ̲ID, ACTIVE)

       NOTIFY ̲LONG (WAMCO ̲COR, START ̲AC)

   END ̲START ̲WAMCO ̲SET ̲PU ̲STATUS



























                Fig. 4.2.9.4.2.5-10



   PROCEDURE  DEFINE ̲Q ̲PROFILES

   VAR  G ̲INF : COPSY ̲GARBLE ̲PARAMS

   BEGIN

       WAIT ̲OPSEM(LONG ̲OS) (COUNT ̲ANSWER)
       COUNT ̲ANSWER.CMD ̲TYPE = COUNT ̲REPLY
       NO ̲OF ̲OUTSTANDING ̲ANSWERS =
       NO ̲OF ̲VDUS + NO ̲OF ̲SADS + NO ̲OF ̲EXCS
       COMMON ̲NOTIFY ̲LINE ̲COROUTINE (SET ̲ACCESS ̲PROFILES,
       0)

       LOOP
           WAIT ̲OPSEM (CFH ̲OS) (LONG ̲OP))
           CASE  LONG ̲OP.CMD ̲TYPE  OF

               DEVICE ̲ERROR, WDP ̲CMD ?

                   HW ̲REPORT ̲HANDLING (LONG ̲OP)
               COUNT ̲REPLY ?   EXIT ̲LOOP

               OTHER ?  G ̲INF.ERROR ̲TYPE = COPSY ̲LONG
               ̲ERROR

                        G ̲INF.USER ̲ACTION = CONTINUE
                        G ̲INF.ERROR ̲COR = CFH ̲COR
                        G ̲INF.LOC        = DEFINE ̲Q ̲PROFILES
                       ̲PROC
                        G ̲INF.ERROR ̲INFO (1) = CMD ̲TYPE
                       ̲ERROR
                        COPSY ̲SEND ̲GARBLE (LONG ̲OP, G
                       ̲INF)

           END CASE

       END LOOP

       SIGNAL ̲OPSEM (LONG ̲OS, LONG ̲OP)

   END ̲DEFINE ̲Q ̲PROFILES












                Fig. 4.2.9.4.2.5-11



   PROCEDURE  AWAIT ̲GO ̲ACTIVE

   VAR  G ̲INF : COPSY ̲GARBLE ̲PARAMS

   INIT G ̲INF : ERROR ̲TYPE = COPSY ̲LONG ̲ERROR
          G ̲ING : USER ̲ACTION = CONTINUE
        G ̲INF : ERROR ̲COR = CFH ̲COR
        G ̲INF : ERROR ̲LOC = AWAIT ̲GO ̲ACTIVE ̲PROC

   BEGIN

       LOOP
           WAIT ̲OPSEM (CFH ̲OS) (LONG ̲OP)
           EQVIVALENCE (LONG ̲OP.CMD, CMD : WDP ̲REP ̲COMMAND)
           EQVIVALENCE (LONG ̲OP.INF (1).BYTE, SUB ̲CMD
           : WDP ̲INFO)
           EQVIVALENCE (LONG ̲OP.INF (15).BYTE, START ̲DTG:DTG
           ̲TYPE)

           CASE  LONG ̲OP. CMD ̲TYPE  OF

               WDP ̲CMD ? (CMD EQ CCB ̲REPORT AND  ?                     
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       SUB
                                                                       ̲CMD
                                                                       EQ
                                                                       GO
                                                                       ̲SB
                                                                       ̲AC

                                     START ̲DTG.SUFFIX=#36
                       SHIFT
                                                     
     8 + #31
                                     SET ̲TIME(START ̲DTG)
                                     EQVIVALENCE(LONG
                       ̲OP.INF(1),
                                     ROP ̲INF:ARRAY(1..28)
                       OF BYTE)
                                     REPORT ̲ERROR(WDP
                       ̲MON ̲REPORT,
                                     REP ̲INF)        
                       EXIT


                   G ̲INF.ERROR ̲INFO (1)=ILLEGAL ̲CMD

                   COPSY ̲SEND ̲GARBLE (LONG ̲OP, G ̲INF)

               OTHER ? G ̲INF.ERROR ̲INFO (1) = ILLEGAL
               ̲CMD ̲TYPE
                       COPSY ̲SEND ̲GARBLE (LONG ̲OP, G ̲INF)

           END ̲CASE

       END LOOP

   END ̲AWAIT ̲GO ̲ACTIVE





                Fig. 4.2.9.4.2.5-12



   PROCEDURE

   START ̲MMS

   VAR  ROOT ̲DIR,: FDCB ̲INDEX

   VAR SECP : SECURITY ̲PARAMS

   VAR CC : INTEGER

   BEGIN

           (START ̲OP ̲TYPE ̲D EQ SB1) or  ?  START ̲PARAM
           = WARM2
           (START ̲UP ̲TYPE ̲D EQ SB2)

           START ̲PARAM = START ̲UP ̲TYPE ̲D

           EQVIVALENCE (WRK,SEL ̲PARAM : SECURITY ̲PARMETER
           ̲TYPE)
           GET ̲SYSTEM ̲PARAMETER (SECURITY ̲PARAMETER) (SEC
           ̲PARAM)
           SECP. SECURITY ̲INTERROGATION ̲PROFILE =
               SEC ̲PARAM.INTERROGATION ̲PROFILE
               SECP.SECURITY ̲WARNING ̲PROFILE =
               SEC ̲PARAM.WARNING ̲PROFILE

           CASE SET ̲SECURITY ̲PARAMETERS (SECP) (CC)  OF

               ERROR ?   ANALYZE ̲ERROR (CC, 0)

           END CASE

           GET ̲ROOT ̲MOV (MIR ̲MOVING) (ROOT ̲DIR)

           LOOKUP (ROOT ̲DIR, MMSSTORAGE) (MMS ̲STORAGE
           ̲FDCB)

           "give the MMS ̲STORAGE file the maximum profile

           CASE CHANGE ̲PROFILE (MMS ̲STORAGE ̲FDCB,31)(CC)
           OF

               ERROR?     ANALYZE ̲ERROR(CC.0)

           END ̲CASE

           START ̲SYSTEM (WRK,START ̲PARAM, MMS ̲FILE, SIZE(WRK))

           DIS ̲MANTLE (ROOT ̲DIR)

   END ̲START ̲MMS


                Fig. 4.2.9.4.2.5-13


   PROCEDURE

   SAVE ̲OLD ̲CLOCK

   VAR  CLOCK ̲CONTENTS : DTG ̲TYPE


   BEGIN

       GET ̲SYSTEM ̲PARAMETER (CURRENT ̲CLOCK) (CLOCK ̲CONTENTS)

       SET ̲SYSTEM ̲PARAMETER (OLD ̲CLOCK, CLOCK ̲CONTENTS)

   END ̲SAVE ̲OLD ̲CLOCK

































                Fig. 4.2.9.4.2.5-14



4.2.9.4.3    O̲N̲L̲I̲N̲E̲ ̲O̲P̲E̲R̲A̲T̲I̲O̲N̲ ̲M̲O̲D̲U̲L̲E̲



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

         The online operation module receives:

         -   CMI commands and

         -   Hardware errorreports from

             - FMS

             - TMS

             - WDP

         The hardware errorreports are sent to the Hardware-errorhandling
         module.

         The CMI commands are executed in the On-line-operation
         module and a reply is sent to the CMI upon completion
         of execution.

         The CMI commands falls into 3 groups:

         -   PU reconfiguration
         -   Software reconfiguration
         -   Peripheral reconfiguration

         a)  P̲U̲ ̲r̲e̲c̲o̲n̲f̲i̲g̲u̲r̲a̲t̲i̲o̲n̲

             The PU reconfiguration commands contains:

             -   an ordered close-down of the standby PU
             -   an ordered close-down of the active PU
             -   an ordered switchover to the standby PU.

             An ordered close-down of the standby PY is implemented
             by requesting the watchdog to reset the standby
             PU via the CCB.

             An ordered close-down of the active PU is handled
             in the ordered-close-down module.

             An ordered switchover consists of an ordered close-down
             of the active PU and a subsequent switch to the
             standby PU  executed via the WDP. The switchover
             is also handled in the ordered close-down module.


         b)  S̲o̲f̲t̲w̲a̲r̲e̲ ̲r̲e̲c̲o̲n̲f̲i̲g̲u̲r̲a̲t̲i̲o̲n̲

             The software reconfiguration commands are:

             -   set of trace mask
             -   copy of software load files
             -   adjust clock
             -   print software version numbers

             The setting of trace mask is only applicable, when
             the system is in "trace mode", which is entered
             if a global boolean TRACE ̲MODE is set.

             In trace mode each process opens a trace file and
             via the "set trace mask" command specific system
             calls for specific processes can be traced.

             The copying of software consists of:

             -   copying of system software or application software
                 or a single patchfile
                 -   from the offline disk to the mirrored disks
                     or
                 -   from the floppy disk to the offline disk
             -   copying the garble file from the mirrored disks
                 to the offline or floppy disk.

             The adjusted clock is received from CMI and is
             set.

             The print software versions commands maked CFH
             print the version numbers of:

             -   the patchfiles
             -   the CONFIG file in the directions

                 - SSC ̲DIR ̲INITIAL
                 - SSC ̲DIR ̲MODIFIED

             for the disk specified in the operator command.



         c)  P̲e̲r̲i̲p̲h̲e̲r̲a̲l̲ ̲r̲e̲c̲o̲n̲f̲i̲g̲u̲r̲a̲t̲i̲o̲n̲

             Peripheral reconfiguration relates to three areas:

             -   disk reconfiguration
             -   LTU and LTU line reconfiguratioan
             -   BSM ̲X, LTUX and LTUX line reconfiguration.

             The peripheral reconfiguration commands are generally
             executed identically.

             The CMI sends an updated version of an entry in
             a porttable.

             CFH reads the old entry and subsequent actions
             are based upon a comparison of the old and the
             new entry.

             The actions includes:

             -   update of the porttable
             -   update of the WDP ̲VDU configuration display.

         c1) D̲i̲s̲k̲ ̲r̲e̲c̲o̲n̲f̲i̲g̲u̲r̲a̲t̲i̲o̲n̲

             The operator can

             -   assign/deassign

                 - the floppy disk
                 - the offline disk

             -   mount/dismount

                 - the floppy disk

             -   include/exclude

                 - a single mirrored disk.

         c2) L̲T̲U̲ ̲a̲n̲d̲ ̲L̲T̲U̲ ̲l̲i̲n̲e̲ ̲r̲e̲c̲o̲n̲f̲i̲g̲u̲r̲a̲t̲i̲o̲n̲ ̲

             The operator is only allowed to change a porttable
             for a LTU/LTU-line, if the corresponding line(s)
             are not connected (by the supervisor in a profile)


             LTUs and LTU-lines are described in separate porttables.
             For the LTU-line porttable each entry contains
             a "chain status", which indicates, if:

             -   the LTU line is in service (set by the operator)
                 and

             -   the associated LTU is in-service or not.

             This status is used by the supervisor, when examining
             if a line is available.

             The operator commands gives the following possibilities:

             -   setting a LTU/LTU-line in-service/out-of-service.
                 This implies creation/dismandling of TMS subdevices-
                 For LTUs a bootload is implied

             -   specifying line characteristica, e.g. speed/alphabetic.

             When setting a LTU in-service it is examined, if
             the "chain status" for involved  LTU-lines becomes
             in-service. If so, the appropriate subdevices are
             created and the porttable entries are updated.

             When taking an LTU out of service then the associated
             lines "chain status" is set out-of-service.


         c3) B̲S̲M̲ ̲X̲,̲ ̲L̲T̲U̲X̲ ̲a̲n̲d̲ ̲L̲T̲U̲X̲ ̲L̲i̲n̲e̲ ̲r̲e̲c̲o̲n̲f̲i̲g̲u̲r̲a̲t̲i̲o̲n̲

             BSM ̲X, LTUX and LTUX ̲Line handling is identical
             to LTU/LTU-line handling, but for BSM ̲Xs the WDP
             is commanded to connect the BSM ̲X( via the CCB)
             to either

             -   the active TDX bus
             -   the offline TDX bus

             or to none of the busses.



4.2.9.4.3.2 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)  ONLINE ̲OPERATION
         b)  ONLINE ̲OPERATION (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

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

         R0 - R7  destr.



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

         The on-line-operations module references the procedure/modules
         specified in fig. 4.2.9.4.3.3-1 through to 4.2.9.4.3.3-3





                     4.2.9.4.3.2-2-3



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

         a1) T̲y̲p̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

             COPSY ̲GARBLE ̲PARAMS          : SSC.COMMON

             ACTIVE, STANDBY              : DBD

             FILE ̲NAME,
             FDCB ̲INDEX,
             VOLUME ̲NAME                  : DAMOS.IOS

             MODIFY ̲INF
             ORDERED ̲SWITCHOVER,
             ORDERED ̲CLOSE ̲DOWN           : CFH.VARIOUS

             LTUX ̲LINE ̲REC,
             LTUX ̲REC,
             BSMX ̲REC,
             LTU ̲LINE ̲REC,
             LTU ̲REC,
             DISK ̲PARAM                   : DBD
             RELATIVE ̲TIME ̲TYPE,
             PU ̲TYPE,
             SW ̲TO ̲BE ̲LOADED,
             TRACE ̲INF                    : SSC.COMMON


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

             LONG ̲OP,
             WRK,
             KEY ̲BUF,
             SINGLE ̲BUF,
             READ ̲MASK                    : CFH.VARIOUS



         a3) C̲o̲n̲s̲t̲a̲n̲t̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

             CMI ̲COMMANDS ̲PROC,
             ONLINE ̲OPERATION ̲PROC,
             ILLEGAL ̲CMD ̲TYPE,
             ILLEGAL ̲CMD                  : CFH.VARIOUS
             VOLUME ̲ERROR,
             DISK ̲ERROR,
             MIR ̲MOVING,
             SYS ̲GEN                      : DBD
             RESET ̲ALL ̲PRIORITIES ̲NO      : SSC.COMMON
             LINE ̲CONNECTED ̲IN ̲PROFILE,
             LAST ̲MIRRORED ̲DISK,
             EXEC ̲OK,
             COPY ̲ERROR ̲X,
             NO ̲OPERATION,
             HW ̲ERROR,
             WRONG ̲VOLUME ̲NAME ̲X,
             VOLUME ̲NAME ̲IS ̲USED ̲X,
             VOLUME ̲MOUNTED ̲X,
             ILLEGAL ̲PROCESS ̲NO            : SSC.COMMON



         a4) T̲a̲b̲l̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

             LTUX ̲LINE ̲TABLE, (m)
             LTUX ̲TABLE,      (m)
             BSM ̲X ̲TABLE,     (m)
             LTU ̲LINE ̲TABLE,  (m)
             LTU ̲TABLE,       (m)
             DISK ̲TABLE       (m)         : DBD

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

             All tables referenced are updated.

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

             VAR  COPY ̲INF : MODIFY ̲INF

             VAR  INF : RECORD
                            CC : INTEGER
                          FILE : FILE ̲NAME
                        END

             VAR  G ̲INF  :  COPSY ̲GARBLE ̲PARAMS     (SSC.COMMON)

             VAR  CHECK ̲OK : BOOLEAN

             VAR  DSK  :  MIR1 ̲DISK .. OFL ̲DISK

             VAR  STANDBY ̲PU  :  PU1..PU2

             OLD ̲REC : LTUX ̲LINE ̲REC
              "local variable for LTUX ̲LINE ̲OP ̲CMD. Used to
             keep
               the old description of the LTUX ̲LINE.

             OLD ̲REC : LTUX ̲REC
              "local variable for LTUX ̲OP ̲CMD. Used to keep
             the
               old description of the LTUX.

             OLD ̲REC : BSM ̲X ̲REC
              "local variable for BSM ̲X ̲OP ̲CMD. Used to keep
             the
               old description of the BSM ̲X.

             OLD ̲REC : LTU ̲LINE ̲REC
              "local variable for LTU ̲LINE ̲OP ̲CMD. Used to keep
               the old description of the LTU ̲LINE

             OLD ̲REC : LTU ̲REC
              "local variable for LTU ̲OP ̲CMD. Used to keep the
               old description of the LTU.



             VAR OLD ̲REC : DISK ̲PARAM
                 "local variable for DISK ̲OP ̲CMD. Used to keep
                 
                  the old description of the disk.

             VAR STATUS : DISK ̲STATUS
                 "local variable for DISCARD ̲ACTION. Used to
                 keep
                  the status of a mirrored disk.

             VAR ACTION : DISK ̲ACTION
                 "used top keep the action to be performed on
                 a 
                  disk.



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

         a)  O̲N̲L̲I̲N̲E̲ ̲O̲P̲E̲R̲A̲T̲I̲O̲N̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲

             Serves the CFH input semaphore CFH ̲OS and dispatches
             depending on the CMD ̲TYPE. Upon command execution
             the operation is released.

             The online operation procedure runs in a "forever"
             loop.

             F̲l̲o̲w̲g̲r̲a̲m̲:̲ Figure 4.2.9.4.3.5-1

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

             Standard i.e. the interface contains only a LINK
             call register. All return registers are destroyed.


         b)  C̲M̲I̲ ̲C̲M̲D̲S̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲

             Depending on the LONG ̲OP ̲CMD the procedure will
             impress LONG ̲OP ̲INF a type and call a procedure
             for further handling.

             F̲l̲o̲w̲g̲r̲a̲m̲:̲ See 4.2.9.4.3.5-2

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

             Standard


         c)  L̲T̲U̲X̲ ̲L̲I̲N̲E̲ ̲O̲P̲ ̲C̲M̲D̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲

             Finds the old description, OLD ̲REC, for the LTUX
             ̲LINE. Calls LTUX ̲LINE ̲HANDLE for further handling.
             Sends a reply to CMI.

             F̲l̲o̲w̲g̲r̲a̲m̲:̲ Figure 4.2.9.4.3.5-3

             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)  LTUX ̲LINE ̲OP ̲CMD (NEW ̲REC:LTUC ̲LINE ̲REC)
             b)  LTUX ̲LINE ̲OP ̲CMD (R0, 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̲

             R0  pointer to NEW ̲REC
             R6  LINK

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

             R0 - R7  destr.


         d)  L̲T̲U̲X̲ ̲O̲P̲ ̲C̲M̲D̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲

             Finds the old description, OLD ̲REC, for the LTUX.
             Calls LTUX ̲HANDLE for further handling. Sends reply
             to CMI.

             F̲l̲o̲w̲g̲r̲a̲m̲:̲ Figure 4.2.9.4.3.5-4

             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)  LTUX ̲OF ̲CMD (NEW ̲REC : LTUX ̲REC)
             b)  LTUX ̲OP ̲CMD (R0, 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̲

             R0  pointer to NEW ̲REC
             R6  LINK

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

             R0 - R7  destroyed




         e)  B̲S̲M̲ ̲X̲ ̲O̲P̲ ̲C̲M̲D̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲

             Finds the old description, OLD ̲REC, for the BSM
             ̲X. Calls BSM ̲X ̲HANDLE and BSM ̲X ̲LTUX ̲CONTROL for
             further handling. Sends a reply to CMI.

             F̲l̲o̲w̲g̲r̲a̲m̲:̲ Figure 4.2.9.4.3.5-5

             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)  BSM ̲X ̲OP ̲CMD (NEW ̲REC : BSM ̲X ̲REC)
             b)  BSM ̲X ̲OP ̲CMD (R0, 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̲

             R0  pointer to NEW ̲REC
             R6  LINK

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

             R0 - R7  destr.

         f)  L̲T̲U̲ ̲L̲I̲N̲E̲ ̲O̲P̲ ̲C̲M̲D̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲

             Finds the old description, OLD ̲REC, for the LTU
             ̲LINE. Calls LTU ̲LINE ̲HANDLE for further handling.
             Sends a reply to CMI.

             F̲l̲o̲w̲g̲r̲a̲m̲:̲ Figure 4.2.9.4.2.5-6

             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)  LTU ̲LINE ̲OP ̲CMD (NEW ̲RED : LTU ̲LINE ̲REC)
             b)  LTU ̲LINE ̲OP ̲CMD (R0, 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̲

             R0  pointer to NEW ̲REC

             R6  LINK

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

             R0 - R7  destr.


         g)  L̲T̲U̲ ̲O̲P̲ ̲C̲M̲D̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲

             Finds the old description, OLD ̲REF, for the LTU
             in LTU ̲TABLE. Calls LTU ̲HANDLE. Sends a reply to
             CMI

             F̲l̲o̲w̲g̲r̲a̲m̲:̲ Figure 4.2.9.4.3.5-7

             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)  LTU ̲OP ̲CMD (NEW ̲REC : LTU ̲REC)
             b)  LTU ̲OP ̲CMD (R0, 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̲

             R0  pointer to NEW ̲REC
             R6  LINK

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

             R0 - R7  destr.


         h)  D̲I̲S̲K̲ ̲O̲P̲ ̲C̲M̲D̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲

             Finds the old description, OLD ̲REC, for the disk.
             For the different kind of disks it finds the action
             to be performed. This is done in a  CASE ̲statement
             and by the procedure call DETERMINE ̲ACTION. The
             action to do is performed, and at last a reply
             is sent to CMI.


             F̲l̲o̲w̲g̲r̲a̲m̲:̲ Figure 4.2.9.4.3.5-8

             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)  DISK ̲OP ̲CMD (NEW ̲REC : DISK ̲PARAM)
             b)  DISK ̲OP ̲CMD (R0, 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̲

             R0  pointer to NEW ̲REC
             R6  LINK

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

             R0 - R7  destr.


         i)  D̲E̲T̲E̲R̲M̲I̲N̲E̲ ̲A̲C̲T̲I̲O̲N̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲

             Depending of the kind of disk, mirrored, floppy
             or offline, this procedure determines the action
             to do as described in table 4.2.9.4.3.4-1.

             F̲l̲o̲w̲g̲r̲a̲m̲:̲ Figure 4.2.9.4.3.5-9

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

             a)  DETERMINE ̲ACTION (DISK:KIND ̲OF ̲DISK)
                                  (ACTION:DISK ̲ACTION)
             b)  DETERMINE ̲ACTION(R0, R7, 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̲

             R0  DISK
             R6  LINK

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

             R7  ACTION
             R0 - R6  destr.



         j)  A̲C̲T̲I̲O̲N̲ ̲O̲N̲ ̲D̲I̲S̲K̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲


             The ACTION, which is given as call parameter, is
             performed. The DISK ̲TABLE is updated and the configuration
             display on the operator VDUs is updated.

             F̲l̲o̲w̲g̲r̲a̲m̲:̲ Figure 4.2.9.4.3.5-10

             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)  ACTION ̲ON ̲DISK (ACTION:DISK ̲ACTION) (CC:INTEGER)
             b)  ACTION ̲ON ̲DISK (R0, R7, 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 0  ACTION
             R 6  LINK

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

             R0 - R6  destr.
             R7  CC


         k)  D̲I̲S̲C̲A̲R̲D̲ ̲A̲C̲T̲I̲O̲N̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲

             Find the status of the other mirrored disk, than
             the one which the CMI-command should be performed.
             Depending on this status the last mirrored disk
             is excluded.

             F̲l̲o̲w̲g̲r̲a̲m̲:̲ Figure 4.2.9.4.3.5-11

             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)  DISCARD ̲ACTION ( )  (CC:INTEGER)
             b)  DISCARD ̲ACTION (R7, 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

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

             R0 - R6  destr.
             R7  CC


         l)  O̲R̲D̲E̲R̲E̲D̲ ̲C̲L̲O̲S̲E̲ ̲D̲O̲W̲N̲ ̲O̲P̲ ̲C̲M̲D̲ ̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲

             Depending on the PU to close-down ORDERED ̲CLOSE
             ̲DOWN or WDP ̲CONTROL is called. If it is the standby
             PU there shall be closed down, the configuration
             display is updated and a reply is sent to CMI.

             F̲l̲o̲w̲g̲r̲a̲m̲:̲ Figure 4.2.9.4.3.5-12

             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)  ORDERED ̲CLOSE ̲DOWN (PU:(ACTIVE ̲PU, STANDBY
                 ̲PU),
                                     MINUTES:RELATIVE ̲TIME ̲TYPE)
             b)  ORDERED ̲CLOSE ̲DOWN (R0, R1, 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̲

             R0  PU
             R1  MINUTES
             R6  LINK

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

             R0 - R6  destr.




         m)  S̲E̲T̲ ̲T̲R̲A̲C̲E̲ ̲M̲A̲S̲K̲ ̲O̲P̲ ̲C̲M̲D̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲

             Invokes the Kernel log trace procedures:

             -   set log priority
             -   reset log priority

             F̲l̲o̲w̲g̲r̲a̲m̲:̲ Figure 4.2.9.4.3.5-13

             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)  SET ̲TRACE ̲MASK ̲OP ̲CMD (TRACE ̲INFO:TRACE ̲INF)
             b)  SET ̲TRACE ̲MASK ̲OP ̲CMD (R0, R6)

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

             R0  pointer to TRACE ̲INFO
             R6  LINK

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

             R0 - R7  destr.



         PROCEDURE

         ONLINE ̲OPERATION

         VAR  G ̲INF : COPSY ̲GARBLE ̲PARAMS
         INIT G ̲INF.ERROR ̲TYPE  = COPSY ̲LONG ̲ERROR
              G ̲INF.USER ̲ACTION = CONTINUE
              G ̲INF.ERROR ̲COR   = CFH ̲COR
              G ̲INF.ERROR ̲LOC   = ONLINE-OPERATION ̲PROC

         BEGIN

             LOOP ̲FOREVER

                 WAIT ̲OPSEM (CFH ̲OS) (LONG ̲OP)

                 CASE  LONG ̲OP.CMD ̲TYPE  OF

                     DEVICE ̲ERROR,

                     WDP ̲CMD ?  HW ̲ERROR ̲HANDLING (LONG ̲OP)

                     CMI ̲CMD ̲L ?  CMI ̲CMDS

                     OTHER ?  G ̲INF.ERROR ̲INFO (1) = ILLEGAL
                     ̲CMD ̲TYPE
                              COPSY ̲SEND ̲GARBLE (LONG ̲OP, G
                     ̲INF)

                 END CASE

                 SIGNAL ̲OPSEM (LONG ̲OS, LONG ̲OP)

             END ̲LOOP ̲FOREVER

         END ̲ONLINE OPERATION












                    Fig. 4.2.9.4.3.5-1



   PROCEDURE CMI ̲CMDS

   VAR COPY ̲INF: MODIFY ̲INF
   VAR ̲INF : RECORD
                CC : INTEGER
              FILE : FILE ̲NAME
             END

   VAR G ̲INF : COPY ̲GARBLE ̲PARAMS

   INIT G ̲INF. ERROR ̲TYPE  = COPSY ̲LONG ̲ERROR
        G ̲INF. USER ̲ACTION = CONTINUE
        G ̲INF. ERROR ̲COR   = CFH ̲COR
        G ̲INF. ERROR ̲LOC   = CMI ̲CMDS ̲PROC

   BEGIN

       EQVIVALENCE (LONG ̲OP.REP, Q ̲CONTENTS : REPLY ̲TYPE)
       EQVIVALENCE (LONG ̲OP.INF (1), CMI ̲QEL: QEL ̲REFERENCE)
       CASE  LONG ̲OP.CMD  OF

           LTUX ̲LINE ̲CONTROL? EQVIVALENCE(LONG ̲OP.INF(2),NEW
           ̲REC:
                              LTUX ̲LINE ̲REC)
                                LTUX ̲LINE ̲OP ̲CMD (NEW
 ̲REC)

           LTUX ̲CONTROL?      EQVIVALENCE(LONG ̲OP.INF(2),
           NEW ̲REC:
                              LTUX ̲REC)
                              LTUX ̲OP ̲CMD (NEW ̲REC)

           BSM ̲X ̲CONTROL?     EQVIVALENCE(LONG ̲OP.INF(2),NEW
           ̲REC:
                              BSM ̲X ̲REC)
                                BSM ̲X ̲OP ̲CMD (NEW ̲REC)

           LTU ̲LINE ̲CONTROL?  EQVIVALENCE(LONG ̲OP.INF(2),NEW
           ̲REC :
                              LTU ̲LINE ̲REC)
                                LTU ̲LINE ̲OP ̲CMD(NEW ̲REC)

           LTU ̲CONTROL?       EQVIVALENCE(LONG ̲OP.INF(2),NEW
           ̲REC:
                              LTU ̲REC)
                                LTU ̲OP ̲CMD (NEW ̲REC)

           DISK ̲DRIVE ̲ASSIGNMENT?  EQVIVALENCE(LONG ̲OP.INF(2),
                                   NEW ̲REC:DISK ̲PARAM)
                                   DISK ̲OP ̲CMD (NEW ̲REC)

           SWITCHOVER?        EQVIVALENCE(LONG ̲OP.INF(2),TIME
           :
                              RELATIVE ̲TIME ̲TYPE)
                              ORDERED ̲CLOSE ̲DOWN(INITIAL,TIME,
                              ORDERED ̲SWITCHOVER)

   CONTINUE        Figure 4.2.9.4.3.5-2 (1/3)


   PROCEDURE CMI ̲CMDS   Continued

           CLOSE ̲DOWN ̲SYS?        EQVIVALENCE(LONG
           ̲OP.INF(2),PU:
                                                                     
                                                                     
                                                                     
                                                                     
                                                                     
                                                                     
                                                                     
                                                                     
                                                                     
                                                                     
                                                                     
                                                                     
                                                                     
                                                                     
                                                                     
                                                                     
                                                                     
                                                                     ACTIVE..STANDBY),
                              EQVIVALENCE (LONG ̲OP.INF(3),TIME
                           :
                              RELATIVE ̲TIME ̲TYPE)
                              ORDERED ̲CLOSE ̲DOWN ̲OP
                           ̲CMD (PU,TIME)

           CLOSE ̲DOWN ̲FINAL?  ORDERED ̲CLOSE ̲DOWN (FINAL,0,0)

           TEMCO ̲DEMCO ̲CEMCO ̲CLOSED? ORDERED ̲CLOSE
           ̲DOWN(LINE ̲PRO-
                                     CESSES ̲CLOSED,0,0)

           CMD ̲SEH ̲CLOSED?    ORDERED ̲CLOSE ̲DOWN(COPSY
           ̲ENVIRON-
                              MENT ̲CLEANED ̲UP, 0,0

           CLOSE ̲DOWN ̲TERMINATED? ORDERD ̲CLOSE ̲DOWN(TERMINATED,0,0)

           LOAD ̲MODIFIED ̲SW ? EQVIVALENCE(LONG ̲OP.INF(2),
                              SW ̲TO ̲BE ̲LOADED ̲REC:SW
                           ̲TO ̲BE ̲LOADED)
                              COPY ̲MODIFIED ̲SOFTWARE(SW
                           ̲TO ̲BE ̲LOA-
                              DED ̲REC) (COPY ̲INF)
                              COPY ̲INF.CC EQ  0 ?
                              COPY ̲INF.DISK EQ MIRRORED1?
                           PU ̲DOWN
                                         (COPY ̲ERROR,COPY
                           ̲INF)
                              REPORT ̲ERROR (COPY ̲ERROR,COPY
                           ̲INF)
                              COPY ̲INF.CC GE 256?
                                       COPY ̲INF.CC
                           = COPY ̲ERROR ̲X
                              SEND ̲SSC ̲REPLY (Q ̲CONTENTS,CMI
                           ̲QEL,
                                         COPY ̲INF.CC)









            Fig. 4.2.9.4.3.5-2  (2/3)


   PROCEDURE  CMI ̲CMDS   continued

       PRINT ̲SW ̲VERSION ? EQUIVALENCE(LONG ̲OP.INF(2),DISK
       ̲SPEC :
                                          DISK ̲SW ̲VERSION)

                          PRINT ̲SW ̲VERSIONS ̲OP ̲CMD(DISK
                       ̲SPEC)
                                  (INF.CC, INF.FILE)

                          INF.CC EQ  0 ?

                          DISK ̲SPEC EQ OFFLINE ̲SW ?

                          PU ̲DOWN (LOAD ̲ERROR,INF)
                                 INF.CC GE 256? INF.CC
                       = COPY ̲ERROR ̲X
                                        REPORT ̲ERROR (LOAD
                       ̲ERROR,INF)
                                        SEND ̲SSC ̲REPLY
                       (Q ̲CONTENTS,
                                                     
                            CMI ̲QEL,INF.CC)

       SET ̲TRACE ̲MASK ?   EQVIVALENCE(LONG ̲OP.INF(2),TRACE
       ̲INFO:
                                                 TRACE
                       ̲INF)

                          SET ̲TRACE ̲MASK ̲OP ̲CMD(TRACE
                       ̲INFO)

       ADJUST ̲TIME ?      EQVIVALENCE(LONG ̲OP.INF(2),NEW
       ̲DTG :
                              SYSTEM ̲TIME) SET ̲TIME(NEW
                           ̲DTG)

       DELETE ̲CIF 

       OPERATOR ̲ONLY ̲TERMINATED ?           CC=NOT ̲OPERATOR
       ̲ONLY ̲MODE
                                              SEND ̲SSC
 ̲REPLY(Q ̲CONTENTS,
                                                     
                            CMI ̲QEL, CC)
                           
       OTHER ? G ̲INF.ERROR ̲INFO (1) =       ILLEGAL ̲CMD

           COPSY ̲SEND ̲GARBLE (LONG ̲OP, G ̲INF)

           SEND ̲SSC ̲REPLY(Q ̲CONTENTS,CMI ̲QEL,CC)

       END CASE LONG ̲OP.CMD

   END PROCEDURE CMI ̲CMDS




             Fig. 4.2.9.4.3.5-2  (3/3)


   PROCEDURE

   LTUX ̲LINE ̲OP ̲CMD (NEW ̲REC:LTUX ̲LINE ̲REC)

   VAR  CHECK ̲OK : BOOLEAN

   VAR  OLD ̲REC : LTUX ̲LINE ̲REC

   BEGIN

       CC = EXEC ̲OK

       CHECK ̲PROFILE (LTUX ̲LINE ̲TABLE, NEW ̲REC.NO,1)(CHECK
       ̲OK)

       CHECK ̲OK EQ FALSE ? CC = LINE ̲CONNECTED ̲IN ̲PROFILE

       KEY ̲BUF.KEY = NEW ̲REC.NO

       SEARCH ̲ENTRY (LTUX ̲LINE ̲TABLE, KEY ̲BUF, ALL ̲MASK,
       SEND ̲BUF)
                     (OLD ̲REC)

       LTUX ̲LINE ̲HANDLE (OLD ̲REC,NEW ̲REC)

       SEND ̲SSC ̲REPLY (Q ̲CONTENTS, CMI ̲QEL, CC)

   END LTUX ̲LINE ̲OP ̲CMD























                 Fig. 4.2.9.4.3.5-3



   PROCEDURE

   LTUX ̲OP ̲CMD (NEW ̲REC : LTUX ̲REC)

   VAR  CHECK ̲OK : BOOLEAN

   VAR  OLD ̲REC : LTUX ̲REC


   BEGIN

       CHECK ̲PROFILE(LTUX ̲LINE ̲TABLE, 4*(NEW ̲REC.NO-1),4)(CHECK
       ̲OK)

       CHECK ̲OK EQ FALSE ?  CC = LINE ̲CONNECTED ̲IN ̲PROFILE

       KEY ̲BUF.KEY = NEW ̲REC.NO

       SEARCH ̲ENTRY (LTUX ̲TABLE, KEY ̲BUF, ALL ̲MASK,SEND
       ̲BUF)
                                                     
                             (OLD ̲REC)

       LTUX ̲HANDLE (OLD ̲REC, NEW ̲REC) (CC)

       SEND ̲SSC ̲REPLY (Q ̲CONTENTS, CMI ̲QEL, CC)

   END LTUX ̲OP ̲CMD






















                 Fig. 4.2.9.4.3.5-4


   PROCEDURE

   BSM ̲X ̲OP ̲CMD (NEW ̲REC:BSM ̲X ̲REC)

   VAR  CHECK ̲OK  :  BOOLEAN

   VAR  OLD ̲REC  :  BSM ̲X ̲REC

   BEGIN

       CHECK ̲PROFILE (LTUX ̲LINE ̲TABLE, 8 * (NEW ̲REC.NO-1)+1,
       8)
                                             (CHECK ̲OK)

       CHECK ̲OK EQ FALSE ?  CC = LINE ̲CONNECTED ̲IN ̲PROFILE

       KEY ̲BUF.KEY=NEW ̲REC.NO

       SEARCH ̲ENTRY (BSM ̲X ̲TABLE, KEY ̲BUF, ALL ̲MASK, SEND
       ̲BUF)
                                                     
                              (OLD ̲REC)

       BSM ̲X ̲HANDLE (OLD ̲REC) (CC)

       CC NE 0 ?

       BSM ̲X ̲LTUX ̲CONTROL (OLD ̲REC, NEW ̲REC) (CC)

       SEND ̲SSC ̲REPLY (Q ̲CONTENTS, CMI ̲QEL, CC)

   END BSM ̲X ̲OP ̲CMD


















                 Fig. 4.2.9.4.3.5-5


   PROCEDURE

   LTU ̲LINE ̲OP.CMD (NEW ̲REC : LTU ̲LINE ̲REC)

   VAR  CHECK ̲OK  :  BOOLEAN

   VAR  OLD ̲REC : LTU ̲LINE ̲REC

   BEGIN

       CC = EXEC ̲OK

       CHECK ̲PROFILE (LTU ̲LINE ̲TABLE, NEW ̲REC.NO,1) (CHECK
       ̲OK)

       CHECK ̲OK EQ FALSE ?  CC = LINE ̲CONNECTED ̲IN ̲PROFILE

       KEY ̲BUF.KEY = NEW ̲REC.NO

       SEARCH ̲ENTRY (LTU ̲LINE ̲TABLE, KEY ̲BUF, ALL ̲MASK,
       SEND ̲BUF)
                                                     
                               (OLD ̲REC)

       LTU ̲LINE ̲HANDLE (OLD ̲REC, NEW ̲REC)

       SEND ̲SSC ̲REPLY (Q ̲CONTENTS, CMI ̲QEL, CC)

   END LTU ̲LINE ̲OP ̲CMD





















                 Fig. 4.2.9.4.3.5-6



   PROCEDURE

   LTU ̲OP ̲CMD (NEW ̲REC : LTU ̲REC)

   VAR  CHECK ̲OK  :  BOOLEAN

   VAR  OLD ̲REC : LTU ̲REC

   BEGIN

       CHECK ̲PROFILE (LTU ̲LINE ̲TABLE, 2*(NEW ̲REC.NO-1),2)(CHECK
       ̲OK)

       CHECK ̲OK EQ FALSE ?  CC = LINE ̲CONNECTED ̲IN ̲PROFILE

       KEY ̲BUF.KEY=NEW ̲REC.NO

       SEARCH ̲ENTRY(LTU ̲TABLE,KEY ̲BUF,ALL ̲MASK,SEND ̲BUF)(OLD
       ̲REC)

       LTU ̲HANDLE (OLD ̲REC, NEW ̲REC) (CC)

       SEND ̲SSC ̲REPLY (Q ̲CONTENTS, CMI ̲QEL, CC)

   END LTU ̲OP ̲CMD






















                 Fig. 4.2.9.4.3.5-7


   PROCEDURE

   DISK ̲OP ̲CMD (NEW ̲REC : DISK ̲PARAM)

   VAR  OLD ̲REC : DISK ̲PARAM

   VAR  ACTION : DISK ̲ACTION

   BEGIN

       KEY ̲BUF.KEY = NEW ̲REC.DISK

       SEARCH ̲ENTRY(DISK ̲TABLE,KEY ̲BUF,ALL ̲MASK,SEND ̲BUF)(OLD
       ̲REC)

       CASE  NEW ̲CMD.DISK  OF

           MIRRORED1,

           MIRRORED2 ?  DETERMINE ̲ACTION (MIRRORED2) (ACTION)

           FLOPPY ̲DISK ? DETERMINE ̲ACTION (FLOPPY ̲DISK)
           (ACTION)

           OFFLINE ̲DISK ? DETERMINE ̲ACTION (OFFLINE ̲DISK)
           (ACTION)

       END CASE  NEW ̲CMD.DISK

       ACTION EQ NO ̲OP  ?   CC = NO ̲OPERATION

       ACTION EQ REFUSE ?   CC = STATUS ̲CHANGE ̲ILLEGAL

       ACTION EQ UPDATE ?

               CC = EXEC ̲OK

               UPDATE ̲ENTRY (DISK ̲TABLE,SEND ̲BUF,KEY ̲BUF,ALL
               ̲MASK,
                                                     
                                NEW ̲REC)

       ACTION ̲ON ̲DISK (ACTION) (CC)

       SEND ̲SSC ̲REPLY (Q ̲CONTENTS, CMI ̲QEL, CC)

   END







                 Fig. 4.2.9.4.3.5-8


   PROCEDURE

   DETERMINE ̲ACTION (DISK:KIND ̲OF ̲DISK) (ACTION : DISK
   ̲ACTION)

   VAR  MIRRORED ̲DISK ̲ACTION ̲TABLE, FLOPPY ̲DISK ̲ACTION
   ̲TABLE,
                                    OFFLINE ̲DISK ̲ACTION
                   ̲TABLE:ARRAY
                                    (DISK ̲STATUS) OF ARRAY
                                    (DISK ̲STATUS)

   TYPE  KIND ̲OF ̲DISK : MIRRORED2..OFFLINE ̲DISK

   BEGIN

     CASE  DISK  OF

        MIRRORED2 ? ACTION=MIRRORED ̲DISK ̲ACTION ̲TABLE(OLD
     ̲REC.STA-
                                               TUS, NEW
                           ̲REC.STATUS)

        FLOPPY ̲DISK ? ACTION=FLOPPY ̲DISK ̲ACTION ̲TABLE(OLD
     ̲REC.STA-
                                               TUS, NEW
                           ̲REC.STATUS)

        OFFLINE ̲DISK ? ACTION=OFFLINE ̲DISK ̲ACTION ̲TABLE(OLD
    ̲REC.STA-
                                               TUS, NEW
                           ̲REC.STATUS)

     END CASE

   END ̲DETERMINE ̲ACTION
 



















                 Fig. 4.2.9.4.3.5-9



   PROCEDURE

   ACTION ̲ON ̲DISK (ACTION:DISK ̲ACTION) (CC : INTEGER)

   VAR  DSK : MIR1 ̲DISK ..OFFL ̲DISK

   BEGIN

       CC = 0

       CASE ACTION OF

           MOUNT ̲A? MOUNT ̲DISK(NEW ̲REC.DISK,NEW ̲REC.VOLUME)
           (CC)

                    CASE CC OF

                       IN ̲VOLUME?   NEW ̲REC.STATUS = VOLUME
                       ̲ERROR
                                    CC = HW ̲ERROR

                       IN ̲DISK?     NEW ̲REC.STATUS = DISK
                       ̲ERROR
                                    CC = HW ̲ERROR

                       WRONG ̲VOLUME ̲NAME?
                                    CC = WRONG ̲VOLUME
                           ̲NAME ̲X

                       VOLUME ̲NAME ̲IS ̲USED?
                                    CC = VOLUME ̲NAME ̲IS
                           ̲USED ̲X

                   END ̲CASE

           DISMOUNT ̲A?DISMOUNT ̲DISK(NEW ̲REC.DISK,NEW ̲REC.VOLUME
           (CC)

                   CASE CC OF

                       IN ̲VOLUME?  NEW ̲REC.STATUS = VOLUME
                       ̲ERROR
                                   CC = HW ̲ERROR

                       IN ̲DISK?    NEW ̲REC.STATUS = DISK
                       ̲ERROR
                                   CC = HW ̲ERROR

                       NON ̲EXISTING ̲VOLUME?
                                   CC = NON ̲EXISTING VOLUME
                       ̲X

                   END ̲CASE

           ASSIGN ̲A? ASSIGN ̲DISK(NEW ̲REC.DISK)(CC)

                   CASE CC OF

                       VOLUME ̲MOUNTED?  CC = VOLUME ̲MOUNTED
                       ̲X

                   END ̲CASE


           DEASSIGN A? DEASSIGN ̲DISK(NEW ̲REC.DISK)(CC)

                   CASE CC OF

                       VOLUME ̲MOUNTED?  CC = VOLUME ̲MOUNTED
                       ̲X

                   END ̲CASE

           DISCARD A? DISCARD ̲ACTION(NEW ̲REC.DISK) (CC)

           INCLUDE A? INCLUDE ̲A ̲MIRRORED ̲DISK(NEW ̲REC.DISK)
           (CC)

                   CASE CC OF

                       IN ̲VOLUME?  CC = HW ̲ERROR

                       IN ̲DISK?    CC = HW ̲ERROR

                   END ̲CASE

       END CASE

       CC NE 0 AND CC NE HW ̲ERROR ?

       CASE NEW ̲REC.DISK  OF

           MIRRORED 1 ?  DSK = MIR1 ̲DISK
           MIRRORED 2 ?  DSK = MIR2 ̲DISK
           FLOPPY ̲DISK ? DSK = FLOP ̲DISK
           OFFLINE ̲DISK ? DSK = OFFL ̲DISK

       END ̲CASE

       KEY ̲BUF.KEY = NEW ̲REC.DISK

       UPDATE ̲ENTRY(DISK ̲TABLE,SEND ̲BUF,KEY ̲BUF,ALL ̲MASK,NEW
       ̲REC)

       CONF ̲DISPLAY (SET ̲STATUS, DSK, NEW ̲REC.STATUS)

   END

                Fig. 4.2.9.4.3.5-10


   PROCEDURE

   DISCARD ̲ACTION  ( ) (CC:INTEGER)

   VAR  STATUS : DISK ̲STATUS

   BEGIN

       READ ̲MASK = 2                                 "STATUS

       CASE  NEW ̲REC.DISK  OF

           MIRRORED1 ?  KEY ̲BUF.KEY = MIRRORED2

           MIRRORED2 ?  KEY ̲BUF.KEY = MIRRORED1

       END CASE  NEW ̲REC.DISK

       SEARCH ̲ENTRY (DISK ̲TABLE,KEY ̲BUF,READ ̲MASK,SEND
       ̲BUF)(STATUS)

       STATUS EQ IN ̲SERVICE ?

                       EXCLUDE ̲A ̲MIRRORED ̲DISK(NEW ̲REC.DISK)

       CC = LAST ̲MIRRORED ̲DISK

   END ̲DISCARD ̲ACTION




















                Fig. 4.2.9.4.3.5-11



   PROCEDURE  ORDERED ̲CLOSE ̲DOWN ̲OP ̲CMD (PU:ACTIVE..STANDBY,
   MINU-
                                          TES : RELATIVE
                           ̲TIME ̲TYPE)
                                         (CC : INTEGER)

   VAR  STANDBY ̲PU :  PU1..PU2


   BEGIN

       CC = 0

       CASE  PU  OF

           ACTIVE ̲PU ?  ORDERED ̲CLOSE ̲DOWN (INITIAL, MINUTES,
                                                    CLOSE
                           ̲DOWN ̲CMD)

           STANDBY ̲PU ? WDP ̲CONTROL (RESET, 3-PU ̲NO, NIL)
           (CC)

                        CASE  PU ̲NO  OF

                           1 ?  STANDBY ̲PU = PU2

                           2 ?  STANDBY ̲PU = PU1

                        END CASE

                        CONF ̲DISPLAY (SET ̲STATUS, STAND
                       ̲BY ̲PU,
                                                     
                             IN ̲SERVICE)

                        SEND ̲SSC ̲REPLY (Q ̲CONTENTS, CMI
                       ̲QEL, CC)

       END CASE

   END ̲ORDERED ̲CLOSE ̲DOWN ̲OP ̲CMD
















                Fig. 4.2.9.4.3.5-12



   PROCEDURE

   SET ̲TRACE ̲MASK ̲OP ̲CMD (TRACE ̲INFO : TRACE ̲INF)

   VAR CC : INTEGER

   BEGIN


       CC = EXEC ̲OK

       TRACE ̲INFO. PROCESS ̲NO EQ RESET ̲ALL ̲PRIORITIES
       ̲NO ?

                                               RESET ̲LOG
                           ̲PRIORITIES

       SET ̲LOG ̲PRIORITY (TRACE ̲INFO)(CC)

       CC EQ ILLEGAL ̲PROCESS ̲NO?
               CC = ILLEGAL ̲PROCESS ̲NO ̲X

       SEND ̲SSC ̲REPLY (Q ̲CONTENTS, CMI ̲QEL, CC)


   END

























                Fig. 4.2.9.4.3.5-13