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