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

⟦05c053df0⟧ Wang Wps File

    Length: 66021 (0x101e5)
    Types: Wang Wps File
    Notes: CPS/SDS/029               
    Names: »1710A «

Derivation

└─⟦481a79d23⟧ Bits:30006083 8" Wang WCS floppy, CR 0129A
    └─ ⟦this⟧ »1710A « 

WangText



2                                                     2…06…2…07…1…09…1…0a…1…0f…1 0…08…0…0a…0…00…0…05…/…09…/…0d…/…01…/ /…86…1
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      …02…
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      …02…
                                                                      
                                                                      
                                                                      …02…
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      

…02…CPS/SDS/029

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








4.1.1.5  O̲f̲f̲l̲i̲n̲e̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲

         The offline functions are covered in section 4.1.1.6.1.1



4.1.1.6  W̲D̲P̲ ̲F̲W̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲

         The WDP FW functions are depicted on figure 4.1.1.6-1.
















































               Fig. 4.1.1.6-1…01…WDP Functions


4.1.1.6.1    W̲D̲P̲ ̲I̲n̲p̲u̲t̲ ̲f̲r̲o̲m̲ ̲P̲U̲s̲  (refer to figure 4.1.1.6.1-1)



4.1.1.6.1.1  O̲f̲f̲l̲i̲n̲e̲ ̲C̲o̲m̲m̲u̲n̲i̲c̲a̲t̲i̲o̲n̲

         The WDP receives output produced during operation of
         OLP and SSP software.  The output is directed to the
         WDP-VDU and a hard copy is generated at the WDP-ROP.
         Offline communication uses the transparent WDP protocol
         (refer IOC).



4.1.1.6.1.2  K̲e̲e̲p̲ ̲A̲l̲i̲v̲e̲ ̲M̲e̲s̲s̲a̲g̲e̲s̲

         The WDP receives keep-alive messages from both PUs.

         The non-arrival of a keep-alive message makes the WDP
         disable the PU and either execute an emergency switchover
         or a SB PU close-down.



4.1.1.6.1.3  C̲o̲n̲f̲i̲g̲u̲r̲a̲t̲i̲o̲n̲ ̲D̲i̲s̲p̲l̲a̲y̲ ̲U̲p̲d̲a̲t̲e̲

         COPSY updates a VDU split, which displays the overall
         system status.
















































             Fig. 4.1.1.6.1-1…01…PU In Functions


4.1.1.6.1.4  W̲D̲P̲ ̲V̲D̲U̲ ̲F̲o̲r̲m̲a̲t̲ ̲O̲u̲t̲p̲u̲t̲

         During execution of operator commands to the online
         PUs, the PU displays formats on the WDP-VDU.

         In addition to the configuration display split, two
         splits are assigned to operator command execution:

         -   one for command input
         -   one for handling of formats



4.1.1.6.1.5  W̲D̲P̲ ̲R̲O̲P̲ ̲R̲e̲p̲o̲r̲t̲s̲

         The following print-out is foreseen:

         -   error reports
         -   logs of operator commands
         -   detailed system configuration

         Error reports are time stamped and serial numbered.

         The last error report number is displayed at the configuration
         display.



4.1.1.6.1.6  C̲O̲P̲S̲Y̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲C̲o̲m̲m̲a̲n̲d̲s̲

         COPSY can request the WDP to:

         -   execute direct CCB control
         -   perform a switchover

         Refer to section 4.1.4 for a detailed I/F description.



4.1.1.6.2    I̲n̲p̲u̲t̲ ̲f̲r̲o̲m̲ ̲t̲h̲e̲ ̲W̲D̲P̲-̲V̲D̲U̲

         Refer figure 4.1.1.6.2-1.

         The WDP-VDU directs operator commands to the WDP itself
         or to either of the PUs (active or offline).



         The direct WDP commands are used to:

         -   enable system start-up.
         -   perform emergency close-down/switchover during
             CAMPS operation.
         -   define which PU to communicate with and whether
             offline communication is to be used.
















































            Fig. 4.1.1.6.2-1…01…VDU in Functions


4.1.1.6.3    C̲o̲n̲f̲i̲g̲u̲r̲a̲t̲i̲o̲n̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲B̲u̲s̲ ̲I̲n̲p̲u̲t̲

         A CCB driver (standard software) periodically scans
         crates.

         Exceptions are given to CAMPS application FW.  The
         application determines a TYPE:

         1-  error in active PU, active part of CU, active TDX-BUS
         2-  error in active PU peripheral
         3-  error in standby Pu
         4-  error in NON ̲ACTIVE TDX ̲BUS
         5-  manual intervention, which does not interfere with
             the CAMPS operation.

         Type 1 makes the WDP force an emergency switchover:

         -   the AC PU is disabled
         -   the SB PU is commanded to go active

         Types 2, 3, 4, 5 make the WDP send a report to the
         AC PU of one of the following types:

         -   SB PU down
         -   BSM-X down
         -   NON ̲TDX ̲DOWN
         -   Manual intervention
         -   SB CU down



4.1.1.6.4    S̲t̲a̲n̲d̲a̲r̲d̲ ̲F̲i̲r̲m̲w̲a̲r̲e̲

         The watchdog standard firmware consists of the watchdog
         kernel and start up firmware.

         The Kernel contains:

         -   a VDU driver

         -   an LP driver

         -   two PU drivers, which can execute in protocol mode
             (on line PU communication) or in transparent protocol
             mode (offline communication)

         -   a CCB driver, which periodically scans the configuration
             control bus


         The watchdog employs two start up modes:

         -   initialization
         -   recovery/restart

         The recovery/restart mode is entered, if the watchdog
         has been removed and later is reinstalled.  Recovery/restart
         is executed without affecting the ongoing CAMPS operation.



4.1.1.7  C̲o̲m̲m̲o̲n̲ ̲S̲S̲C̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲

         The function responsibilities defined in section 2.2.2
         can in most cases be allocated to a specific software
         structure.  However, own error handling and validity
         checks are common functions for any SSC Software structure.

         The functions are defined above in figure 4.1.1.7-1.

















































                     Fig. 4.1.1.7-1 


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

         The SSC PU functions are allocated onto 3 processes:

         -   COPSY

          ̲   OLD (online diagnostics)

         -   CMI (command interpreter)

         as defined in figures 4.1.2-1, 4.1.2-2 and 4.1.2-3
         respectively.

         Figure 4.1.2-2 in addition defines an allocation of
         COPSY functions onto coroutines and an initialization
         program.

         Figure 4.1.2-4 defines the allocation of WDP functions
         onto 4 processes.

         Finally, figure 4.1.2-5 defines SSC subpackages based
         on the above

         -   processes
         -   coroutines
         -   initialization program














































                   Figure 4.1.2-1 (1/8)
                   Figure 4.1.2-1 (2/8)
                   Figure 4.1.2-1 (3/8)
                 (4/8, 5/8, 6/8,7/8, 8/8)



         Figure 4.1.2-1 (4/8 - 5/8)
         Figure 4.1.2-1 (6/8 - 8/8)
         Figure 4.1.2-2
         Figure 4.1.2-3
         Figure 4.1.2-4
         Figure 4.1.2-5


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

         The section is divided into 5 subsections:

         -   COPSY data flow and control logic
         -   CMI data flow and control logic
         -   OLD data flow and control logic
         -   WDP data flow and control logic



4.1.3.1  C̲O̲P̲S̲Y̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲s̲ ̲D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲

         The COPSY coroutines data flow and control logic are
         illustrated in figure 4.1.3.1-3 overleaf.

         The following subsections handle:

         -   the SEH coroutine
         -   the CMD coroutine
         -   the M&C coroutines
         -   the CFH coroutine and INIT-COPSY
















































       COPSY Coroutines Data Flow and Control Logic
                    Figure 4.1.3.1-1  


4.1.3.1.1    C̲M̲D̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲

         The CMD coroutine services:

         -   SYSE (system synchronization element), which contains
             MMON security commands

         -   SYQ (system queue), which contains:

                 - operator commands

                 - TEP commands from the supervisor
                   and from release subprocesses.

         -   DEVICE ̲SE, which contains HW device reports from
             TMS and FMS devices and subdevices.

         The MMON security commands are sent to TEMCO, which
         sends a reply to an appropriate subprocess upon command
         execution.

         The operator commands are sent to CFH which sends a
         reply to CMI upon command execution.

         TEP release security interrogation requests are sent
         to TEMCO, which sends a reply.

         The supervisor command CAMPS ̲GO is sent to CFH which
         sends a reply.

         Remaining supervisor commands are sent to either TEMCO,
         DEMCO or CEMCO which sends a reply.

         TMS system key, lock key and paper out/in events reports
         related to LTUX lines or LTU lines are sent to TEMCO,
         DEMCO or CEMCO. All WDP device reports are sent to
         WAMCO.

         Remaining TMS reports and all FMS reports are sent
         to CFH.

         The CMD associates SYSE, SYQ and DEVICE ̲SE to an operation
         semaphore CMD ̲OS. CFH starts and closes CMD operation
         via this semaphore.


4.1.3.1.2    S̲E̲H̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲

         The SEH coroutine services:

         -   CESE (central error synchronization element), which
             contains DAMOS reports not relatable to a process
             or device.

             The CAMPS System receives a IO ̲BUS power failure
             report.

         -   PSE (parent synchronization element), which contains
             COPSY child retire and clean-up reports.

             The retire may be due to child:

             -   memory parity error
             -   security violation detected by DAMOS/CSF/TMP.
             -   own retire due to call of ANALYZE ̲ERROR
             -   retire due to call of SEND ̲GARBLE

         -   GAQ (Garble Queue) which contains garble reports
             from childprocesses.

         The SEH coroutines associated the CESE, PSE and GAQ
         to an operation semaphore SEH ̲OS. To this SEH ̲OS CFH
         sends start ̲up and close ̲down commands.

         Also the COPSY internal SEND ̲GARBLE procedure sends
         garble reports to this operation semaphore.

         The handling of SEH reports are executed entirely in
         SEH (i.e. it has no coroutine interfaces).

         The SEH updates a process table (refer section 4.1.4)
         which registers the COPSY child processes status.

         Garble reports are saved on a garble spool area on
         disk and error reports are printed at the WDP-ROP.



4.1.3.1.3    T̲E̲M̲C̲O̲,̲ ̲D̲E̲M̲C̲O̲,̲ ̲C̲E̲M̲C̲O̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲s̲ ̲D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲
             ̲L̲o̲g̲i̲c̲ ̲

         The following subjects are handled:

         -   Design



         -   Input commands

         -   Processing

         -   Subprocess communication



4.1.3.1.3.1 D̲e̲s̲i̲g̲n̲

         One coroutine handles one line to:

         -   a VDU or

         -   a SAD or

         -   an EXC

         The internal SSC representation of the line is a terminal,
         device or channel profile, while the external representation
         is one TEP or THP subprocess and its associated queues.

         One coroutine communicates to one subprocess.



4.1.3.1.3.2 I̲n̲p̲u̲t̲ ̲C̲o̲m̲m̲a̲n̲d̲s̲

         The line monitoring and control coroutines receives
         commands via an operation semaphore.

         The commands are of the following types:

         -   supervisor commands,
         -   events related to the line, i.e. security key,
             lock key and paper events,
         -   CFH commands
         -   MMON and TEP security commands (only applicable
             for VDUs)



4.1.3.1.3.3 P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲

         The following general control actions are executed:

         -   profile table updates
         -   subprocess and queue profile settings


         -   for VDUs: direct VDU communication in system line
         -   creation of TMS line connections and transfer of
             the connections to a subprocess via a TMS offer/accept
             mechanism.
         -   setting of TMS line connection security profile
         -   control of a subprocess by sending operational
             commands to its input queue. A reply is awaited
             in a reply queue.
         -   sending of reply for supervisor, MMON and TEP commands.
         -   sending of reply for some CFH commands to the CFH
             ̲S single counter semaphore.
         -   generation of logs, statistics and reports



4.1.3.1.3.4 S̲u̲b̲p̲r̲o̲c̲e̲s̲s̲ ̲C̲o̲m̲m̲u̲n̲i̲c̲a̲t̲i̲o̲n̲

         The following types of commands are sent to all line
         subprocesses:

         -   line logical connected/unblocked or disconnected/blocked,
         -   subprocess to be closed.

         For VDU lines the following auxiliary commands are
         sent:

         -   user signed off,
         -   restart mode (supervisor only)

         For SAD lines the following auxiliary commands are
         sent:

         -   resume-print.

         Commands are sent to a separate subprocess input queue,
         while replies are received in a reply queue per VDU,SAD
         or EXC type.

         A separate subqueue per subprocess is assigned for
         reception of replies.

         TEMCO,DEMCO and CEMCO waits time limited upon a subprocess
         reply.





4.1.3.1.4    W̲A̲M̲C̲O̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲s̲ ̲D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲.̲

         The WAMCO coroutines services:

         -   WDP ̲MON ̲OS (operation semaphore) which contains
             monitoring reports send from the watchdog. The
             reports are directed to CFH ̲OS for interpretation.

         -   WAMCO ̲OS (operation semaphore) which contains report
             of changes in the WDP, WDP ̲VDU and WDP ̲ROP condition.

         -   PRC ̲Q, TIM ̲SUBQ. This subqueue receives timeouts
             once a second from the Timer Monitor

             The receiption of a Timeout results in a "keep
             alive" message to be sent to the WDP on the WDP
             ̲CON.

         -   PRC ̲Q, CMI ̲RQ. This subqueue is used for reception
             of the answer to a command send to the CMI ̲Q.

         The following controls are executed:

         -   Create the TMS lines and transfer the connections
             to the CMI,

         -   sending keep alive messages to the WDP,

         -   start the CMI via its input queue.



4.1.3.1.5    T̲h̲e̲ ̲C̲o̲n̲f̲i̲g̲u̲r̲a̲t̲i̲o̲n̲ ̲H̲a̲n̲d̲l̲e̲r̲ ̲(̲C̲F̲H̲)̲ ̲D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲
             ̲L̲o̲g̲i̲c̲.

         The configuration handler includes:

         -   an initialization procedure COPSY-INIT
         -   the CFH coroutine
         -   a count reply coroutine


4.1.3.1.5.1 C̲O̲P̲S̲Y̲-̲I̲N̲I̲T̲

         COPSY-INIT is started by the …02…ROOT process in the Kernel.
         COPSY-INIT initializes all COPSY coroutines and start-up
         CFH.



4.1.3.1.5.2 C̲F̲H̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲

         The main task for the CFH is to:

         -   execute the start-up operator command

         -   execute a hardware error fix-up

         -   execute operator commands including start-up, close-down
             and peripheral reconfiguration commands.

         based upon commands in its input operation semaphore
         CFH-OS.

         The CFH loads and initializes child processes based
         on load files and configuration files on disk.

         The start-up/close-down of processes is divided into
         two categories:

         -   non-line processes are started asynchronously by
             DAMOS.

         -   non-line processes are closed via separate request
             queues and a single reply queue (a separate subqueue
             exists per process).

         -   line processes are started/closed by starting/closing
             an appropriate TEMCO, DEMCO, CEMCO or WAMCO coroutine.
             For some start-up and close-down commands the controlling
             coroutine sends a reply to CFH-S (single coroutine
             semaphore) when having executed a command.

         Reconfigurations due to execution of operator commands
         or the occurrence of errors includes:

         -   updating the PORT tables,
         -   creation of TMS connections to LTUX/LTUs,


         -   updating the WDP-VDU system configuration
         -   issuing of WDP-ROP error reports
         -   sending of commands directly to the WDP
         -   starting/stopping subprocesses via TEMCO,DEMCO,CEMCO.

         The CFH sends replies to the CMI, when having executed
         an operator command.

         The CFH sends a reply to the TEP, when having executed
         the CAMPS ̲GO command.

         CFH sends start-up/close-down commands all COPSY coroutines
         indicating when processing is to be started/closed



4.1.3.1.5.3 C̲o̲u̲n̲t̲ ̲R̲e̲p̲l̲y̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲(̲C̲O̲U̲N̲T̲)̲

         The COUNT coroutine contains 

         -   an input counter semaphore CFH ̲S

         -   a variable NO ̲OF ̲OUTSTANDING ̲ANSWERS

         The NO ̲OF ̲OUTSTANDING ̲ANSWERS is set by CFH and decremented
         by COUNT each time it receives a signal in CFH ̲S. When
         NO ̲OF ̲OUTSTANDING ̲ANSWERS becomes zero, 
         CFH ̲OS is signalled via an operation semaphore.

         COUNT is used in two situations:

         -   during start-up/close-down CFH sends a command
             to all TEMCO, DEMCO and CEMCO coroutine. They replies
             in CFH ̲S.

         -   during close-down of SEH and CMD.
             CFH sets NO ̲OF ̲OUTSTANDING ̲ANSWERS to +2 and SEH,CMD
             signals to CFH ̲S.



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

         Figure 4.1.3.2-1 overleaf defines the environment for
         the CMI process. The CMI process receives operational
         commands (e.g. start-up) from COPSY in its input queue
         CMIQ and sends replies to the CMIRQ at COPSY.



         The CMI receives operator commands via the WDP-VDU
         command split (refer section 4.1.4.2.3) and operator
         command formats via the format split. CMI validates
         operator commands against the Port tables Having validated
         a command COPSY is requested via the SYQ to execute
         the command. COPSY sends a command execution reply
         to the CMIQ, whereupon CMI logs the command on the
         WDP ROP.


         Figure 4.1.3.2-1


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

         Figure 4.1.3.3-1 overleaf defines online diagnostics
         data flow and control logic. OLD receives CLOSE ̲DOWN
         command from COPSY in the OLDQ. Also, supervisor and
         periodic request to sum check the programpart of the
         kernel are entered in the OLDQ.

         OLD replies to COPSY and supervisor requests.


         Figure 4.1.3.3-1


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

         Figure 4.1.3.4-1 overleaf illustrates the WDP data
         flow and control logic.

         The WDP standard FW drivers are shown outside the box,
         whereas the four application software processes are
         shown within the box.

         The following sections handle input to the WDP from:

         -   a PU
         -   a VDU
         -   the CCB scanning driver



         Figure 4.1.3.4-1



4.1.3.4.1    I̲n̲p̲u̲t̲ ̲t̲o̲ ̲t̲h̲e̲ ̲W̲D̲P̲ ̲f̲r̲o̲m̲ ̲a̲ ̲P̲U̲

         The PU-IN driver recognizes three types of PU input:

         -   VDU data
         -   LP data
         -   WDP data

         and sends the data to three associated queues:

         -   VDU queue
         -   LP queue
         -   PU queue

         VDU data are analyzed in the VDU-HANDLER and LP-HANDLER
         process respectively and printed by the corresponding
         VDU and LP drivers. The LP-HANDLER synchronizes LP
         output.

         The WDP data in the PUQ contain keep alive messages
         and direct WDP commands. The keep alive messages are
         handled in the PU-HANDLER, whereas WDP commands are
         executed in the SYS M&C process. The non-arrival of
         a keep alive message is signalled to the SYS M&C process
         by the PU-HANDLER.



4.1.3.4.2    I̲n̲p̲u̲t̲ ̲t̲o̲ ̲t̲h̲e̲ ̲W̲D̲P̲ ̲f̲r̲o̲m̲ ̲a̲ ̲V̲D̲U̲

         VDU input is directed to the VDU queue at the VDU-HANDLER
         by a VDU-IN driver. Three types of VDU input are handled:

         -   offline PU commands
         -   direct WDP commands
         -   online PU commands.

         The VDU-HANDLER sends online and offline PU data to
         a PU-OUT driver. Direct WDP commands are executed in
         the SYS M&C process. Offline commands are copied at
         the WDP-ROP.




4.1.3.4.3    C̲C̲B̲ ̲S̲c̲a̲n̲n̲i̲n̲g̲

         The CCB driver periodically scans the CAMPS crates.
         Exceptions are reported to the SYS M&C process, which
         determines further actions, e.g. an active PU error
         is handled by disabling the AC PU and by commanding
         the SB PU to become active.

         Peripheral device exceptions are reported to the active
         PU.



4.1.3.4.4    B̲u̲f̲f̲e̲r̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲

         The application processes communicate via queue semaphores
         containing buffers. Buffers for input from a PU are
         supplied by a PU-IN driver and are released by a consumer
         (e.g. the LP-OUT handler). A release of a buffer implies
         that the corresponding PU operation is terminated.

         Buffers for input from a VDU are supplied by a VDU-IN
         driver. For VDU input to a PU the buffer is released
         upon receipt of an acknowledgement from the PU. For
         VDU input to the WDP the buffer is released by the
         VDU-HANDLER.

         A buffer contains a control block describing its status
         (e.g. released due to paper cut).



4.1.4    C̲o̲m̲m̲o̲n̲ ̲D̲a̲t̲a̲

         This section describes data which are used by more
         than one subpackage in the SSC package.



4.1.4.1  P̲r̲o̲c̲e̲s̲s̲ ̲a̲n̲d̲ ̲S̲u̲b̲p̲r̲o̲c̲e̲s̲s̲ ̲T̲a̲b̲l̲e̲s̲

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

             VAR PROCESS ̲TABLE=

                 ARRAY (COPSY ̲P ̲NO.. NO ̲OF ̲PROCESSES) OF
                 PROCESS ̲DESCRIPTION

             The table fields:

             -   process ̲no
             -   object
             -   type-of-process
             -   subp-type
             are initialized during start-up by CFH. During
             online operation it is updated by EHD.

             The table registers the overall COPSY and child
             process status.

             TYPE PROCESS ̲DESCRIPTION =

                 RECORD
                     PROCESS ̲NO     :   PROCESS ̲INDEX
                     OBJECT         :   OBJECT ̲INDEX
                     TYPE ̲OF ̲PROCESS:   ERROR ̲PROCESS ̲TYPE
                     SUB ̲TYPE       :   SUBPROCESS ̲TYPE
                     STATUS         :   PROCESS ̲STATUS
                     ERROR ̲COUNT    :   INTEGER
                     MAX ̲COUNT      :   INTEGER
                 END


             TYPE
             ERROR ̲PROCESS ̲TYPE = (VITAL,DUMMY,RETIRABLE)

             TYPE
             PROCESS ̲STATUS = (NIL,CREATED,CREATED ̲FMS ̲ON,
             RESUMED,ERROR,CLEANED)

             CHILD ̲PROCESS ̲TYPE = TMP ̲S .. TRC ̲PTOP ̲S

             NON ̲LINE ̲CHILD ̲PROCESSES = TMP ̲S .. AAS ̲S

             Note: MSO ̲S and MDCO ̲S subprocesses does not correspond
             to any specific process. The MSO ̲S and MDCO ̲S subprocesses
             are contained in a user-s    process.


         b)  S̲u̲b̲p̲r̲o̲c̲e̲s̲s̲ ̲T̲a̲b̲l̲e̲s̲

             VAR

                 SUBP ̲PROCESS ̲TABLE    =ARRAY(l..NO ̲OF ̲SUBPROCESSES)OF
                                       PROC ̲NO

                 The table describes the relation between subprocess
                 numbers and process numbers.
                 Note: In CAMPS the user group for a process
                 is identical to the CAMPS process number.

                 The table is set during creation of processes
                 by CFH. It is accessed by TEMCO/DEMCO/CEMCO
                 to PROTECT TMS "terminals"

             VAR
                 SUBP ̲TABLE            =ARRAY(SUBPROCESS ̲TYPES)OF
                                        SUBP ̲OP ̲REC

                  mso-s and mdco-s entries does not contain
                 accessrights

             TYPE SUBP ̲OP ̲REC          =
                 RECORD
                     FIRST ̲SUBP ̲NO     =INTEGER
                     NO ̲OF ̲SUBP ̲PR ̲SUBP ̲TYPE:INTEGER
                     NO ̲OF ̲SUBP ̲IN ̲PROCESS:INTEGER
                     CHILD ̲TMS ̲ACCESS ̲RIGHTS: ACCESS ̲TYPES
                 END

             The table contains one entry per subprocesstype.
             First-subp-no, no-of-subp-pr-subtype and no-of-subp-in-process
             are set by the INIT directive. The initialization
             value are defined overleaf.
             First-subp-no refers to the lowest subprocess number
             within the subprocess type in question. No-of-subp-pr-subp-type
             refers to the maximum-number subprocess of the
             type in question.
             No-of-subp-in-process refers to the maximum number
             of subprocess of the type in question within a
             single process.
             The access rights are set during creation of processes.
             CHILD access rights are used in the DAMOS.TMS OFFER
             command by TEMCO/DEMCO/CEMCO.


   SUBPROCESS   FIRST ̲SUBP ̲NO    NO ̲OF ̲SUBP       NO ̲OF ̲SUBP
 ̲
                              PR ̲SUBP ̲TYPE     IN ̲PROCESS

   COPSY       COPSY ̲NO           1                1
   TMP         TMP ̲NO             l                l
   CMI         CMI ̲NO             1                1
   CSF         CSF ̲NO             1                1
   OLD         OLD ̲NO             1                1
   LOG         LOG ̲NO             1                1
   STP         STP ̲NO             1                1
   SAR         SAR ̲NO             1                1
   MDP         MDP ̲NO             1                1
   UMAM        UMAM ̲NO            1                1
   SPIP        SPIP ̲NO            1                1
   ACS         ACS ̲NO             1                1
   AAS         AAS ̲NO             1                1
   SUPV        SUPV ̲NO            1                1
   USER        FIRST ̲VDU ̲NO    NO ̲OF ̲VDUS          1
   MSO         FIRST ̲MSO ̲NO    NO ̲OF ̲MSOS          1
   MDCO        FIRST ̲MDCO ̲NO   NO ̲OF ̲MDCOS         1
   ROP         FIRST ̲ROP ̲NO    NO ̲OF ̲MTP ̲ROPS+  MAX ̲ROP
                                                ̲PR ̲
                               NO ̲OF ̲LTPS       PROCESS
   OCR         FIRST ̲OCR ̲NO       1                1
   PTR         FIRST ̲PTR ̲NO    NO ̲OF ̲DEDICATED  MAX ̲PTR
                                                ̲PR ̲
                               NO ̲OF ̲LTPS       PROCESS
   PTP         PTP ̲NO             1                1
   NICS ̲TARE   FIRST ̲NICS ̲TA-  NO ̲OF ̲NICS ̲TA-   MAX ̲NICS
                                                ̲TARE ̲
               RE ̲NO           RE ̲EXCS          PR ̲PROCESS
   SCARS ̲CCIS  FIRST ̲SCARS ̲    NO ̲OF ̲SCARS ̲     MAX ̲SCARS
                                                ̲CCIS ̲
               CCIS ̲NO         CCIS ̲EXCS        PR ̲PROCESS
   TRC ̲PTOP    FIRST ̲TRC ̲      NO ̲OF ̲TRC ̲       MAX ̲TRC
                                                ̲PTOP ̲
               PTOP ̲NO         PTOP ̲EXCS        PR ̲PROCESS


                     SUBP ̲TABLE


             VAR
                 SUBPROCESS ̲TABLE =

                 ARRAY(SUPV ̲NO..OCR ̲NO - 1) OF
                     LOGICAL ̲TERMINAL ̲NO ̲TYPE

                 The table is used by CMD to determine a logical
                 terminal number given a subprocess number.
                 This takes place when receiving a MMON security
                 command.

                 The table is updated by TEMCO.



             VAR
                 MMON ̲RSE ̲TABLE =

                 ARRAY (l..NO ̲OF ̲SUBPROCESSES) of OBJ ̲INDEX

                 Contains subprocess to MMON reply synchronization
                 element relation. It is updated by CFH during
                 initialization and is online used by TEMCO
                 to answer MMON:

                 -   security interrogation
                 -   security warning

                 requests



             VAR LOG ̲D ̲TO ̲LOCAL=ARRAY(1..MAX ̲SADS)OF BYTE

             Contains a logical to local device number relation.
             It is initialized by CFH and used 
             by DEMCO


             VAR LOG ̲C ̲TO ̲LOCAL = ARRAY (1..Max ̲EXCS) OF BYTE

             Contains a logical to local channel number relation.

             It is initialized by CFH and accessed by CEMCO.




4.1.4.2  P̲e̲r̲i̲p̲h̲e̲r̲a̲l̲ ̲D̲e̲v̲i̲c̲e̲ ̲P̲a̲r̲a̲m̲e̲t̲e̲r̲



4.1.4.2.1    T̲M̲S̲ ̲D̲a̲t̲a̲

         a)  T̲M̲S̲ ̲D̲E̲V̲I̲C̲E̲ ̲a̲n̲d̲ ̲S̲U̲B̲D̲E̲V̲I̲C̲E̲ ̲C̲O̲N̲N̲E̲C̲T̲I̲O̲N̲S̲

             VAR

                 LTUX ̲CON=ARRAY(1..MAX ̲LTUXS) OF FDCB ̲INDEX

                 LTU ̲CON =ARRAY(1..MAX ̲LTUS) OF FDCB ̲INDEX

                 The tables contain a FDCB ̲INDEX received when
                 creating a LTUX/LTU subdevice.

                 The table is updated by CFH and read by TEMCO/DEMCO/CEMCO
                 during creation of TMS "terminals"

             VAR MAP ̲CON:FDCB ̲INDEX

             VAR PHYS ̲WDP ̲CON:FDCB ̲INDEX

             VAR WDP ̲CON:FDCB ̲INDEX

             VAR WDP ̲ROP ̲CON : FDCB ̲INDEX

             The connections are created by the CFH and maintained
             by the WAMCO during online configuration

             VAR CONFIG ̲SPLIT,

                COMMAND ̲SPLIT,

                FORMAT ̲SPLIT : IFCB ̲INDEX

             The IFCB is to be used as a connection to the WDP-VDU
             splits via the FORMAT ̲HANDLER.

             The IFCBs are received when WAMCO defines the WDP
             ̲VDU to the FORMAT ̲HANDLER.


             VAR  WDP ̲STATUS ̲REC: WDP ̲STATUS ̲TYPES

             Contains the status of WDP devices. It is updated
             by WAMCO (and CFH during initialization) on line
             and is used by CFH and EHD.


             TYPE WDP ̲STATUS ̲TYPES =

                  RECORD
                     WDP ̲STATUS,
                     WDP ̲VDU ̲STATUS,
                     WDP ̲ROP ̲STATUS :  BOOLEAN
                  END
         
         b)  T̲M̲S̲ ̲D̲e̲v̲i̲c̲e̲ ̲a̲n̲d̲ ̲S̲u̲b̲d̲e̲v̲i̲c̲e̲ ̲P̲a̲r̲a̲m̲e̲t̲e̲r̲s̲
         
             VAR  VDU ̲LTUX ̲PARAMS ̲D:        VDU ̲LTUX ̲PARAMS
                  OCR ̲LTUX ̲PARAMS ̲D:        OCR ̲LTUX ̲PARAMS
                  OTH ̲LTUX ̲PARAMS ̲D:        OTH ̲LTUX ̲PARAMS
                  VDU ̲SUBDEVICE ̲PARAMS ̲D:   VDU ̲SUBDEVICE ̲PARAMS
                  NICS ̲TARE ̲LTU ̲PARAMS ̲D:   NICS ̲TARE ̲LTU ̲PARAMS
                  CCIS ̲SCARS ̲LTU ̲PARAMS ̲D:  CCIS ̲SCARS ̲LTU ̲PARAMS
                  LTUX ̲PARAMS ̲D:            LTUX ̲PARAMS
                  TIA ̲PARAMS ̲D:             TIA ̲PARAMS

             Contains the parameter in the "new ̲tms ̲device"
             and in the "new ̲tms ̲subdevice" records to be used
             
             during assign/create ̲subdevice



             TYPE PROFILE ̲TYPE =   (TERMINAL ̲P, DEVICE ̲P,
                                   CHANNEL ̲P, STI ̲P, TIA ̲P,
                                   LTUX ̲P, LTU ̲P, MAP ̲P, 
                                   PHYS ̲WDP ̲P, WDP ̲P, WDP ̲VDU
                                   ̲P,
                                   WDP ̲ROP ̲P)



             TYPE U ̲SDID

                  1̲5̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲8̲ ̲ ̲7̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲0̲

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

                  PROFILE ̲      LOGICAL ̲NO or
                  TYPE          PORT ̲NO

             U ̲SDID is set during creation of a device. It is
             used to identify a device given an asynchronous
             report.



4.1.4.2.2    F̲M̲S̲ ̲D̲a̲t̲a̲

         CONST    GARBLE =         ADDRESS ('GARBLE')

         File name for the garble file.



4.1.4.3  S̲S̲C̲ ̲F̲i̲l̲e̲s̲ ̲a̲n̲d̲ ̲D̲i̲r̲e̲c̲t̲o̲r̲i̲e̲s̲

         SSC uses files on the moving head volumes

         -   MIR ̲MOVING (on the mirrored disks)
         -   SYS ̲GEN (start ̲up volume on the offline disk)
         -   OTHER (a volume on the floppy disk)

         From an SSC point of view the file/directory structure
         is identical for any volume.

         SSC recognizes 4 directories, which are placed in the
         root directory.

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

         Refer to figure 4.1.4.3-1 overleaf.







                     Figure 4.1.4.3-1


         a)  S̲S̲C̲ ̲D̲I̲R̲

             SSC ̲DIR contains the patchfiles:

             -   PATCH ̲0
                 .
                 .
                 .
             -   PATCH ̲9

             and the garble data spool area:

             -   GARBLE

         b)  F̲O̲R̲M̲A̲T̲S̲

             FORMATS contains various collections of formats:

             -   SSC ̲FORMATS
             -   SVUP ̲FORMATS
             -   PFF ̲FORMATS
             -   VDU ̲FORMATS

         c)  S̲S̲C̲ ̲D̲I̲R̲ ̲I̲N̲I̲T̲I̲A̲L̲

             SSC ̲DIR ̲INITIAL contains the initial version of:

             -   the CAMPS on-line bootfile:

                 BOOT ̲CAMPS

             -   the LTU firmware:

                 LTUFW ̲NT ̲LOCAL
                 LTUFW ̲NT ̲REMOTE
                 LTUFW ̲SCARS ̲CCIS

             -   a protected data PPS file per COPSY childprocess
                 type:

                 PPS ̲CMI..PPS ̲TRC ̲PTOP

             -   The shared TMP, CSF, data

                 TMP ̲SHARED
                 CSF ̲SHARED



             -   a program segment per COPSY childprocess type:

                 PS ̲CMI..PS ̲OCR
                 PS ̲THP

             -   a data segment per COPSY childsubprocess type:

                 DS ̲CMI..DS ̲OCR
                 DS ̲THP

             -   parameters to be used during process, disk
                 queue, and line creation:

                 CONFIG

         d)  S̲S̲C̲ ̲D̲I̲R̲ ̲M̲O̲D̲I̲F̲I̲E̲D̲

             The SSC ̲DIR ̲MODIFIED contains a modified version
             of the files described in SSC ̲DIR ̲INITIAL.



4.1.4.4  C̲O̲P̲S̲Y̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲s̲ ̲P̲a̲r̲a̲m̲e̲t̲e̲r̲s̲

         The parameters contained are:

         -   COPSY semaphores
         -   COPSY operations
         -   Priority of Coroutine and Operations
         -   COPSY Synchronization Elements

         a)  C̲O̲P̲S̲Y̲ ̲S̲e̲m̲a̲p̲h̲o̲r̲e̲s̲

             VAR   VDU ̲OS :         ARRAY (1..NO ̲OF ̲VDUS) OF
                                    COROUTINE ̲SEMAPHORE
                   SAD ̲OS :         ARRAY (1..NO ̲OF ̲SADS) OF
                                    COROUTINE ̲SEMAPHORE
                   EXC ̲OS :         ARRAY (1..NO ̲OF ̲EXCS) OF
                                    COROUTINE ̲SEMAPHORE
                   CFH ̲OS :         COROUTINE ̲SEMAPHORE
                   WAMCO ̲OS :       COROUTINE ̲SEMAPHORE
                   SHORT ̲OS :       COROUTINE ̲SEMAPHORE
                   LONG ̲OS :        COROUTINE ̲SEMAPHORE
                   WDP ̲MON ̲OS :     COROUTINE ̲SEMAPHORE
                   CMD ̲OS :         COROUTINE ̲SEMAPHORE
                   EHD ̲OS :         COROUTINE ̲SEMAPHORE
                   CFH ̲S:           COROUTINE ̲SEMAPHORE



                   ERROR ̲S:         COROUTINE ̲SEMAPHORE

                   REPORT ̲ERROR ̲OS: COROUTINE ̲SEMAPHORE
                   ERROR ̲REPORT ̲OS: COROUTINE ̲SEMAPHORE


         b)  C̲O̲P̲S̲Y̲ ̲O̲p̲e̲r̲a̲t̲i̲o̲n̲s̲

             VAR   LONG ̲OP =        ARRAY (1..NO ̲OF ̲LONG ̲OPERATIONS)
                                    OF LONG ̲OP ̲TYPE
             VAR   SHORT ̲OP =       ARRAY (1..NO ̲OF ̲SHORT ̲OPERATIONS)
                                    OF SHORT ̲OP ̲TYPE

             CONST NO ̲OF ̲SHORT ̲OPERATIONS =

                   NO ̲OF ̲LONG ̲OPERATIONS =

                   Defines the number of operations available
                   in COPSY for coroutine communication.

                   NO ̲OF ̲DEVICE ̲SE ̲REPORTS =

                   Defines the number of device reports, which
                   can be awaited simultaneously.

             TYPE  SHORT ̲OP ̲TYPE =

                      RECORD
                         HEADER:      COROUTINE ̲OPERATION
                         CMD ̲TYPE:    S ̲COMMAND ̲TYPE
                         CMD:         INTEGER
                         REFERENCE:   INTEGER
                         INFORMATION: INTEGER
                      END

             TYPE  LONG ̲OP ̲TYPE =

                      RECORD
                         HEADER:      COROUTINE ̲OPERAION
                         CMD ̲TYPE:    L ̲COMMAND ̲TYPE
                         CMD:         INTEGER
                         REP:         REPLY ̲TYPE
                         INF:         ARRAY (1..17) OF INTEGER
                      END




             TYPE  ERROR ̲REPORT ̲TYPE=

                      RECORD
                         HEADER:      COROUTINE ̲OPERATION
                         ROP ̲REPORT:  ROP ̲REPORT ̲TYPE
                         SIZE:        l..50
                         REPORT:      ARRAY(l..50)OF INTEGER
                      END

         c)  P̲r̲i̲o̲r̲i̲t̲y̲ ̲o̲f̲ ̲C̲O̲P̲S̲Y̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲s̲ ̲a̲n̲d̲ ̲O̲p̲e̲r̲a̲t̲i̲o̲n̲s̲

             CONST SHORT ̲PRIO =
                   LONG ̲PRIO =
             Defines the priority of coroutine operations
                   CMD ̲PRIO =
                   SEH ̲PRIO =
                   CFH ̲PRIO =
                   TEMCO ̲PRIO =
                   CEMCO ̲PRIO =
                   WDP ̲MONITOR ̲REPORTS ̲PRIO =
                   KEEP ̲ALIVE ̲PRIO=
                   RECEIVE ̲OPERATIONAL ̲COMMANDS ̲PRIO =
                   COUNT ̲PRIO=
             Defines the priority of the COPSY coroutines in
             the range PRIORITY ̲TYPE

         d)  C̲O̲P̲S̲Y̲ ̲S̲y̲n̲c̲h̲r̲o̲n̲i̲z̲a̲t̲i̲o̲n̲ ̲E̲l̲e̲m̲e̲n̲t̲s̲

             VAR   PSE,
                   DEVICE ̲SE          :OBJ ̲INDEX

         e)  T̲E̲M̲C̲O̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲D̲a̲t̲a̲

             VAR   TEMCO ̲DATA = 
                   ARRAY(l..NO ̲OF ̲VDUS)OF
                   TERMINAL ̲COROUTINE ̲DESCRIPTION

             TYPE  TERMINAL ̲COROUTINE ̲DESCRIPTION =

                   RECORD
                      COROUTINE  :    COROUTINE ̲DESCRIPTION
                      TNO        :    l..NO ̲OF ̲VDUS
                      .
                      .
                      Local TEMCO data
                      .
                      .
                   END



             For each TEMCO coroutine CFH updates during start-up:

             TEMCO ̲DATA().COROUTINE   Coroutine descriptor
             TEMCO ̲DATE().TNO         Local and logical terminal
                                      number

         f)  D̲E̲M̲C̲O̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲D̲a̲t̲a̲

             VAR   DEMCO ̲DATA =
                   ARRAY(l..NO ̲OF ̲SADS) OF
                   DEVICE ̲COROUTINE ̲DESCRIPTION

             TYPE  DEVICE ̲COROUTINE ̲DESCRIPTION =

                   RECORD
                      COROUTINE    :  COROUTINE ̲DESCRIPTION
                      DNO          :  l..MAX ̲SADS
                      LOCAL ̲DNO    :  l..NO ̲OF ̲SADS
                      .
                      .
                      Local DEMCO data
                   END

             For each DEMCO coroutine CFH updates during start-up:

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

         g)  C̲E̲M̲C̲O̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲D̲a̲t̲a̲

             VAR   COMCO ̲DATA =
                   ARRAY(l..NO ̲OF ̲EXCS) OF
                   CHANNEL ̲COROUTINE ̲DESCRIPTION

             TYPE  CHANNEL ̲COROUTINE ̲DESCRIPTION

                   RECORD
                      COROUTINE   :   COROUTINE ̲DESCRIPTION
                      CNO         :   l..MAX ̲EXCS
                      LOCAL ̲CNO...:   l..NO ̲OF ̲EXCS
                      CI ̲NO       :   l..MAX ̲CIRCUITS
                      .
                      .
                      Local CEMCO data
                      .
                      .
                   END



             For each CEMCO coroutine CFH updates during start-up:

             CEMCO ̲DATA().COROUTINE   Coroutine description
             CEMCO ̲DATA().LOCAL ̲CNO   Local channel no
             CEMCO ̲DATA().CNO         Logical channel no
             CEMCO ̲DATA().CI ̲NO       Logical circuit no

             VAR   CFH ̲COROUTINE,
                   SEH ̲COROUTINE,
                   CMD ̲COROUTINE,
                   WDP ̲MONITOR ̲REPORTS ̲COROUTINE,
                   KEEP ̲ALIVE ̲RUTINE,
                   RECEIVE ̲OPERATIONAL ̲COMMANDS ̲COROUTINE
                   COUNT ̲COROUTINE   : COROUTINE ̲DESCRIPTION,
                   contains a coroutine description per non-line
                   coroutine.



4.1.4.5  S̲S̲C̲ ̲I̲n̲t̲e̲r̲n̲a̲l̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲T̲y̲p̲e̲s̲



4.1.4.5.1    C̲F̲H̲ ̲C̲o̲m̲p̲l̲e̲t̲i̲o̲n̲ ̲C̲o̲d̲e̲s̲ ̲t̲o̲ ̲C̲M̲I̲

         TYPE      CFH ̲CC ̲TO ̲CMI =

         (EXEC ̲OK,
          LINE ̲CONNECTED ̲IN ̲PROFILE,
          NOT ̲OPERATOR ̲ONLY ̲MODE,
          NOT ̲ALLOWED ̲IN ̲OPERATOR ̲ONLY ̲MODE,
          RUNNING ̲IN ̲SUPV ̲ONLY ̲MODE,
          HW ̲ERROR,
          WDP ̲CCB ̲FAILED,
          LTU ̲LOAD ̲ERROR,
          STATUS ̲CHANGE ̲ILLEGAL,
          NO ̲OPERATION,
          LAST ̲MORRORED ̲DISK,
          WRONG ̲VOLUME ̲NAME ̲X,
          VOLUME ̲NAME ̲IS ̲USED ̲X,
          NON ̲EXISTING ̲VOLUME ̲X,
          VOLUME ̲MOUNTED ̲X,
          NO ̲CIF ̲FOUND,
          ILLEGAL ̲PROCESS ̲NO,
          NON ̲EXISTING ̲FROM ̲VOLUME,
          NON ̲EXISTING ̲TO ̲VOLUME,
          NON ̲EXISTING ̲FROM ̲DIRECTORY,
          NON ̲EXISTING ̲TO ̲DIRECTORY,
          COPY ̲ERROR ̲X)

         EXEC ̲OK
         execution OK

         LINE ̲CONNECTED ̲IN ̲PROFILE
         at least one of the lines corresponding to the device
         in question are in operational use (connected/unblocked
         in a profile).

         NOT ̲OPERATOR ̲ONLY ̲MODE
         NOT ̲ALLOWED ̲IN ̲OPERATOR ̲ONLY ̲MODE
         only a subset of the operator commands are applicable
         in operator only modes.

         RUNNING ̲IN ̲SUPV ̲ONLY ̲MODE
         during supervisor only mode execution of operator commands
         is not allowed.



         HW ̲ERROR
         during creation of LTUX and LTUs a HW error may appear.
         Also during mount, dismount, include and exclusion
         of disks a HW ̲ERROR may appear.

         WDP ̲CCB ̲FAILED
         the WDP is available, but the CCB operation fails during
         SB ̲PU reset or BSM ̲X control.

         LTU ̲LOAD ̲ERROR
         the LTU is created successfully, but the load of firmware
         fails.

         STATUS ̲CHANGE ̲ILLEGAL
         the status change relates to disk commands e.g. -mount
         of a disk which is not in-service.

         NO ̲OPERATION
         a disk operator command is specified, where status
         is unchanged.

         LAST ̲MIRRORED ̲DISK
         the last mirrored disk is wanted deassigned.

         WRONG ̲VOLUME ̲NAME ̲X
         during mount: operator name different from volume's
         name

         VOLUME ̲NAME ̲IS ̲USED ̲X
         during mount: the volume name allready is used (on
         the offline or mirrored disks)

         NON ̲EXISTING ̲VOLUME ̲X
         during dismount: operator name different from volume's
         name

         VOLUME ̲MOUNTED ̲X
         the offline disk has not been dismounted by the supervisor
         prior to a deassign.

         NO ̲CIF ̲FOUND
         the CIF to be deleted does not exist.

         ILLEGAL ̲PROCESS ̲NO
         the process no specified during set trace mark is non
         existing.

         NON ̲EXISTING ̲FROM ̲VOLUME
         the source disk volume is not mounted.



         NON ̲EXISTING ̲TO ̲VOLUME
         the destination disk volume is not mounted.

         NON ̲EXISTING ̲FROM ̲DIRECTORY
         the source directory does not exist.

         COPY ̲ERROR ̲X
         an error has occurred during file copying e.g.

         -   file does not exist
         -   file contents too big
         -   hardware error during copying


4.1.4.5.2    V̲a̲r̲i̲o̲u̲s̲

         TYPE      WDP ̲INFO =         (GO ̲SB ̲AC,
                                      SB ̲PU ̲DOWN,
                                      SB ̲PV ̲UP
                                      SB ̲CU ̲DOWN
                                      SB-̲CU-̲PU,
                                      NON-̲AC ̲TDX ̲DOWN,
                                      NON ̲AC ̲TDX ̲UP,
                                      BSMX ̲DOWN,
                                      WARNING,
                                      NORMAL ̲AGAIN)

         TYPE      PU ̲NO ̲TYPE =       0..2 (1 byte)

         TYPE      ERR ̲TYPE =         (TEMP,
                         MANUAL ̲SWITCH,
                         ANALOG,
                         DIGITAL,
                         NO ̲KEEP ̲ALIVE)

         TYPE      UNIT ̲TYPE =        (PU, CU, TDX, BSM ̲X)

         TYPE      WDP ̲ROP ̲NUMBERS=

                   RECORD
                      SERIAL,
                      ERROR,
                      PRINT,
                      TRANS:          ARRAY (1..4) OF CHARS
                   END



         TYPE      CMI ̲VDU ̲CONNECTION=

                   RECORD
                      CMD ̲SPLIT ̲CTR ̲OFFER ̲ID,
                      CMD ̲SPLIT ̲DATA ̲OFFER ̲ID: OFFER ̲ID ̲TYPE
                      CMD ̲INTERFACE ̲NO: IFCB ̲INDEX
                      FORMAT ̲SPLIT ̲CTR ̲OFFER ̲ID
                      FORMAT ̲SPLIT ̲DATA ̲OFFER ̲ID: OFFER ̲ID ̲TYPE
                      FORMAT ̲INTERFACE ̲NO: IFCB ̲INDEX
                   END

         TYPE      START ̲CMI ̲RECORD =

                   RECORD
                      VDU ̲REC:        CMI ̲VDU ̲CONNECTION
                      ROP ̲REC:        ROP ̲CONNECTION
                   END

         TYPE      ROP ̲CONNECTION=    OFFER ̲ID ̲TYPE

         TYPE      COPY ̲SW ̲DIRECTION =(FLOP ̲OFFL,
                         FLOP ̲MIRR,
                         OFFL ̲MIRR, 
                         MIRR ̲AFFL
                         MIRR ̲FLOP)

         TYPE      LOAD ̲SW ̲TYPE =     (INIT ̲SYS ̲SW,
                         MODI ̲SYS ̲SW,
                         INIT ̲APPL ̲SW,
                         MODI ̲APPL ̲SW,
                         PATCH ̲FILE,
                         GARBLE ̲FILE)

         TYPE      SW ̲TO ̲BE ̲LOADED =

                   RECORD
                      FROM ̲TO:        COPY ̲SW ̲DIRECTION
                      SW ̲TYPE:        LOAD ̲SW ̲TYPE
                      PATCH           PATCH ̲FILE ̲NO
                   END

         TYPE         DISK ̲SW ̲VERSION =(MIRRORED ̲SW, OFFLINE
                      ̲SW)



         TYPE CLOSE ̲TYPE =           (CONTINUE,CLOSE ̲DOWN ̲SYSTEM)

         TYPE TRACE ̲INF =

                 RECORD
                     PROCESS ̲NO:     TMP ̲P ̲NO..NO ̲OF ̲PROCESSES
                     PRIORITY:       0..15
                 END

         TYPE RELATIVE ̲TIME ̲TYPE =   INTEGER
         Minutes

         TYPE CLOSE ̲PU ̲TYPE      =   ACTIVE..STANDBY




         TYPE ERROR ̲REPORT ̲TYPE =
              (CESE ̲REPORT,          "IOBUS ERROR"
              LOAD ̲PATCH ̲HEADER,     "error during load of patch
                                      file header

              COPY ̲FAILED,           "error during copying of
                                     files"
              LOAD ̲FAILED            "error during load of segment
              CHECK ̲SUM ̲ERROR,       "patchfile sumcheck error
              LOAD ̲FILE ̲ERROR,       "error in load file
              STI ̲CC,                "error during device creation
              TIA ̲CC,
              MAP ̲CC,
              PSE ̲REPORT,            "process not retired due
                                     to SEND ̲GARBLE
              TMS ̲REPORT
              FMS ̲HARD ̲REPORT
              COPSY ̲GAQ ̲REPORT,      "error report from COPSY
              CHILD ̲PSE ̲GAQ ̲REPORT,  "PSE and GAQ information
              FMS ̲RECOVERED ̲REPORT
              WDP ̲MON ̲REPORT,        "WDP monitoring information
              ORDERED ̲CLOSE,
              CLEAN ̲UP ̲REPORT,
              COPY ̲MODIFED,          "error during copying of
                                      files
              PRINT ̲INF,             "software version numbers
              LTUX ̲CC
              LTUX ̲LINE ̲CC
              LTU ̲CC
              LTU ̲LINE ̲CC
              WDP ̲CC
              WDP ̲ROP ̲CC
              WDP ̲VDU ̲CC)



         TYPE

         PU ̲ERROR ̲REPORT ̲TYPE = PSE ̲REPORT..MAP ̲CC

         Reports of this type are dumped in the memory of the
         KERNEL:

         TYPE

         PU ̲WDP ̲ROP ̲REPORT ̲TYPE = PSE ̲REPORT..CHILD ̲PSE ̲GAQ
         ̲REPORT

         Reports of this type can both be dumped in the memory
         of the KERNEL and printed on the WDP ̲ROP

         TYPE

         WDP ̲ROP ̲REPORT ̲TYPE = FMS ̲RECOVERED ̲REPORT..WDP ̲VDU
         ̲CC

         Reports of this type are printed on the WDP ̲ROP



         TYPE    WAMCO ̲COMMANDS ̲TO ̲CMI= START ̲UP ̲WAMCO...
                                     CLOSE ̲DOWN ̲WAMCO

         TYPE    L ̲COMMAND ̲TYPE=

             (DEVICE ̲ERROR,          FMS/TMS report, from EHD
                                     to CFH
             CFH ̲LONG ̲CMD,           from CFH to WAMCO/SEH
             CMI ̲CMD ̲L,              from CMI and count to CFH
             SUPV ̲CMD ̲L,             from CMD to CFH
             WDP ̲CMD,                from WAMCO to CFH
             WMCO ̲INT ̲CMD,           internal WAMCO
             CMI ̲LOG,
             COPSY ̲CMD ̲L,            CFH to WAMCO
             COPSY ̲REPORT)           CFH to WAMCO

         TYPE    REPLY ̲TYPE = (BUFFER ̲R, QEL ̲R)


         TYPE CFH ̲LONG ̲TYPE =

              (START ̲AC,             start WAMCO as Active
              START ̲SB,              start WAMCO as Active
              CLOSE ̲COR,             Close coroutine to SEH/WAMCO
              START ̲SEH)             Start SEH


         TYPE S ̲COMMAND ̲TYPE =

              (SUPV ̲CMD,             from EHD to TEMCO, DEMCO,
                                     CEMCO
              TEP ̲CMD,               from EHD to TEMCO
              MMON ̲CMD,              from EHD to TEMCO
              IOC ̲CMD,               from EHD to TEMCO
              CFH ̲CMD,               from CFH to TEMCO, DEMCO,
                                     CEMCO
              CMD ̲INT ̲CMD,           internal CMD
              SEH ̲INT ̲CMD,           internal SEH
              IOC ̲REPLY,             from IOC
              TEMCO ̲CMD,             internal TEMCO
              TMON ̲CMD)              timeouts from TMON

         TYPE CFH ̲SUBTYPE =          (SET ̲ACCESS ̲PROFILE,
                                     START ̲COR,
                                     STOP ̲COR,
                                     START ̲SUPV,
                                     STOP ̲SUPV,
                                     INSERT ̲SUPV,
                                     CLOSE ̲INITIAL,
                                     CLOSE ̲FINAL,
                                     LINE ̲ERROR)

         The CFH ̲SUBTYPE is used in the CMD field of the Short
         Operation for interfaces, between CFH/DEMCO, TEMCO,
         CEMCO/CFH.

         TYPE REPORT ̲TYPE =          (FMS ̲R,
                                      TMS ̲R)

         The REPORT ̲TYPE is used in the CMD field of the long
         operation for interfaces, between EHD/CFH.

         TYPE WDP ̲SUBTYPE =          (WDP ̲REP ̲COMMAND,
                                     YOU ̲ARE,
                                     CCB ̲REPORT
                                     REPORT ̲NUMBER)



         TYPE WDP ̲MAIN ̲COMMAND =     (WHO ̲AM ̲I,
                                     CONFIGURATION,
                                     GO ̲CAMPS ̲WDP,
                                     KEEP ̲ALIVE, CONTROL)

         TYPE
         WDP ̲SUB ̲COMMAND =           (SWITCHOVER,
                                      RESET,
                                      MASTER ̲CLEAR,
                                      DISABLE,
                                      SET ̲PU ̲MAINTEN,
                                      LINK ̲PU ̲CU,
                                      PU ̲NO ̲1,
                                      PU ̲NO ̲2,
                                      OFFLINE ̲COM,
                                      BSM ̲X ̲SWITCH,
                                      PU ̲CLOSE,
                                      IO ̲SWITCH)

         TYPE BSM ̲X ̲COMMAND =        (NONE ̲BUS,
                                      ACTIVE ̲BUS,
                                      OTHER ̲BUS)

         TYPE ANSW ̲TO ̲TEP =          (EXECUTION ̲OK,
                                     VALIDATION ̲NOT ̲OK
                                     EXECUTION ̲NOT ̲OK)

         The TYPE is used for answers between SSC and TEP

         TYPE REPORT ̲TYPE =          RECORD
                                       SIZE:  1..50
                                       REPORT: ARRAY(1..50)
                                     OF INTEGER
                                     END

         VAR  CAMPS ̲ERROR ̲MODE:      (AT ̲RISK, NORMAL)

         TYPE
         CAMPS ̲PHASE = (INITIAL ̲PHASE,
                        OPERATOR ̲ONLY ̲PHASE,
                        SUPERVISOR ̲ONLY ̲PHASE,
                        ONLINE ̲PHASE)

         Defines a phase in the CAMPS Software life.

         The REPORT ̲ERROR, CHAIN ̲CONF ̲DISPLAY and LTU ̲CHAIN
         ̲CONF ̲DISPLAY procedures use these variables.

         VAR  PU ̲NO:  1..2

              Specifies the no. of the current PU.



         CONST   RESET ̲ALL ̲PRIORITIES ̲NO = 999

         Defines the priority (set by the operator), which makes
         CFH reset all priorities.

         CONST   ALL ̲MASK = # FFFF


         TYPE

              CONF ̲CMD = (UP, DOWN, SET ̲STATUS,
                          ERROR ̲STATUS, ALL ̲DISP)

         Defines the action to be taken on the configuration
         display.

              CONF ̲TYPE = VDU..WDP ̲ROP

         Defines the field in the configuration display to be
         updated.

         CONF ̲TYPE is a subrange of the pheripheral type.






4.1.4.5.3     C̲O̲P̲S̲Y̲ ̲G̲a̲r̲b̲l̲e̲ ̲T̲y̲p̲e̲s̲

         TYPE
         COPSY ̲GARBLE ̲PARAMS = 

                 RECORD

                     ERROR ̲TYPE      :COPSY ̲INFO ̲TYPE
                     USER ̲ACTION     :USER ̲ACTION ̲TYPE
                     ERROR ̲COR       :COR ̲TYPE
                     LOC             :INTEGER
                     ERROR ̲INFO      :COPSY ̲Q ̲ERROR ̲INFO/
                                      COPSY ̲INT ̲ERROR ̲INFO/
                                      COPSY ̲TIMEOUT ̲ERROR ̲INFO/
                                      COPSY ̲LONG ̲ERROR ̲INFO/
                                      COPSY ̲SHORT ̲ERROR ̲INFO
                 END

         TYPE
         COPSY ̲INFO ̲TYPE = (COPSY ̲Q ̲ERROR, COPSY ̲INT ̲ERROR,
         
                             COPSY ̲TIMEOUT ̲ERROR, COPSY ̲LONG
                     ̲ERROR,
                             COPSY ̲SHORT ̲ERROR)

         TYPE
         USER ̲ACTION ̲TYPE = (GIVE ̲UP, DUMMY ̲ACTION, CONTINUE)

         TYPE
         COPSY ̲Q ̲ERROR ̲INFO = RECORD

                                     Q: Q ̲REFERENCE "receiving
                                     queue
                                  INFO: ARRAY(1..2) OF INTEGER
                              END

         TYPE
         COPSY ̲INT ̲ERROR ̲INFO = ARRAY(1..4) OF INTEGER

         TYPE
         COPSY ̲TIMEOUT ̲ERROR ̲INFO = 

                 RECORD

                     DEST ̲Q: QUEUE ̲REFERENCE " the queue where
                     the 
                                               request is sent
                                          to
                     REP ̲Q : QUEUE ̲REFERENCE " the queue where
                     the
                                               reply is inspected
                 END



         TYPE
         COPSY ̲LONG ̲ERROR ̲INFO = ARRAY(1..4) OF INTEGER

         TYPE
         COPSY ̲SHORT ̲ERROR ̲INFO = ARRAY(1..4) OF INTEGER

         TYPE
         COR ̲TYPE = (CFH ̲COR, CMD ̲COR, TEMCO ̲COR, DEMCO ̲COR,
                     CEMCO ̲COR, WAMCO ̲COR, REPORT ̲ERROR ̲COR,
                     SEH ̲COR)




4.1.4.6  W̲a̲t̲c̲h̲d̲o̲g̲ ̲M̲o̲n̲i̲t̲o̲r̲i̲n̲g̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲T̲a̲b̲l̲e̲

         VAR  CONFIG ̲TABLE: CONFIG ̲TABLE ̲TYPE

         TYPE CONFIG ̲TABLE ̲TYPE =

              RECORD
                 PU ̲N : ARRAY(1..2) OF HW ̲STATUS
                 TDX  : ARRAY(1..2) OF HW ̲STATUS (Note 1)
                 CU   : CU ̲STATE
                 BSM ̲X: ARRAY(1..NO ̲OF ̲BSM ̲XS) OF HW ̲STATUS
                 (Note 2)
              END;

         Note 1: STANDBY and OFFLINE are not applicable
         Note 2: STANDBY and IN ̲SERVICE are not applicable

         TYPE CU ̲STATE = (IO ̲A ̲NOT ̲B,
                          IO ̲B ̲NOT ̲A,
                          IO ̲A ̲AND ̲B,
                          IO ̲NOT ̲A ̲NOT ̲B)

         The table contains information of the units to which
         the CCB is connected and hereby monitored and controlled.

         The table is updated by the

         -    CFH in the active PU

         It is given to the WDP

         -    during start-up by WAMCO
         -    during WDP reinsertion by WAMCO





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

         The Procedures common to the SSC package are:

         -    search one secondary
         -    search entry
         -    search field
         -    update entry
         -    wait limited on queue
         -    create VDU terminals
         -    offer VDU connections
         -    create tree
         -    create physical WDP
         -    create WDP ̲VDU
         -    create WDP ̲ROP
         -    create WDP
         -    COPSY send garble
         -    display configuration
         -    report error
         -    PU down
         -    send SSC reply



4.1.5.1  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲A̲R̲C̲H̲ ̲O̲N̲E̲ ̲S̲E̲C̲O̲N̲D̲A̲R̲Y̲



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

         The TMP is requested to search in the specified table
         for the key given as a secondary key.

         A read mask and a search mask are specified. If no
         entry found - FOUND = FALSE. The secondary key is delivered
         in the Key-Buf.



4.1.5.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)  SEARCH ̲ONE ̲SECONDARY    (TABLE:     TABLE ̲ID
                                     SEND ̲BUF:   TMP ̲PARAM
                                     KEY ̲BUF:    KEY ̲BUFFER
                                     SEARCH ̲MASK,
                                     READ ̲MASK:  INTEGER)
                                     (FOUND:     BOOLEAN)
                                     OUT ̲BUF:    BUFFER)



         b)  SEARCH ̲ONE ̲SECONDARY (R0, R1, R2, R3, R4, R5, R6)

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

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

         R0  TABLE
         R1          Pointer SEND ̲BUF
         R2          Pointer KEY ̲BUF (Containing the secondary
                     key)
         R3  SEARCH ̲MASK
         R4  READ ̲MASK
         R6  LINK
         R5          Pointer OUT ̲BUF (kept)

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

         R1  FOUND



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

             TMP ̲PARAM               cf. TMP 4.1.6.1.1.5
             SINGLE ̲PARAM            Cf. TMP 4.1.6.1.1.3

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

             TABLE,
             KEY ̲BUF,
             SEARCH ̲MASK,
             READ ̲MASK,
             SEND ̲BUF,
             OUT ̲BUF,
             FOUND                   Interface data

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

             SEND ̲BUF.TABLE ̲ID         (m)
             SEND ̲BUF.FUNCTION         (m)
             SEND ̲BUF.SEARCH ̲MASK      (m)
             SEND ̲BUF.BUFFER1          (m)
             SEND ̲BUF.COUNT            (m)
             SEND ̲BUF.BUFFER2          (m)
             SEND ̲BUF.BUFFER ̲LENGTH    (m)
             SEND ̲BUF.MASK

             KEY ̲BUF.INFO              (m)
             KEY ̲BUF.LINK              (m)


4.1.5.1.4    S̲e̲a̲r̲c̲h̲ ̲S̲e̲c̲o̲n̲d̲a̲r̲y̲ ̲D̲e̲s̲i̲g̲n̲

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

         Update the TMP ̲PARAM record and the key buffer.

         Call TMP:

         -   if key-buf.info = 0 key not found FOUND = FALSE
             else FOUND = TRUE.

         F̲l̲o̲w̲g̲r̲a̲m̲

         Refer 4.1.5.1.4-1.



         PROCEDURE SEARCH ̲ONE ̲SECONDARY (TABLE SEND ̲BUF, KEY
                                        ̲BUF,
                                        SEARCH ̲MASK, READ ̲MASK)
                                        (OUTBUF, FOUND)

         KEY ̲BUF.INFO = 0

         KEY ̲BUF.LINK = 0

         SEND ̲BUF.TABLE ̲ID = TABLE ̲ID

         SEND ̲BUF.FUNCTON = SEARCH ̲ONE ̲SECONDARY ̲KEY

         SEND ̲BUF.MASK1 = SEARCH ̲MASK

         SEND ̲BUF.BUFFER1 = KEY ̲BUF

         SEND ̲BUF.COUNT = 1

         SEND ̲BUF.BUFFER2 = OUTBUF

         SEND ̲BUF.BUFFER ̲LENGTH = SIZE(OUTBUF)

         SEND ̲BUF.MASK = READ ̲MASK

             SEARCH ̲ONE ̲SECONDARY ̲KEY(SEND ̲BUF:TMP ̲PARAM)(OUTBUF)

             KEY ̲BUF.INFO EQ 0? - FOUND = FALSE

             FOUND = TRUE

         END SEARCH ̲ONE ̲SECONDARY
















                    Figure 4.1.5.1.4-1


4.1.5.2  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲A̲R̲C̲H̲ ̲E̲N̲T̲R̲Y̲



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

         The TMP is requested search the specified table for
         the primary key (delivered in the KEY.BUF). The specified
         amount of output (READ ̲MASK) is returned.



4.1.5.2.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)  SEARCH ̲ENTRY               (TABLE ̲ID: TABLE ̲ID
                                        ̲TYPE
                                        KEY ̲BUF:   SINGLE ̲PARAM
                                        READ ̲MASK: BIT ̲MASK
                                        SEND ̲BUF:  TMP ̲PARAM)
                                        (OUTBUF:   BUFFER)

         b)  SEARCH ̲ENTRY (R0, R1, R2, R5, 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  TABLE ̲ID
         R1          Pointer to SEND ̲BUF
         R2          Pointer to KEY ̲BUF
         R4  READ ̲MASK
         R5          Pointer to OUTBUF (kept)

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

         R0-R4, R6, R7                  destr.

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

         NO ̲RECORD ̲FOUND





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

             TMP ̲PARAM                  cf. TMP sec. 4.1.6.1.1.5
             SINGLE ̲PARAM               cf. TMP sec. 4.1.6.1.2.3

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

             TABLE ̲ID,
             KEY ̲BUF,
             READ ̲MASK,
             SEND ̲BUF,
             OUTBUF                     INTERFACE DATA

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

             SEND ̲BUF.TABLE ̲ID
             SEND ̲BUF.FUNCTION
             SEND ̲BUF.BUFFER1
             SEND ̲BUF.COUNT
             SEND ̲BUF.BUFFER2
             SEND ̲BUF.BUFFER2.LENGTH
             SEND ̲BUF.MASK2

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

             NA.



4.1.5.2.4    P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲A̲R̲C̲H̲ ̲E̲N̲T̲R̲Y̲

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

         Update the SEND ̲BUF with the TMP parameter and call
         TMP.



         Flowgram

         PROCEDURE SEARCH ̲ENTRY (TABLE ̲ID, KEY ̲BUF, READ ̲MASK,
         SEND ̲BUF)
                                (OUTBUF)

         KEY ̲BUF.INFO = 0

         KEY ̲BUF.LINK = 0

         SEND ̲TABLE ̲ID = TABLE ̲ID

         SEND ̲BUF.FUNCTION = SEARCH ̲PRIMARY ̲KEY

         SEND ̲BUF.BUFFER1 = KEY ̲BUF

         SEND ̲BUF.COUNT = 1

         SEND ̲BUF.BUFFER2 = OUTBUF

         SEND ̲BUF.BUFFER2 ̲LENGTH = SIZE ̲OUTBUF

         SEND ̲BUF.MASK2 = READ ̲MASK

         SEARCH ̲PRIMARY ̲KEY (SEND ̲BUF: TMP ̲PARAM)
                            (CC): ERROR ̲OK

         KEY ̲BUF.INFO NE 1? EQUIVALENCE(SEND ̲BUF,R: COPSY ̲GARBLE
         ̲PARAMS)
                            R.ERROR ̲TYPE  = COPSY ̲INT ̲ERROR
                            R.USER ̲ACTION = GIVE ̲UP
                            R.ERROR ̲COR   = RUNNING ̲COROUTINE
                            COPSY ̲SEND ̲GARBLE(NIL, R)

         END CASE





4.1.5.3  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲A̲R̲C̲H̲ ̲F̲I̲E̲L̲D̲



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

         The TMP is requested to search the record specified
         by the entry no. for the pattern specified in the key-buffer.



4.1.5.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)  SEARCH ̲FIELD               (TABLE ̲ID: TABLE ̲ID
                                        ̲TYPE
                                        ENTRY: PRIMARY ̲KEY
                                        KEY ̲BUF: SINGLE ̲PARAM
                                        SEARCH ̲MASK: BITMASK
                                        SEND ̲BUF: M ̲PARAM)
                                        (FOUND: BOOLEAN)

         b)  SEARCH ̲FIELD (R0, R1, R2, R3, R5, R6)

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

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

         R0  TABLE ̲ID
         R1          Pointer to SEND ̲BUF
         R2          Pointer to KEY ̲BUF
         R3  SEARCH ̲MASK
         R5          Pointer to ENTRY
         R6  LINK

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

         R1  FOUND

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

         None





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

             TMP ̲PARAM                  cf. TMP sec. 4.1.6.1.1.5
             SINGLE ̲PARAM               cf. TMP sec. 4.1.6.1.1.3

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

             TABLE ̲ID,
             ENTRY,
             KEY ̲BUF,
             SEARCH ̲MASK,
             SEND ̲BUF,
             FOUND                      INTERFACE DATA

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

             SEND ̲BUF.TABLE ̲ID
             SEND ̲BUF.FUNCTION
             SEND ̲BUF.MASK1
             SEND ̲BUF.BUFFER1
             SEND ̲BUF.COUNT

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



4.1.5.3.4    P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲A̲R̲C̲H̲ ̲F̲I̲E̲L̲D̲

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

         Update the SEND ̲BUF with the THP parameters, reset
         keybuffers and call TMP.

         Return with the Boolean FOUND



         Flowgram:

         PROCEDURE SEARCH ̲FIELD (TABLE ̲ID, ENTRY, KEY ̲BUF,
                                SEARCH ̲MASK, SEND ̲BUF)(FOUND)

         KEY ̲BUF.INFO = 0

         KEY ̲BUF.LINK = 0

         SEND ̲BUF.TABLE ̲ID = TABLE ̲ID

         SEND ̲BUF.FUNCTION = SEARCH ̲IN ̲RECORD

         SEND ̲BUF.MASK1 = SEARCH ̲MASK

         SEND ̲BUF.ENTRY = ENTRY

         SEND ̲BUF.BUFFER1 = KEY ̲BUF

         SEND ̲BUF.COUNT = 1

         SEARCH ̲IN ̲RECORD (SEND.BUF: TMP ̲PARAM)(KEY ̲BUF)

         FOUND = KEY ̲BUF ̲INFO

         END SEARCH ̲FIELD





4.1.5.4  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲U̲P̲D̲A̲T̲E̲ ̲E̲N̲T̲R̲Y̲



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

         TMP is requested to update the record specified by
         the primary key and the table. id. The fields specified
         by the change ̲mask are updated.

         The key-buffer contains the primary key.



4.1.5.4.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)  UPDATE ̲ENTRY               (TABLE ̲ID: TABLE ̲ID
                                        ̲TYPE,
                                        SEND ̲BUF: TMP ̲PARAM
                                        ENTRY: KEY
                                        CHANGE ̲MASK: BITMASK
                                        NEW ̲FIELDS: FIELDS ̲IN)

         b)  UPDATE ̲ENTRY (R0, R1, R2, R3, R4, R5)

         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  TABLE ̲ID
         R1          Pointer to SEND ̲BUF
         R2          Pointer to ENTRY
         R3  CHANGE ̲MASK
         R5          Pointer to NEW ̲FIELDS
         R6  LINK

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

         R0-R7       destr.



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

             TMP ̲PARAM



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

             TABLE ̲ID,
             SEND ̲BUF,
             ENTRY,
             CHANGE ̲MASK,
             NEW ̲FIELDS,                INTERFACE DATA

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

             SEND ̲BUF.TABLE ̲ID          (m)
             SEND ̲BUF.FUNCTION          (m)
             SEND ̲BUF.MASK1             (m)
             SEND ̲BUF.ENTRY             (m)
             SEND ̲BUF.BUFFER1           (m)

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

             None



4.1.5.4.4    P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲U̲P̲D̲A̲T̲E̲ ̲E̲N̲T̲R̲Y̲

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

         Update the TMP parameter record and the key buffer.

         Request TMP to update in accordance with the record.



         F̲l̲o̲w̲g̲r̲a̲m̲

         PROCEDURE UPDATE ̲ENTRY (TABLE ̲ID, SEND ̲BUF, ENTRY,
                                CHANGE ̲MASK, NEW ̲FIELDS)

         SEND ̲BUF TABLE ̲ID = TABLE ̲ID

         SEND ̲BUF.FUNCTION = SINGLE ̲CHANGE ̲FIELD ̲POSITION

         SEND.BUF.MASK1 = CHANGE ̲MASK

         SEND ̲BUF.ENTRY = ENTRY

         SEND.BUF.BUFFER 1 = NEW ̲FIELDS

         SINGLE ̲CHANGE ̲FIELD ̲POSITION (REG:TMP ̲PARAM)
                                      (CC): ERROR ̲OK

         END UPDATE ̲ENTRY






4.1.5.5  W̲A̲I̲T̲ ̲T̲I̲M̲E̲ ̲L̲I̲M̲I̲T̲E̲D̲ ̲O̲N̲ ̲Q̲U̲E̲U̲E̲



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

         The parameter TIME indicates how many seconds a coroutine
         wants to wait for a QEL shall arrive to a specific
         queue, Q. If a QEL arrives in the specific period,
         the attributes and a reference to this are delivered
         to the user, with the subqueue and CC = OK. If no QEL
         arrives the user gets a QEL-reference and the attributes
         of a timeout and CC = ERROR. The timeout-get is not
         dismantled. The WRK-array is destroyed.



4.1.5.5.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)  WAIT ̲TIME ̲LIMITED ̲ON ̲QEUE(Q:QUEUE ̲REFERENCE,
             TIME:SECONDS, WRK:ARRAY(1..WRK ̲SIZE) OF INTEGER)
             (ATT:QEL ̲ATTRIBUTES,QEL:QEL ̲REFERENCE;SUBQ:SUBQUEUE
             ̲INDEX:CC:INTEGER)

         b)  WAIT ̲TIME ̲LIMITED ̲ON ̲QUEUE(R0, R1, R2, R3, R4,
             R5, R6, R7)

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

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

         R1  Pointer to ATT             (dest)
         R3  Pointer to Q               (dest)
         R4  TIME                       (dest)
         R5  Pointer to WRK             (dest)
         R6  link                       (dest)

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

         R0  SUBQ
         R2  QEL
         R7  CC =                       (ERROR, OK)





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

             QUEUE ̲REFERENCE            See CPS/DBD/001
             QEL ̲ATTRIBUTES             See CPS/DBD/001
             QEL ̲REFERENCE              See CPS/DBD/001
             SUBQUEUE ̲INDEX             See CPS/DBD/001

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

             Q,
             TIME,
             WRK,
             ATT,
             QEL,
             SUBQ                       interface data

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

             PARAMS equivalent to WRK
             PARAMS.QUEUE               (m)
             PARAMS.TIMEOUT             (m)
             PARAMS.FORMAT              (m)
             PARAMS ̲TIME ̲RECORD         (m)
             PARAMS.EVENT ̲ID            (m)
             ATT.HEADER.MAINTYPE
             ATT.HEADER.SUBTYPE
             ATT.HEADER.FLAG
             TIME
             QEL                        (m)
             QELEMENT equivalence
             WRK (1)                    (m)
             ATTRIBUTES equivalence
             WRK(2..)
             ATTRIBUTES.HEADER.MAINTYPE
             ATTRIBUTES.HEADER.SUBTYPE

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

             SUBQ1: SUBQUEUE ̲INDEX



4.1.5.5.4    D̲e̲s̲i̲g̲n̲ ̲W̲A̲I̲T̲ ̲T̲I̲M̲E̲ ̲L̲I̲M̲I̲T̲E̲D̲ ̲O̲N̲ ̲Q̲U̲E̲U̲E̲

         The main procedure calls the two "underlying" procedures

         -   STOP ̲TIMER                 b
         -   SERVE ̲QUEUE                c


 PROCEDURE

     WAIT ̲TIME ̲LIMITED ̲ON ̲QUEUE(Q:QUEUE ̲REFERENCE, TIME:SECONDS,
                 (WRK:ARRAY(1..16) OF INTEGER
                 (QEL:QEL ̲REFERENCE,ATT:QEL ̲ATTRIBUTES,SUBQ:
                 SUBQUEUE ̲INDEX,
                 CC:INTEGER)

     EQUIVALENCE(WRK, PARAMS: REQUEST ̲TIME)

     PARAMS.QUEUE = Q

     PARAMS.TIMEOUT = ONCE

     PARAMS.FORMAT = SECONDS

     PARAMS.TIME.PERIOD = TIME

     PARAM.EVENT ̲ID = 0

     REQUEST ̲TIMEOUT(PARAMS)(CC):ERROR ̲OK

     CASE RECEIVE ̲FIRST ̲QEL(TRUE,Q)(ATT,QEL,SUBQ,CC)

         ERROR?  ANALYZE ̲ERROR (CC,0)

         OK?

     END CASE RECEIVE ̲FIRST ̲QEL

     ATT.HEADER.MAINTYPE NE TIMEOUT? - STOP ̲TIMER; CC
     = OK

     CASE ATT.HEADER.SUBTYPE OF

         TIMEOUT ̲EVENT?

             ATT.HEADER.FLAG EQ 0? CC = NOK

         COPSY ̲SEND ̲GARBLE (GIVE ̲UP, NIL)

     END CASE ATT.HEADER.SUBTYPE

 END WAIT ̲TIME ̲LIMITED ̲ON ̲QUEUE




               Figure 4.1.5.4.4.a-1


 PROCEDURE STOP ̲TIMER

 VAR SUBQ1: SUBQUEUE ̲INDEX

 BEGIN

     CANCEL ̲TIMEOUT(PARAMS)(CC):ERROR ̲OK

     EQUIVALENCE (WRK(1),QELEMENT:QEL ̲REFERENCE)

     EQUIVALENCE (WRK(2..16), ATTRIBUTES: QEL ̲ATTRIBUTES)

     SERVE ̲QUEUE

     ATTRIBUTES.HEADER.SUBTYPE EQ TIMEOUT ̲CANCELLED?

     DISMANTLE (QELEMENT)(CC): ERROR ̲OK

     SERVE ̲QUEUE

     ATTRIBUTES ̲HEADER.SUBTYPE EQ TIMEOUT ̲CANCELLED?

     COPSY ̲SEND ̲GARBLE (GIVE ̲UP, INTERNAL)

     DISMANTLE (QELEMENT)(CC): ERROR ̲OK

 END STOP ̲TIMER




















               Figure 4.1.5.5.4.b-1


 PROCEDURE SERVE ̲QUEUE

 BEGIN

     CASE RECEIVE ̲FIRST ̲QEL(TRUE,QUEUE)
                 (ATTRIBUTES,QELEMENT,SUBQ1, CC)

         ERROR? ANALYSE ̲ERROR (CC,0)

         OK ?


     END CASE RECEIVE ̲FIRST ̲QEL

     ATTRIBUTES.HEADER.MAINTYPE EQ TIME ̲OUT?

     COPSY ̲SENDGARBLE (GIVE ̲UP, QEL ̲ERROR)

 END SERVE ̲QUEUE




























               Figure 4.1.5.5.4.c-1


4.1.5.6  C̲R̲E̲A̲T̲E̲ ̲V̲D̲U̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲S̲



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

         The CREATE ̲VDU ̲TERMINALS procedure is used to create
         a specified number of logical connections to the splits
         on a VDU.



4.1.5.6.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)  CREATE ̲VDU ̲TERMINALS (VDU ̲CON: IFCB ̲INDEX, DEVICE
             ̲REC:
                                   NEW ̲TMS ̲DEVICE
                                   T ̲NUMBER:LOGICAL ̲TERMINAL
                     ̲NO ̲TYPE,
                                   PROFILE ̲P: PROFILE ̲TYPE)
                                  (SPLIT ̲CON ̲BUF: SPLIT ̲CONNEC)

         b)  CREATE ̲VDU ̲TERMINALS (R1, R2, R3, R4, R5, R6)

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

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

         R3  VDU ̲CON
         R4      Pointer to DEVICE ̲REC
         R5      Pointer to SPLIT ̲CON ̲BUF (Kept)
         R1  T ̲NUMBER
         R2  PROFILE ̲P
         R6  Link

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

         R0-R4, R6-R7     (destr.)



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

             IFCB ̲INDEX          CPS/DBD/001
             SPLIT ̲CONNEC        4.1.4
             NEW ̲TMS ̲DEVICE      4.1.4





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

             DEVICE ̲REC 
             VDU ̲CON,
             COUNT,
             SPLIT ̲CON ̲BUF:          INTERFACE ̲DATA

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

             VDU ̲SUBDEVICE ̲PARAMS    4.1.4
             TERMINAL ̲P              4.1.4

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

             None



4.1.5.6.4    P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲R̲E̲A̲T̲E̲ ̲V̲D̲U̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲S̲

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

         For each split specified a control and a data connection
         are created. The caller specifies the connection on
         which the split connection is to be created and a buffer
         in which the created connections are to be returned.

         F̲l̲o̲w̲g̲r̲a̲m̲

         Refer Figure 4.1.5.6.4-1



 PROCEDURE CREATE ̲VDU ̲TERMINALS (VDU ̲CON: IFCB ̲INDEX,DEVICE
 ̲REC:
                                 NEW ̲TMS ̲DEVICE,
                                 T ̲NUMBER:LOGICAL ̲TERMINAL
                     ̲NO 
                                 PROFILE: PROFILE ̲TYPE
                                (SPLIT ̲CON ̲BUF:SPLIT
                     ̲CONNEC)

 MAXCOUNT = NUMBER ̲OF ̲SPLITS

 COUNT = 0

 LOOP

     COUNT = COUNT + 1

     DEVICE ̲REC.SDA = COUNT - 1

     DEVICE ̲REC.U ̲SDIS.PROFILE ̲TYPE = TERMINAL ̲P

     DEVICE ̲REC.U ̲SDID.LOGICAL ̲NO = T ̲NUMBER

     DEVICE ̲REC.SD ̲TYPE = TERMINAL

     COUNT EQ ODD?-DEVICE ̲REC.PROTOCOL ̲ID = VDU ̲CTR
     ̲SPLIT ̲PROTOCOL

     DEVICE ̲REC.PROTOCOL ̲ID = VDU ̲DATA ̲SPLIT ̲PROTOCOL

     DEVICE ̲REC.ACCESS ̲LEVEL = FORMATHANDLER ̲CPU ̲LEVEL

     DEVICE ̲REC.SELECT.BY ̲TMS = FALSE

     DEVICE ̲REC.PARAMS = VDU ̲SUBDEVICE ̲PARAMS

     CASE CREATE ̲SUBDEVICE (VDU ̲CON, DEVICE ̲REC, DEVICE
     ̲SE)
                           (SPLIT ̲CON, CC)

          ERROR? - ANALYZE.ERROR (CC, 1, HW)

                   REPORT ̲ERROR (VDU ̲TERMINAL ̲CC,DEVICE
             ̲REC)

     END CASE

     SPLIT ̲CON ̲BUF (COUNT) = SPLIT ̲CON

     COUNT EQ MAXCOUNT? EXIT

 END LOOP

 END CREATE ̲VDU ̲TERMINALS

                Figure 4.1.5.6.4-1


4.1.5.7  O̲F̲F̲E̲R̲ ̲V̲D̲U̲ ̲C̲O̲N̲N̲E̲C̲T̲I̲O̲N̲S̲



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

         The procedures "offers" the connections specified for
         a VDU's splits.

         The offer is returned.



4.1.5.7.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)  OFFER ̲VDU ̲CONNECTIONS (SPLIT ̲CON ̲BUF: SPLIT ̲CONNEC,
                                   COUNT: INTEGER,
                                   ACC: ACCESS ̲DESCRIPTOR)
                                   (OFFER ̲CON ̲BUF: OFFER ̲CONNEC)

         b)  OFFER ̲VDU ̲CONNECTIONS (R2, R3, R4, R5, R6)

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

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

         R2          Pointer to ACC
         R3          Pointer to OFFER ̲CON ̲BUF (kept)
         R4          Pointer to COUNT
         R5          Pointer to SPLIT ̲CON ̲BUF
         R6  LINK

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

         R0-R2, R4-R7                 (destr)



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

             ACCESS ̲DESCRIPTOR,
             SPLIT ̲CONNEC,
             OFFER ̲CON                DBD



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

             SPLIT ̲CON ̲BUF,
             COUNT,
             ACC,
             OFFER ̲CON ̲BUF   INTERFACE ̲DATA

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

             COUNT    (m)

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

             None



4.1.5.7.4    P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲O̲F̲F̲E̲R̲ ̲V̲D̲U̲ ̲C̲O̲N̲N̲E̲C̲T̲I̲O̲N̲S̲

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

         The connections delivered in the SPLIT ̲CON ̲BUF are
         "offered" and the OFFER.CON ̲BUF is returned loaded
         with the "offer-ids"

         F̲l̲o̲w̲g̲r̲a̲m̲

         Refer figure 4.1.5.7.4-1



 PROCEDURE OFFER ̲VDU ̲CONNECTIONS (SPLIT ̲CON ̲BUF: SPLIT
 ̲CONNEC,
                                 COUNT: INTEGER,
                                 ACC: ACCESS ̲DESCRIPTOR)
                                 (OFFER ̲CON ̲BUF: OFFER
                     ̲CONNEC)

 CONST

 MAX ̲COUNT = 4

 INIT

 COUNT = 0

 LOOP

     COUNT = COUNT + 1


     CASE OFFER (SPLIT ̲CON ̲BUF (COUNT) ACC)(OFFER ̲CON
     ̲BUF(COUNT), CC): 
                                              ERROR
                     ̲DONE

         ERROR?  ANALYSE ̲ERROR (CC)

     END CASE


     COUNT EQ MAX COUNT?  EXIT

 END LOOP

 END OFFER ̲VDU ̲CONNECTIONS

















                Figure 4.1.5.7.4-1


4.1.5.8  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲R̲E̲A̲T̲E̲ ̲T̲R̲E̲E̲



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

         Create the WDP tree shown on figure 4.1.5.8.1-1.



4.1.5.8.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̲s̲

         a)  CREATE ̲TREE (MAP ̲CON: FDCB ̲INDEX)
                         WDP ̲VDU ̲CON, WDP ̲ROP ̲CON, WDP ̲CON:
                         FDCB ̲INDEX)

         b)  CREATE ̲TREE (R2, R3, R4, R5, R6)

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

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

         R2  MAP ̲CON
         R6  LINK

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

         R3  WDP ̲VDU ̲CON
         R4  WDP ̲ROP ̲CON
         R5  WDP ̲CON











                    Figure 4.1.5.8.1-1



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

             FDCB ̲INDEX        DBD IOS Data

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

             MAP ̲CON,
             WDP ̲VDU ̲CON,       
             WDP ̲ROP ̲CON,
             WDP ̲CON,           I/F-data
             PHYS ̲WDP ̲CON,
             WDP ̲STATUS ̲REC,    Sec. 4.1.4.2.1


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

             MAP ̲CON
             WDP ̲VDU ̲CON    (m)
             WDP ̲ROP ̲CON    (m)
             PHYS ̲WDP ̲CON
             WDP ̲STATUS ̲REC.WDP ̲STATUS

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

             NA



4.1.5.8.4    P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲R̲E̲A̲T̲E̲ ̲T̲R̲E̲E̲

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

         The WDP is created as a sub device to the MAP device.

         To the WDP sub device the following subdevices are
         created as terminals.

         -   WDP ̲VDU
         -   WDP ̲ROP
         -   WDP

         F̲l̲o̲w̲g̲r̲a̲m̲

         Refer figure 4.1.5.8.4-1



         PROCEDURE CREATE ̲TREE  (MAP ̲CON)(WDP ̲VDU ̲CON,
                                 WDP ̲ROP ̲CON, WDP ̲CON)

         C̲R̲E̲A̲T̲E̲ ̲P̲H̲Y̲S̲I̲C̲A̲L̲ ̲W̲D̲P (MAP ̲CON)(PHYS ̲WDP ̲CON)

         C̲R̲E̲A̲T̲E̲ ̲W̲D̲P̲ ̲V̲D̲U̲ (PHYS ̲WDP ̲CON, TRUE)(WDP ̲VDU ̲CON)

         C̲R̲E̲A̲T̲E̲ ̲W̲D̲P̲ ̲R̲O̲P̲ (PHYS.WDP ̲CON)(WDP ̲ROP ̲CON)

         C̲R̲E̲A̲T̲E̲ ̲W̲D̲P̲ (PHYS ̲WDP ̲CON)(WDP ̲ROP ̲CON)

         WDP ̲STATUS ̲REC.WDP ̲STATUS = TRUE

         END CREATE ̲TREE

































                    Figure 4.1.5.8.4-1


4.1.5.9  P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲R̲E̲A̲T̲E̲ ̲P̲H̲Y̲S̲ ̲W̲D̲P̲



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

         Create the subdevice PHYS ̲WDP onto the MAP.



4.1.5.9.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)  CREATE ̲PHYS ̲WDP    (MAP ̲CON: FDCB ̲INDEX)
                                (PHYS ̲WDP ̲CON: FDCB ̲INDEX)

         b)  CREATE ̲PHYS ̲WDP (R2, 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̲

         R2  MAP ̲CON
         R6  LINK

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

         R1  PHYS ̲WDP ̲CON



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

             FDCB ̲INDEX         DBD IOS Data

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

             MAP ̲CON
             PHYS ̲WDP ̲CON           
             DEVICE ̲REC

             Refer Section 4.1.4.2.1  TMS Data



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

             MAP ̲CON
             PHYS ̲WDP ̲CON       (m)
             DEVICE ̲REC.SDA     (m)
             DEVICE ̲REC.V ̲SDID.PROFILE ̲TYPE   (m)
             DEVICE ̲REC.V ̲SDID.LOGICAL ̲NO     (m)
             DEVICE ̲REC.PROTOCOL ̲ID           (m)
             DEVICE ̲REC.SECRET ̲BY ̲TMS         (m)
             DEVICE ̲REC.PARAMS                (m)

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

             NA



4.1.5.9.4    D̲e̲s̲i̲g̲n̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲R̲E̲A̲T̲E̲ ̲P̲H̲Y̲S̲ ̲W̲D̲P̲

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

         The device record is completed and the subdevice created
         from these.

         F̲l̲o̲w̲g̲r̲a̲m̲

         Refer figure 4.1.5.9.4-1.




         PROCEDURE CREATE ̲PHYS ̲WDP (MAP ̲CON: FDCB ̲INDEX)
                                   (PHYS ̲WDP ̲CON: FOCB ̲INDEX)

         VAR CC: INTEGER

         BEGIN

             DEVICE ̲REC.SDA = 0

             DEVICE ̲REC.U ̲SDID.PROFILE ̲TYPE = PHYS ̲WDP ̲P

             DEVICE ̲REC.U ̲SDID.LOGICAL ̲NO = 0

             DEVICE ̲REC.PROTOCOL ̲ID = WDP ̲PROTOCOL

             DEVICE ̲REC.SECRET ̲BY ̲TMS = NIL

             DEVICE ̲REC.PARAMS = PHYS ̲WDP ̲PARAMS ̲D

             CASE CREATE ̲SUBDEVICE (MAP ̲CON, DEVICE ̲REC,
                                   DEVICE ̲SE) (PHYS ̲WDP ̲CON,CC)OF

                 ERROR? ANALYSE ̲ERROR (CC,1, HW)

                        REPORT ̲ERROR (PHYS ̲WDP ̲CC, DEVICE ̲REC)

             END ̲CASE

         END ̲CREATE ̲PHYSICAL ̲WDP


















                    Figure 4.1.5.9.4-1


4.1.5.10 C̲r̲e̲a̲t̲e̲ ̲W̲D̲P̲ ̲V̲D̲U̲



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

         Create the subdevice WDP ̲VDU as a "controller" or a
         "terminal" onto the specified subdevice.



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

         a)  CREATE WDP ̲VDU     (DEVICE ̲CON: FDCB ̲INDEX,
                                TERM: BOOLEAN)
                                (WDP ̲VDU ̲CON: FDCB ̲INDEX)

         b)  CREATE ̲WDP ̲VDU     (R1, R3, R4, R6)

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

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

         R1  DEVICE ̲CON         (kept)
         R4  TERM
         R6  LINK

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

         R3  WDP ̲VDU ̲CON



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

             FDCB ̲INDEX         DBD

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

             DEVICE ̲REC
             DEVICE ̲CON
             WDP ̲VDU ̲CON        

             Ref. section 4.1.4.2.1 TMS data

             TERM               I/F-data


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

             DEVICE ̲REC.SD ̲TYPE               (m)
             DEVICE ̲REC.SDA
             DEVICE ̲REC.V ̲SDID.PROFILE ̲TYPE   (m)
             DEVICE ̲REC.V ̲SDID.LOGICAL ̲NO     (m)
             DEVICE ̲REC.PROTOCOL ̲ID           (m)
             DEVICE ̲REC.ACCESS ̲LEVEL          (m)
             DEVICE ̲REC.SELECT ̲BY ̲TMS         (m)
             DEVICE ̲REG.PARAMS
             DEVICE ̲CON
             WDP ̲VDU ̲CON


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

             None



4.1.5.10.4   P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲R̲E̲A̲T̲E̲ ̲W̲D̲P̲ ̲V̲D̲U̲

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

         The device record is completed if TERM TRUE the subdevice
         is created as "terminal" else as a controller.

         F̲l̲o̲w̲g̲r̲a̲m̲



         PROCEDURE CREATE ̲WDP ̲VDU (DEVICE ̲CON: FDCB ̲INDEX, TERM:
                                  BOOLEAN)(WDP ̲VDU ̲CON:FDCB
                                ̲INDEX)

         TERM EQ TRUE DEVICE ̲REC.SD ̲TYPE = TERMINAL

         SO ̲TYPE = CONTROLLER

         DEVICE ̲REC.SDA = 0

         DEVICE.REC.U ̲SDID.PROFILE ̲TYPE = WDP ̲VDU ̲P

         DEVICE ̲REC.U ̲SDID.LOGICAL.NO = 0

         DEVICE.REC.PROTOCOL ̲ID = WDP ̲PROTOCOL

         DEVICE ̲REC.ACCESS ̲LEVEL = 0

         DEVICE ̲REC.SELECT ̲BY ̲TMS = NIL

         DEVICE ̲REC.PARAMS = WDP ̲VDU ̲PARAMS ̲D

         CASE CREATE ̲SUBDEVICE (DEVICE ̲CON, DEVICE ̲REC, DEVICE
         ̲SE)
                               (WDP ̲VDU ̲CON, CC)

              ERROR?  ANALYSE ̲ERROR (CC, 1, HW))

                      REPORT ̲ERROR (WDP ̲VDU ̲CC, DEVICE ̲REC)

         END CASE

         END CREATE WDP ̲VDU