top - download
⟦d62c60604⟧ Wang Wps File
Length: 89427 (0x15d53)
Types: Wang Wps File
Notes: CPS/SDS/033
Names: »1941A «
Derivation
└─⟦71c0ba358⟧ Bits:30006098 8" Wang WCS floppy, CR 0151A
└─ ⟦this⟧ »1941A «
WangText
…00……00……00……00……00…7…02……00……00…7
%…00…%…07…$…0c…$…0d…$ #…0a…#…0c…#…0d…# "…0b…"…02…"…05…"…06…!…0c…!…01…! …09… …0e… …1f……0a……1f……00……1f……05……1f……06……1e……0d……1e……0e……1e……05……1c… …1b……0b……1b……0f……1b…
…1b……07……1a……0b……1a……0c……1a……00……1a… …1a……05……19……0a……19……0f……19……01……19……02……86…1 …02… …02… …02…
…02…CPS/SDS/033
…02…831101…02……02…
TRAFFIC HANDLING
DETAILED DESIGN SPECIFICATION…02…ISSUE 1…02…CAMPS
4.2.3 T̲R̲A̲N̲S̲P̲O̲R̲T̲ ̲S̲U̲B̲P̲A̲C̲K̲A̲G̲E̲
4.2.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̲
4.2.3.1.1 I̲n̲t̲r̲o̲d̲u̲c̲t̲i̲o̲n̲
The transport subpackage (TRS) supplies the functions
which are necessary to initialize a specified Transport
Process. Furthermore it includes a number of auxiliary
functions common to different parts of the Process.
The description of the Transport Subpackage also serves
the purpose of giving an overview of a Transport Process
concerning Software Structure, Internal Communication
and Data Structure.
4.2.3.1.2 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲P̲r̲o̲c̲e̲s̲s̲
This section introduces the functions which support
a Transport Process within CAMPS.
Six types of Transport Processes are realized:
- TRC/POINT TO POINT
- NICS/TARE
- SCARS/CCIS
- PTR
- PTP
- OCR
The functional breakdown for each type of process is
depicted on figure 4.2.3.1.2-1.
Four main groups of functions have been identified:
- Transport Initialization
- Transport Control
- Outgoing Transport
- Incoming Transport
4.2.3.1.3 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲I̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲
When a Transport Process is created, the type of transport
and the number of channels/devices to be controlled
must be specified to the process.
The Transport Initialization includes all functions
which are necessary to initialize Transport Control,
Outgoing Transport and Incoming Transport in such a
way that they support the specified type of transport.
4.2.3.1.4 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲C̲o̲n̲t̲r̲o̲l̲
The Transport Control takes care of the superior control
functions concerning the outgoing and incoming transport.
(START ̲UP, CLOSE ̲DOWN, Timer Functions etc.)
The functions performed by Transport Control are initiated
by commands received from external subpackages through
a Channel Command Queue (CCQ).
Each channel/device within a Transport Process has
its own Transport Control working independently of
the others.
The Transport Control has its own subpackage "Transport
Control Subpackage" (Ref. 4.2.4), which supplies a
detailed functional description
4.2.3.1.5 I̲n̲c̲o̲m̲i̲n̲g̲ ̲T̲r̲a̲n̲s̲p̲o̲r̲t̲
The Incoming Transport includes the functions which
transfer the messages from IOS to the Analysis Processes.
A number of message lines are detected in order to
separate the message into the field groups which constitute
the External Message Format of a CIF.
Furthermore a number of error checks are performed.
Parameters describing the message are collected and
transferred to the Analysis together with the result
of the error check.
Each channel/device within a Transport Process has
its own Incoming Transport working independently of
the others.
The Incoming Transport has its own subpackage "Incoming
Transport Subpackage" (sec. 4.2.5) which gives a detailed
description of the functions for each type of Transport.
4.2.3.1.6 O̲u̲t̲g̲o̲i̲n̲g̲ ̲T̲r̲a̲n̲s̲p̲o̲r̲t̲
The Outgoing Transport includes the functions which
are closely related to the outgoing traffic.
Outgoing messages are received from the circuit queue
related to the subprocess and transferred to the IOS
for transmission to the external line/device.
The Outgoing Transport appends a number of lines such
as: start of message, text separators, end of message,
page identification etc. (ref. sec. 4.2.6).
The OTS may also generate and transmit Abbreviated
Service Messages (ASM) specified by the Transport Control.
The Outgoing Transport has its own subpackage "Outgoing
Transport Subpackage" (sec.4.2.6) which gives a detailed
functional description.
TRANSPORT PROCESS Figure 4.2.3.1.2-1
4.2.3.2 S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲
The basic unit in a Transport Process is a subprocess
taking care of all functions related to an external
channel or a stand alone devices (PTP/PTR/OCR).
When a Transport Process has been created it will start
up a subprocess for each channel/device which is to
be controlled by the process.
This section describes the principle software structure
related to a Transport Process. The basic components
of the software structure are shown on figure 4.2.3.2-1
to 4.2.3.2-6.
All functions within a Transport Subprocess are realized
by means of coroutines running under control of the
CSF Coroutine Monitor.
The software is supplied with a specific set of coroutines
for each type of Transport Process. During the initialization
of a Transport Process only the set of coroutines related
to the actual type of Transport is presented to the
Coroutine Monitor.
Each coroutine is constructed as a reentrant procedure.
This makes it possible for all subprocess within a
Transport Process to share the same code minimizing
the resources of memory.
4.2.3.2.1 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲I̲n̲i̲t̲
The purpose of the Transport Init module is to initialize
a Transport Process with the number of subprocesses
prescribed by the creating process, i.e. the "Parent
Process".
The initializing includes the following main tasks:
a) Init. of the data structure for each subprocess.
b) Setting up each subprocess with the coroutines
specific for the type of process to let them run
under control of the Coroutine Monitor.
c) Starting up the Coroutine Monitor.
4.2.3.2.2 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲A̲u̲x̲i̲l̲i̲a̲r̲y̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲
The Transport Auxiliary Functions include a number
of procedures which are common to the Transport Control,
Outgoing Transport and Incoming Transport.
4.2.3.2.3 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲.̲
The Transport Control Coroutine is responsible for
all functions related to the Transport Control of a
single Transport Subprocess. A specific Transport Control
Coroutine is supplied for each type of Transport.
Each of these coroutines is described in the Transport
Control Subpackage (see section 4.2.4).
4.2.3.2.4 O̲u̲t̲g̲o̲i̲n̲g̲ ̲T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲
The Outgoing Transport Coroutine is responsible for
all functions related to the outgoing transport of
a single Transport Subprocess. A specific Outgoing
Transport Coroutine is supplied for each type of transport
except for the PTR and the OCR.
Each of these coroutines is described in the Outgoing
Transport Subpackage (see section 4.2.6).
4.2.3.2.5 I̲n̲c̲o̲m̲i̲n̲g̲ ̲T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲
The Incoming Transport Coroutine is responsible for
all functions related to the incoming transport of
a single Transport Subprocess. A specific Incoming
Transport Coroutine is supplied for each type of transport
except for the PTP.
Each of these coroutines is described in the Incoming
Transport Subpackage (see section 4.2.5).
4.2.3.2.6 S̲u̲b̲p̲r̲o̲c̲e̲s̲s̲ ̲D̲a̲t̲a̲ ̲R̲e̲c̲o̲r̲d̲
The Subprocess Data Record defines all data structures
necessary to support the coroutines within a subprocess.
The Transport Subprocess Data Module includes definition
of a specific data record for each type of Transport
(see section 4.2.3.5).
All Data Records within a Transport Process is initialized
by the Transport Init module.
Figure 4.2.3.2-1 til -6
4.2.3.3 D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲
4.2.3.3.1 D̲y̲n̲a̲m̲i̲c̲a̲l̲ ̲P̲r̲o̲g̲r̲a̲m̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲
When a transport process is created it will first execute
the procedures supplied by the Transport Init module.
Hereby the process is divided into a number of subprocesses
corresponding the number of channels/devices, which
are to be controlled by the process.
For each subprocess a specific number of coroutines
are presented to the Coroutine Monitor (i.e. inserted
in the Ready List).
When the Transport Init procedures are all executed
the program control is handed over to the Coroutine
Monitor. From now on all coroutines within the process
are executed in the order they appear in the Ready
List of the Coroutine Monitor.
The coroutines within a subprocess exchange information
to synchronize the transport (ref. 4.2.3.3.2). Note
however that the subprocesses within a transport process
is independent of each other.
4.2.3.3.2 I̲n̲t̲e̲r̲n̲a̲l̲ ̲C̲o̲m̲m̲u̲n̲i̲c̲a̲t̲i̲o̲n̲
The communication logic within a Transport Subprocess
is realized by means of semaphores through which the
coroutines exchange operations.
To create a Transport Subprocess three semaphores have
been introduced with the following type definitions:
Type TC ̲OPSEM: COROUTINE ̲SEMAPHORE
OT ̲OPSEM: COROUTINE ̲SEMAPHORE
IT ̲OPSEM: COROUTINE ̲SEMAPHORE
The configurations of semaphores and coroutines are
shown on figure 4.2.3.3.-1 to 4.2.3.3.-6 for each type
of Transport Subprocess.
Send and receive functions related to semaphores are
performed by means of procedures defined within the
CSF Coroutine Monitor.
A detailed description of semaphore operations for
all types of Transport Subprocesses is given in section
4.2.3.7.
4.2.3.3.2.1 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲O̲p̲e̲r̲a̲t̲i̲o̲n̲ ̲S̲e̲m̲a̲p̲h̲o̲r̲e̲,̲ ̲T̲C̲ ̲O̲P̲S̲E̲M̲
̲
The main waiting point for the Transport Control Coroutine
(TC ̲COROUTINE) is the TC ̲OPSEM semaphore.
From here the TC ̲COROUTINE may receive operations from
the Outgoing Transport Coroutine (OT ̲COROUTINE) or
the Incoming Transport Coroutine (IT ̲COROUTINE).
Commands from the Channel Command Queue (CCQ) are
also received through the TC ̲OPSEM. In this case the
TC ̲COROUTINE first initiates a System Call
(RECEIVE ̲FIRST ̲QEL) and then associates the answer
to the TC ̲OPSEM.
When a command is available in the CCQ an operation
is sent to the TC ̲OPSEM telling the TC-COROUTINE that
a command is ready.
4.2.3.3.2.2 O̲u̲t̲g̲o̲i̲n̲g̲ ̲T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲O̲p̲e̲r̲a̲t̲i̲o̲n̲ ̲S̲e̲m̲a̲p̲h̲o̲r̲e̲,̲ ̲O̲T̲ ̲O̲P̲S̲E̲M̲
̲
The main waiting point for the Outgoing Transport Coroutine
(OT ̲COROUTINE) is the OT ̲OPSEM semaphore.
From here the OT ̲COROUTINE may receive operations from
the Transport Control Coroutine (TC ̲COROUTINE). This
makes it possible for the TC ̲COROUTINE to interfere
with the outgoing transport.
The outgoing messages to be transmitted on the external
channel are received from the circuit Queue (CIQ) through
the OT ̲OPSEM. In this case the OT ̲COROUTINE first initiates
a System Call (RECEIVE ̲FIRST ̲QEL) and then associates
the answer to OT ̲OPSEM.
When a message is available in the CIQ an operation
is sent to OT ̲OPSEM indicating that a message is ready
for transmission.
The OT ̲COROUTINE will pack the message lines into a
buffer which is sent to the IOS for outgoing transmission.
This is done by initiating a System Call (APPEND ̲BYTES)
and associating the answer to OT ̲OPSEM.
When the IOS has emptied the buffer an operation is
sent to OT ̲OPSEM telling the OT ̲COROUTINE that the
buffer is idle.
4.2.3.3.2.3 I̲n̲c̲o̲m̲i̲n̲g̲ ̲T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲O̲p̲e̲r̲a̲t̲i̲o̲n̲ ̲S̲e̲m̲a̲p̲h̲o̲r̲e̲,̲ ̲I̲T̲ ̲O̲P̲S̲E̲M̲
The main waiting point for the Incoming Transport Coroutine
(IT ̲COROUTINE) is the IT ̲OPSEM semaphore.
From here the IT ̲COROUTINE may receive commands from
the Transport Control Coroutine (TC ̲COROUTINE). This
makes it possible for the TC ̲COROUTINE to interfere
with the incoming transport.
The incoming messages from the IOS are also received
through IT ̲OPSEM. In this case the IT ̲COROUTINE initiates
a System Call (READ ̲BYTES) and associates the answer
to IT ̲OPSEM.
When the IOS has filled out a buffer with characters
from the external line, an operation will be sent to
IT ̲OPSEM, telling the IT ̲COROUTINE that the buffer
is ready.
4.2.3.3.2.4 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲S̲u̲b̲p̲r̲o̲c̲e̲s̲s̲ ̲O̲p̲e̲r̲a̲t̲i̲o̲n̲ ̲P̲o̲o̲l̲s̲
A transport subprocess is supplied with a specified
maximum of operations by means of which the internal
communication takes place.
The TRS ̲OP ̲POOL semaphore contains those of the operations
which at a certain moment are not being used in the
internal communication, i.e. the idle operations.
A coroutine takes out (receives) an idle operation
from the TRS ̲OP ̲POOL each time a message is to be sent
to another coroutine
An operation received from another coroutine is returned
to the TRS ̲OP ̲POOL when the information has been saved
or decoded.
Operations used for communication with IOS are stored
in IOC ̲OUT ̲POOL and IOC ̲INP ̲POOL. These operations
are connected to a specific buffer structure required
for transmitting/receiving a message through IOS. The
pools simplify the reservation of buffer structures.
The pools mentioned above are initialized with operations
by the Transport Init Module.
Internal communication
Figure 4.2.3.3-1 til 6.
4.2.3.4 M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
4.2.3.4.1 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲I̲n̲i̲t̲ ̲M̲o̲d̲u̲l̲e̲
4.2.3.4.1.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The Transport Init Module is called from the main module
"TRANSPORT" which contains the first statement to be
executed when a Transport Process has been created.
The Transport Init Module will initialize a Transport
Process with the type of transport(s) which are specified
by the "Parent Process" (i.e. COPSY).
The following main tasks are included:
a) Setting up a data record for each subprocess within
the process. (See figure 4.2.3.5.1-1).
The subprocess data record for each type of transport
is defined in sec. 4.2.3.5.
b) Presenting a coroutine description to CSF Coroutine
Monitor for each coroutine within a subprocess.
c) Handing over the running of coroutines to the Coroutine
Monitor.
4.2.3.4.1.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲ ̲f̲o̲r̲ ̲M̲a̲i̲n̲ ̲M̲o̲d̲u̲l̲e̲
Before the main module "TRANSPORT" is entered the "Parent
Process" shall specify the Transport Process by means
of the following register conventions:
R0: START ̲UP ̲ACTIVE ̲TYPE "Global Type"
R1: PROCESS ̲TYPE "Global Type"
R2: FIRST-̲SUBPROCESS ̲NO "Global Constant"
R3: NO ̲OF ̲SUBPROCESSES
The main module only contains one statement which calls
the "Transport Init Module".
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) TRANSPORT ̲START (PROCESS ̲TYPE, FIRST ̲SUBPROCESS
̲NO, NO ̲OF ̲SUBPROCESSES)
b) TRANSPORT ̲START (R0, R1, R2, R3, R4, R7, R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲ ̲f̲o̲r̲ ̲T̲R̲A̲N̲S̲P̲O̲R̲T̲ ̲S̲T̲A̲R̲T̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
As for main module (see above).
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
Undefined. (No return is made from TRANSPORT ̲START.
4.2.3.4.1.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
The components of the Transport Init Module are shown
on figure 4.2.3.4.1.3-1.
Note that the procedure PRE ̲INITIALIZATION is an external
procedure required by COPSY.
4.2.3.4.1.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The Transport Init Module makes use of the following
data type for the purpose of initialization:
TRS ̲INIT ̲PARAMS =
RECORD
TRANSPORT ̲TYPE :INTEGER
SUBPROCESS ̲TYPE :INTEGER
SUBPROCESS ̲DATA ̲PNT :INTEGER
SUBPROCESS ̲CNT :INTEGER
SUBPROCESS ̲ID :INTEGER
INIT ̲TRS ̲COMON :BOOLEAN
INIT ̲TYPE :BOOLEAN
END
4.2.3.4.1.4 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
The procedures within the Transport Init Module are
implemented with a design as given by the flowgram
4.2.3.4.1.5-1
MAINMODULE TRANSPORT
START
TRANSPORT ̲START (PROCESS ̲TYPE,
FIRST ̲SUBPROCESS ̲NO,
NO ̲OF ̲SUBPROCESSES)
END TRANSPORT
PROCEDURE ̲TRANSPORT ̲START (PROCESS ̲TYPE,
FIRST ̲SUBPROCESS ̲NO,
NO ̲OF ̲SUBPROCESSES)
START
PRE ̲INITIALIZATION
INIT ̲TRANSPORT ̲PROCESS (PROCESS ̲TYPE,
FIRST ̲SUBPROCESS ̲NO,
NO ̲OF ̲SUBPROCESSES)
CASE PROCESS ̲TYPE
OCR ̲S ? OCR ̲TC ̲COROUTINE
PTR ̲S ? PTR ̲TC ̲COROUTINE
PTP ̲S ? PTP ̲TC ̲COROUTINE
NICS ̲TARE ̲S ? NT ̲TC ̲COROUTINE
SCARS ̲CCIS ̲S ? SC ̲TC ̲COROUTINE
TRC ̲PTOP ̲S ? TP ̲TC ̲COROUTINE
END CASE
END TRANSPORT ̲START
FLOWGRAM 4.2.3.4.1.5-1
M̲o̲d̲u̲l̲e̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲:̲
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲T̲R̲A̲N̲S̲P̲O̲R̲T̲ ̲S̲T̲A̲R̲T̲
(R0 D
R1 C D SUBPROCESS ̲TYPE
R2 C D FIRST ̲SUBPROCESS ̲NO
R3 C D NO OF SUBPROCESSES
R4 D
R7 D INF FOR PREINITIALIZATION
R6) C D LINK
This procedure is called from the TRANSPORT MAIN MODULE
and activates initialization of the specified transport
process.
After initialization the procedure jumps to the first
Coroutine inserted into the READY ̲LIST of the CSF ̲COROUTINE
̲MONITOR.
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲T̲R̲A̲N̲S̲P̲O̲R̲T̲ ̲P̲R̲O̲C̲E̲S̲S̲
(R0 C D BOOLEAN "TYPE OF INIT"
R1 C D SUBPROCESS ̲TYPE
R2 C D FIRST SUBPROCESS NO
R3 C D NO OF SUBPROCESSES
R6) C D LINK
This procedure branch to the type of initialization
related to the subprocess type.
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲T̲P̲ ̲T̲R̲A̲N̲S̲P̲O̲R̲T̲
(R6) C D LINK
This procedure will initialize a TRC/POINT TO POINT
transport process with as many subproceses as indicated
in SUBPROCESS ̲CNT stored in TRS ̲INIT ̲PARAMS.
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲N̲T̲ ̲T̲R̲A̲N̲S̲P̲O̲R̲T̲
(R6) C D LINK
This procedure will initialize a NICS TARE Transport
process with as many subprocesses as indicated in SUBPROCESS
̲CNT stored in TRS ̲INIT ̲PARAMS.
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲S̲C̲ ̲T̲R̲A̲N̲S̲P̲O̲R̲T̲
(R6) C D LINK
This procedure will initialize a SCARS/CCIS transport
process with as many subproceses as indicated in SUBPROCESS
̲CNT stored in TRS ̲INIT ̲PARAMS.
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲P̲T̲P̲ ̲T̲R̲A̲N̲S̲P̲O̲R̲T̲
(R6) C D LINK
This procedure will initialize a PTP transport process
with as many subprocesses as indicated in SUBPROCESS
̲CNT stored in TRS ̲INIT ̲PARAMS.
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲P̲T̲R̲ ̲T̲R̲A̲N̲S̲P̲O̲R̲T̲
(R6) C D LINK
This procedure will initialize a PTR transport process
with as many subprocesses as indicated in SUBPROCESS
̲CNT stored in TRS ̲INIT ̲PARAMS.
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲O̲C̲R̲ ̲T̲R̲A̲N̲S̲P̲O̲R̲T̲
(R6) C D LINK
This procedure will initialize a OCR transport process
with as many subprocesses as indicated in SUBPROCESS
̲CNT stored in TRS ̲INIT ̲PARAMS.
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲T̲P̲ ̲D̲A̲T̲A̲
(R5 C K POINTER TO SUBPROCESS DATA RECORD
R6) C D LINK
This procedure will initialize the TRANSPORT ̲PARAMETERS
for a TRC/POINT TO POINT subprocess by inserting pointers
(references) to the other fields of the Subprocess
data record (i.e. TRS ̲TP ̲DATA). See datastructures
defined in sect. 4.2.3.5.2 and 4.2.3.5.7.10.
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲N̲T̲ ̲D̲A̲T̲A̲
(R5 C K POINTER TO SUBPROCESS DATA RECORD
R6) C D LINK
This procedure will initialize the TRANSPORT ̲PARAMETERS
for a NICS TARE subprocess by inserting pointers (references)
to the other fields of the subprocess data record (i.e.
TRS ̲NT ̲DATA). See datastructures defined in sect. 4.2.3.5.3
and 4.2.3.5.7.10.
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲S̲C̲ ̲D̲A̲T̲A̲
(R5 C K POINTER TO SUBPROCESS DATA RECORD
R6) C D LINK
This procedure will initialize the TRANSPORT ̲PARAMETERS
for a SCARS/CCIS subprocess by inserting pointers (references)
to the other fields of the subprocess data record (i.e.
TRS ̲SC ̲DATA). See datastructures defined in sect. 4.2.3.5.4
and 4.2.3.5.7.10.
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲P̲T̲P̲ ̲D̲A̲T̲A̲
(R5 C K POINTER TO SUBPROCESS DATA RECORD
R6) C D LINK
This procedure will initialize the TRANSPORT ̲PARAMETERS
for a PTP subprocess by inserting pointers (references)
to the other fields of the subprocess data record (i.e.
TRS ̲SC ̲DATA). See datastructures defined in sect. 4.2.3.5.5
and 4.2.3.5.7.10.
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲P̲T̲R̲ ̲D̲A̲T̲A̲
(R5 C K POINTER TO SUBPROCESS DATA RECORD
R6) C D LINK
This procedure will initialize the TRANSPORT ̲PARAMETERS
for a PTR subprocess by inserting pointers (references)
to the other fields of the subprocess data record (i.e.
TRS ̲SC ̲DATA). See datastructures defined in sect. 4.2.3.5.6
and 4.2.3.5.7.10.
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲O̲C̲R̲ ̲D̲A̲T̲A̲
(R5 C K POINTER TO SUBPROCESS DATA RECORD
R6) C D LINK
This procedure will initialize the TRANSPORT ̲PARAMETERS
for a OCR subprocess by inserting pointers (references)
to the other fields of the subprocess data record (i.e.
TRS ̲SC ̲DATA). See datastructures defined in sect. 4.2.3.5.6a
and 4.2.3.5.7.10.
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲T̲P̲ ̲C̲O̲R̲O̲U̲T̲I̲N̲E̲S̲
(R0 C K POINTER TO POOL OF COROUTINE RECORDS
R2 C K SUBPROCESS ̲ID
R6) C D LINK
This procedure initializes the CSF COROUTINE MONITOR
and inserts the coroutines related to a TRC/POINT TO
POINT subprocess into the ready list. (See data structure
in section 4.2.3.5.7.1).
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲N̲T̲ ̲C̲O̲R̲O̲U̲T̲I̲N̲E̲S̲
(R0 C K POINTER TO POOL OF COROUTINE RECORDS
R2 C K SUBPROCESS ̲ID
R6) C D LINK
This procedure initializes the CSF COROUTINE MONITOR
and inserts the coroutines related to a NICS TARE subprocess
into the ready list. (See data structure in section
4.2.3.5.7.1).
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲S̲C̲ ̲C̲O̲R̲O̲U̲T̲I̲N̲E̲S̲
(R0 C K POINTER TO POOL OF COROUTINE RECORDS
R2 C K SUBPROCESS ̲ID
R6) C D LINK
This procedure initializes the CSF COROUTINE MONITOR
and inserts the coroutines related to a SCARS/CCIS
subprocess into the ready list. (See data structure
in section 4.2.3.5.7.1).
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲P̲T̲P̲ ̲C̲O̲R̲O̲U̲T̲I̲N̲E̲S̲
(R0 C K POINTER TO POOL OF COROUTINE RECORDS
R2 C K SUBPROCESS ̲ID
R6) C D LINK
This procedure initializes the CSF COROUTINE MONITOR
and inserts the coroutines related to a PTP subprocess
into the ready list. (See data structure in section
4.2.3.5.7.1).
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲P̲T̲R̲ ̲C̲O̲R̲O̲U̲T̲I̲N̲E̲S̲
(R0 C K POINTER TO POOL OF COROUTINE RECORDS
R2 C K SUBPROCESS ̲ID
R6) C D LINK
This procedure initializes the CSF COROUTINE MONITOR
and inserts the coroutines related to a PTR subprocess
into the ready list. (See data structure in section
4.2.3.5.7.1).
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲O̲C̲R̲ ̲C̲O̲R̲O̲U̲T̲I̲N̲E̲S̲
(R0 C K POINTER TO POOL OF COROUTINE RECORDS
R2 C K SUBPROCESS ̲ID
R6) C D LINK
This procedure initializes the CSF COROUTINE MONITOR
and inserts the coroutines related to a OCR subprocess
into the ready list. (See data structure in section
4.2.3.5.7.1).
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲T̲R̲S̲ ̲S̲E̲M̲A̲P̲H̲O̲R̲E̲S̲
(R1 C D NO. OF SEMAPHORES
R4 C D POINTER TO SEMAPHORE POOL
R6) C D LINK
The procedure will initialize a specified number of
semaphores collected in a pool.
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲T̲R̲S̲ ̲O̲P̲ ̲P̲O̲O̲L̲
(R1 C D NO. OF OPERATIONS
R4 C D POINTER TO TRS ̲OP ̲POOL
R5 C D POINTER TO OPERATION POOL
R6 C D LINK
This procedure will insert a specified number of operations
into the TRS ̲OP ̲POOL. Data structure defined in section
4.2.3.5.7.6 and 4.2.3.5.7.2.
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲I̲O̲C̲ ̲P̲O̲O̲L̲
(R0 C D BUFFER SIZE (WORDS)
R1 C D NO. OF BUFFERS (OPERATIONS)
R2 C D POINTER TO BUFFER POOL
R4 C D POINTER TO XXX ̲IOC ̲POOL
R5 C D POINTER TO IOC OPERATION POOL
R6) C D LINK
The procedure is used for inserting a number of TRS
̲IOC ̲OPERATIONS into the INP ̲IOC ̲POOL and the OUT ̲IOC
̲POOL during the initialization of a transport process.
Before inserting of the TRS ̲IOC ̲OPERATION this is supplied
with a pointer to a buffer used for the communication
with the IOS system. From now on this buffer is always
related to the operation. Data structure defined in
section 4.2.3.5.7.6 and 4.2.3.5.7.2.
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲I̲T̲ ̲T̲R̲S̲ ̲T̲I̲M̲E̲R̲ ̲P̲R̲O̲F̲I̲L̲E̲
(R0 C K NO. OF TRS TIMERS
R1 C K NO. OF FLASH TIMERS
R2 C K POINTER TO TIMER TABLE
R3 C K POINER TO FLASH TABLE
R4 C K POINTER TO TIMER PROFILE
R6) C D LINK
The procedure will initialize the timer profile with
the parameters specified in R0-R3. Data structure defined
in section 4.2.3.5.7.7.
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲R̲E̲S̲E̲T̲ ̲D̲A̲T̲A̲ ̲R̲E̲C̲O̲R̲D̲
(R1 C D NUMBER OF WORDS TO BE RESET
R4 C D POINTER TO RECORD START
R6) C D LINK
This procedure will reset all the words of a specified
record.
FIGURE 4.2.3.4.1.3-1
4.2.3.5 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲P̲r̲o̲c̲e̲s̲s̲ ̲D̲a̲t̲a̲…06…1 …02… …02… …02… …02…
…02… …02… …02…
4.2.3.5.1 I̲n̲t̲r̲o̲d̲u̲c̲t̲i̲o̲n̲
The data area for a Transport Process may be divided
into two main parts (see figure 4.2.3.5.1-1).
a) C̲o̲m̲m̲o̲n̲ ̲P̲r̲o̲c̲e̲s̲s̲ ̲D̲a̲t̲a̲
Contains variables, constants and strings declared
within the program modules for a transport process.
This area is common to all subprocesses within the
process and has the same structure for all types
of transport.
b) Array of subprocess data records defined for the
type of transport which are to be controlled by
the process.
XX ̲PROC ̲DATA ARRAY (1..MAX ̲XX ̲PR ̲PROCESS) OF
TRS ̲XX ̲DATA
with TRS ̲XX ̲DATA equal to one of the following data
records:
TRS ̲TP ̲DATA : (TRC/P TO P)
TRS ̲NT ̲DATA : (NICS TARE)
TRS ̲SC ̲DATA : (SCARS/CCIS)
TRS ̲PTP ̲DATA : (PTP)
TRS ̲PTR ̲DATA : (PTR)
TRS ̲OCR ̲DATA : (OCR)
All data records include the entry "TRANSPORT PARAMETERS".
The other fields are of different type from record
to record.
The TRANSPORT PARAMETERS are initialized with reference
to the other fields of the data record.
All coroutines within a transport subprocess are reentrant
and access the data record by impressing the TRANSPORT
PARAMETERS on a specific address inserted into the
Coroutine Descriptions during the initialization.
When a coroutine is active, the address of its Coroutine
Description is stored into the external variable "RUNNING
COROUTINE" which is updated by CSF Coroutine Monitor.
(ref.fig.4.2.3.7.1-1).
FIGURE 4.2.3.5.1-1
4.2.3.5.2 D̲a̲t̲a̲ ̲R̲e̲c̲o̲r̲d̲ ̲f̲o̲r̲ ̲T̲R̲C̲/̲P̲O̲I̲N̲T̲ ̲T̲O̲ ̲P̲O̲I̲N̲T̲ ̲S̲u̲b̲p̲r̲o̲c̲e̲s̲s̲
TRS ̲TP ̲DATA =
RECORD
TRP : TRANSPORT ̲PARAMTERS;
COROUTINE ̲POOL : ARRAY (1..NO
̲OF
̲TP
̲COROUTINES)
OF
TRS
̲COROUTINE
̲DESCRIPTION
SEMAPHORE ̲POOL : ARRAY (1..NO
̲OF
̲TP
̲SEMAPHORES)
OF
COROUTINE
̲SEMAPHORE
OP ̲POOL ̲POOL : ARRAY (1..NO
̲OF
̲TP
̲OP
̲POOLS)
OF
TRS
̲OP
̲POOL
̲TYPE
OPERATION BUFFER : ARRAY (1..NO
̲OF
̲TP
̲OPERATIONS)
OF
TRS
̲OPERATION
INP ̲IOC ̲OPERATION :
ARRAY (1..MAX
̲TP
̲INP
̲BUF)
OF
TRS
̲IOC
̲OPERATION
OUT ̲IOC ̲OPERATION :
ARRAY (1..MAX
̲TP
̲OUT
̲BUF)
OF
TRS
̲IOC
̲OPERATION
INP ̲EMF ̲BUFFER : TP ̲INP ̲EMF
̲BUFFER
OUT ̲EMF ̲BUFFER : TP ̲OUT ̲EMF
̲BUFFER
INP ̲IOC ̲BUFFER : ARRAY (1..MAX
̲TP
̲INP
̲BUF)
OF
TP
̲INP
̲IOC
̲BUFFER
OUT ̲IOC ̲BUFFER : ARRAY (1..MAX
̲TP
̲OUT
̲BUF)
OF
TP
̲OUT
̲IOC
̲BUFFER
PENDING ̲ASM ̲TABLE :
ARRAY
(1..MAX
̲TP
̲PENDING
̲ASM)
OF
TRS
̲ASM
̲WAITING
̲TYPE
TIMER ̲TABLE : ARRAY (TP ̲TRS ̲TIMER
̲TYPE) OF TRS ̲TIMER
FLASH ̲TABLE : ARRAY (1..MAX ̲TP
̲FLASH) OF TRS ̲FLASH
̲TIMER
TIMER ̲PROFILE : TRS ̲TIMER ̲PROFILE
SYS ̲PARAMS : TRC ̲PTOP ̲PARAMETER
̲TYPE
QEL ̲ATTRIBUTES ̲POOL :
ARRAY (1..NO
̲OF
̲TP
̲QEL
̲ATTRIBUTES)
OF
QEL
̲ATTRIBUTES
CHN ̲PROFILE : CHANNEL ̲PROFILE
CHANNEL ̲STATE : ACP ̲127 ̲CHANNEL
̲STATUS
CIR ̲PROFILE : CIRCUIT ̲PROFILE
OUT ̲FIELD ̲LIST : TRS ̲OUT ̲FIELD
̲LIST ̲TYPE
INP ̲FIELD ̲LIST : TRS ̲INP ̲FIELD
̲LIST ̲TYPE
OUT ̲ACP ̲PARAM : TRS ̲OUT ̲ACP
̲PARAM ̲TYPE
INP ̲ACP ̲PARAM : TRS ̲INP ̲ACP
̲PARAM ̲TYPE
TRS ̲TMP ̲PARAM : TRS ̲TMP ̲TYPE
END DATA RECORD FOR TRC/POINT TO POINT
4.2.3.5.3 D̲a̲t̲a̲ ̲R̲e̲c̲o̲r̲d̲ ̲f̲o̲r̲ ̲N̲I̲C̲S̲ ̲T̲A̲R̲E̲ ̲S̲u̲b̲p̲r̲o̲c̲e̲s̲s̲
TRS ̲NT ̲DATA =
RECORD
TRP : TRANSPORT ̲PARAMTERS;
COROUTINE ̲POOL : ARRAY (1..NO
̲OF
̲NT
̲COROUTINES)
OF
TRS
̲COROUTINE
̲DESCRIPTION
SEMAPHORE ̲POOL : ARRAY (1..NO
̲OF
̲NT
̲SEMAPHORES)
OF
COROUTINE
̲SEMAPHORE
OP ̲POOL ̲POOL : ARRAY (1..NO
̲OF
̲NT
̲OP
̲POOLS)
OF
TRS
̲OP
̲POOL
̲TYPE
OPERATION BUFFER : ARRAY (1..NO
̲OF
̲NT
̲OPERATIONS)
OF
TRS
̲OPERATION
INP ̲IOC ̲OPERATION :
ARRAY (1..MAX
̲NT
̲INP
̲BUF)
OF
TRS
̲IOC
̲OPERATION
OUT ̲IOC ̲OPERATION :
ARRAY (1..MAX
̲NT
̲OUT
̲BUF)
OF
TRS
̲IOC
̲OPERATION
INP ̲EMF ̲BUFFER : NT ̲INP ̲EMF
̲BUFFER
OUT ̲EMF ̲BUFFER : NT ̲OUT ̲EMF
̲BUFFER
INP ̲IOC ̲BUFFER : ARRAY (1..MAX
̲NT
̲INP
̲BUF)
OF
NT
̲INP
̲IOC
̲BUFFER
OUT ̲IOC ̲BUFFER : ARRAY (1..MAX
̲NT
̲OUT
̲BUF)
OF
NT
̲OUT
̲IOC
̲BUFFER
PENDING ̲ASM ̲TABLE :
ARRAY
(1..MAX
̲NT
̲PENDING
̲ASM)
OF
TRS
̲ASM
̲WAITING
̲TYPE
TIMER ̲TABLE : ARRAY (NT ̲TRS ̲TIMER
̲TYPE) OF TRS ̲TIMER
FLASH ̲TABLE : ARRAY (1..MAX ̲NT
̲FLASH) OF TRS ̲FLASH
̲TIMER
TIMER ̲PROFILE : TRS ̲TIMER ̲PROFILE
SYS ̲PARAMS : NICS ̲TARE ̲PARAMETER
̲TYPE
QEL ̲ATTRIBUTES ̲POOL :
ARRAY (1..NO
̲OF
̲NT
̲QEL
̲ATTRIBUTES)
OF
QEL
̲ATTRIBUTES
CHN ̲PROFILE : CHANNEL ̲PROFILE
CHANNEL ̲STATE : ACP ̲127 ̲CHANNEL
̲STATUS
CIR ̲PROFILE : CIRCUIT ̲PROFILE
OUT ̲FIELD ̲LIST : TRS ̲OUT ̲FIELD
̲LIST ̲TYPE
INP ̲FIELD ̲LIST : TRS ̲INP ̲FIELD
̲LIST ̲TYPE
OUT ̲ACP ̲PARAM : TRS ̲OUT ̲ACP
̲PARAM ̲TYPE
INP ̲ACP ̲PARAM : TRS ̲INP ̲ACP
̲PARAM ̲TYPE
TRS ̲TMP ̲PARAM : TRS ̲TMP ̲TYPE
END DATA RECORD FOR NICS TARE
4.2.3.5.4 D̲a̲t̲a̲ ̲R̲e̲c̲o̲r̲d̲ ̲f̲o̲r̲ ̲S̲C̲A̲R̲S̲/̲C̲C̲I̲S̲ ̲S̲u̲b̲p̲r̲o̲c̲e̲s̲s̲
TRS ̲SC ̲DATA =
RECORD
TRP : TRANSPORT ̲PARAMETERS;
COROUTINE ̲POOL : ARRAY (1..NO
̲OF
̲SC
̲COROUTINES)
OF
TRS
̲COROUTINE
̲DESCRIPTION
SEMAPHORE ̲POOL : ARRAY (1..NO
̲OF
̲SC
̲SEMAPHORES)
OF
COROUTINE
̲SEMAPHORE
OP ̲POOL ̲POOL : ARRAY (1..NO
̲OF
̲SC
̲OP
̲POOLS)
OF
TRS
̲OP
̲POOL
̲TYPE
OPERATION BUFFER : ARRAY (1..NO
̲OF
̲SC
̲OPERATIONS)
OF
TRS
̲OPERATION
INP ̲IOC ̲OPERATION :
ARRAY (1..MAX
̲SC
̲INP
̲BUF)
OF
TRS
̲IOC
̲OPERATION
OUT ̲IOC ̲OPERATION :
ARRAY (1..MAX
̲SC
̲OUT
̲BUF)
OF
TRS
̲IOC
̲OPERATION
INP ̲EMF ̲BUFFER : SC ̲INP ̲EMF
̲BUFFER
OUT ̲EMF ̲BUFFER : SC ̲OUT ̲EMF
̲BUFFER
INP ̲IOC ̲BUFFER : ARRAY (1..MAX
̲SC
̲INP
̲BUF)
OF
SC
̲INP
̲IOC
̲BUFFER
OUT ̲IOC ̲BUFFER : ARRAY (1..MAX
̲SC
̲OUT
̲BUF)
OF
SC
̲OUT
̲IOC
̲BUFFER
PENDING ̲ASM ̲TABLE :
ARRAY
(1..MAX
̲SC
̲PENDING
̲ASM)
OF
TRS
̲ASM
̲WAITING
̲TYPE
TIMER ̲TABLE : ARRAY (SC ̲TRS ̲TIMER
̲TYPE) OF TRS ̲TIMER
FLASH ̲TABLE : ARRAY (1..MAX ̲SC
̲FLASH) OF TRS ̲FLASH
̲TIMER
TIMER ̲PROFILE : TRS ̲TIMER ̲PROFILE
SYS ̲PARAMS : SCARS ̲CCIS ̲PARAMETER
̲TYPE
QEL ̲ATTRIBUTES ̲POOL :
ARRAY (1..NO
̲OF
̲SC
̲QEL
̲ATTRIBUTES)
OF
QEL
̲ATTRIBUTES
CHN ̲PROFILE : CHANNEL ̲PROFILE
CHANNEL ̲STATE : ACP ̲127 ̲CHANNEL
̲STATUS
CIR ̲PROFILE : CIRCUIT ̲PROFILE
OUT ̲FIELD ̲LIST : TRS ̲OUT ̲FIELD
̲LIST ̲TYPE
INP ̲FIELD ̲LIST : TRS ̲INP ̲FIELD
̲LIST ̲TYPE
OUT ̲ACP ̲PARAM : TRS ̲OUT ̲ACP
̲PARAM ̲TYPE
INP ̲ACP ̲PARAM : TRS ̲INP ̲ACP
̲PARAM ̲TYPE
TRS ̲TMP ̲PARAM : TRS ̲TMP ̲TYPE
END DATA RECORD FOR NICS TARE
4.2.3.5.5 D̲a̲t̲a̲ ̲R̲e̲c̲o̲r̲d̲ ̲f̲o̲r̲ ̲P̲T̲P̲ ̲S̲u̲b̲p̲r̲o̲c̲e̲s̲s̲
TRS ̲PTP ̲DATA =
RECORD
TRP : TRANSPORT ̲PARAMETERS;
COROUTINE ̲RECORDS :
ARRAY (1..NO
̲OF
̲PTP
̲COROUTINES)
OF
TRS
̲COROUTINE
̲DESCRIPTION
SEMAPHORE ̲POOL : ARRAY (1..NO
̲OF
̲PTP
̲SEMAPHORES)
OF
COROUTINE
̲SEMAPHORE
OP ̲POOL ̲POOL : ARRAY (1..NO
̲OF
̲PTP
̲OP
̲POOLS)
OF
TRS
̲OP
̲POOL
̲TYPE
OPERATION BUFFER : ARRAY (1..NO
̲OF
̲PTP
̲OPERATIONS)
OF
TRS
̲OPERATION
OUT ̲IOC ̲OPERATION :
ARRAY (1..MAX
̲PTP
̲OUT
̲BUF)
OF
TRS
̲IOC
̲OPERATION
OUT ̲EMF ̲BUFFER : PTP ̲OUT ̲EMF
̲BUFFER
OUT ̲IOC ̲BUFFER : ARRAY (1..MAX
̲PTP
̲OUT
̲BUF)
OF
PTP
̲OUT
̲IOC
̲BUFFER
SYS ̲PARAMS : PUNCH ̲PARAMETER
̲TYPE
QEL ̲ATTRIBUTES ̲POOL :
ARRAY (1..NO
̲OF
̲PTP
̲QEL
̲ATTRIBUTES)
OF
QEL
̲ATTRIBUTES
DEV ̲PROFILE : DEVICE ̲PROFILE
OUT ̲FIELD ̲LIST : TRS ̲OUT ̲FIELD
̲LIST ̲TYPE
OUT ̲ACP ̲PARAM : TRS ̲OUT ̲ACP
̲PARAM ̲TYPE
TRS ̲TMP ̲PARAM : TRS ̲TMP ̲TYPE
END DATA RECORD FOR PTP
4.2.3.5.6 D̲a̲t̲a̲ ̲R̲e̲c̲o̲r̲d̲ ̲f̲o̲r̲ ̲P̲T̲R̲ ̲S̲u̲b̲p̲r̲o̲c̲e̲s̲s̲
TRS ̲PTR ̲DATA =
RECORD
TRP : TRANSPORT ̲PARAMETERS;
COROUTINE ̲RECORDS :
ARRAY (1..NO
̲OF
̲PTR
̲COROUTINES)
OF
TRS
̲COROUTINE
̲DESCRIPTION
SEMAPHORE ̲POOL : ARRAY (1..NO
̲OF
̲PTR
̲SEMAPHORES)
OF
COROUTINE
̲SEMAPHORE
OP ̲POOL ̲POOL : ARRAY (1..NO
̲OF
̲PTR
̲OP
̲POOLS)
OF
TRS
̲OP
̲POOL
̲TYPE
OPERATION BUFFER : ARRAY (1..NO
̲OF
̲PTR
̲OPERATIONS)
OF
TRS
̲OPERATION
INP ̲IOC ̲OPERATION :
ARRAY (1..MAX
̲PTR
̲IOC
̲BUF)
OF
TRS
̲IOC
̲OPERATION
INP ̲EMF ̲BUFFER : PTR ̲INP ̲EMF
̲BUFFER
INP ̲IOC ̲BUFFER : ARRAY (1..MAX
̲PTR
̲IOC
̲BUF)
OF
PTR
̲INP
̲IOC
̲BUFFER
SYS ̲PARAMS : DEC ̲READER ̲PARAMETER
̲TYPE
QEL ̲ATTRIBUTES ̲POOL :
ARRAY (1..NO
̲OF
̲PTR
̲QEL
̲ATTRIBUTES)
OF
QEL
̲ATTRIBUTES
DEV ̲PROFILE : DEVICE ̲PROFILE
INP ̲FIELD ̲LIST : TRS ̲INP ̲FIELD
̲LIST ̲TYPE
INP ̲ACP ̲PARAM : TRS ̲INP ̲ACP
̲PARAM ̲TYPE
TRS ̲TMP ̲PARAM : TRS ̲TMP ̲TYPE
END DATA RECORD FOR PTR
4.2.3.5.6a D̲a̲t̲a̲ ̲R̲e̲c̲o̲r̲d̲ ̲f̲o̲r̲ ̲O̲C̲R̲ ̲S̲u̲b̲p̲r̲o̲c̲e̲s̲s̲
TRS ̲OCR ̲DATA =
RECORD
TRP : TRANSPORT ̲PARAMETERS;
COROUTINE ̲RECORDS :
ARRAY (1..NO
̲OF
̲OCR
̲COROUTINES)
OF
TRS
̲COROUTINE
̲DESCRIPTION
SEMAPHORE ̲POOL : ARRAY (1..NO
̲OF
̲OCR
̲SEMAPHORES)
OF
COROUTINE
̲SEMAPHORE
OP ̲POOL ̲POOL : ARRAY (1..NO
̲OF
̲OCR
̲OP
̲POOLS)
OF
TRS
̲OP
̲POOL
̲TYPE
OPERATION BUFFER : ARRAY (1..NO
̲OF
̲OCR
̲OPERATIONS)
OF
TRS
̲OPERATION
INP ̲IOC ̲OPERATION :
ARRAY (1..MAX
̲OCR
̲IOC
̲BUF)
OF
TRS
̲IOC
̲OPERATION
INP ̲EMF ̲BUFFER : OCR ̲INP ̲EMF
̲BUFFER
INP ̲IOC ̲BUFFER : ARRAY (1..MAX
̲IOC
̲OUT
̲BUF)
OF
OCR
̲OUT
̲IOC
̲BUFFER
QEL ̲ATTRIBUTES ̲POOL :
ARRAY (1..NO
̲OF
̲OCR
̲QEL
̲ATTRIBUTES)
OF
QEL
̲ATTRIBUTES
DEV ̲PROFILE : DEVICE ̲PROFILE
INP ̲FIELD ̲LIST : TRS ̲INP ̲FIELD
̲LIST ̲TYPE
INP ̲ACP ̲PARAM : TRS ̲INP ̲ACP
̲PARAM ̲TYPE
TRS ̲TMP ̲PARAM : TRS ̲TMP ̲TYPE
END DATA RECORD FOR OCR
4.2.3.5.7 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲D̲a̲t̲a̲ ̲T̲y̲p̲e̲s̲
4.2.3.5.7.1 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Each coroutine within a transport subprocess is presented
to CSF Coroutine Monitor with a data record with the
following type: (See also figure 4.2.3.5.7.1-1).
TYPE
TRS ̲COROUTINE ̲DESCRIPTION =
RECORD
COMONITOR ̲DATA :COROUTINE ̲RECORD
DATA ̲START :INTEGER
STACK ̲PNT :0...MAX STACK
STACK :ARRAY(0..MAX ̲STACK) OF
INTEGER
END
S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲o̲f̲ ̲r̲e̲c̲o̲r̲d̲ ̲f̲i̲e̲l̲d̲s̲
COMONITOR ̲DATA :Working area for Coroutine Monitor.
Global Type.
DATA ̲START :Pointer to start of Transport
Parameters within the subprocess
data record
STACK ̲PNT :Pointer to local coroutine stack.
STACK ̲PNT always points at the
next empty position relative to
start of STACK.
STACK :Local stack area for coroutine.
Each time a procedure containing
a waiting-point is called the
return address shall be saved
on the local stack.
Figure 4.2.3.5.7.1-1
4.2.3.5.7.2 I̲n̲t̲e̲r̲n̲a̲l̲ ̲T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲O̲p̲e̲r̲a̲t̲i̲o̲n̲ ̲T̲y̲p̲e̲
The operations which are used for communication through
the Operation Semaphores are defined in the following
type:
TYPE TRS ̲OPERATION =
RECORD
COMONITOR ̲DATA :COROUTINE ̲OPERATION,
working are used by Coroutine
Monitor.
OP ̲TYPE :INTEGER,
bit 0..7:TRS ̲OPERATION
̲TYPE
bit 8..11: Syscall no
bit 12..13: Not used
bit 14: Indicates Syscall
Ready
bit 15: Indicates Pending
Syscall.
INFO1 :INTEGER,
Additional information
(see note)
INFO2 :INTEGER,
Additional information
(see note)
END
Note: Additional information is dependent on OP ̲TYPE.
4.2.3.5.7.3 I̲O̲C̲ ̲T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲O̲p̲e̲r̲a̲t̲i̲o̲n̲
The Outgoing-and the Incoming Transport make use of
operations to maintain pools of buffer structures necessary
for communication with IOC. The following structure
is used:
TYPE TRS ̲IOC ̲OPERATION =
RECORD
OP :TRS ̲OPERATION.
BUFFER ̲ID :BUFFER ̲ID ̲TYPE.
BUFFER ̲ADDR :INTEGER.
BUFFER ̲INDEX :INTEGER.
MAX ̲BUFFER :INTEGER
FILE :FILE ̲ADDRESS
BLE :BUFFER ̲LIST ̲ELEMENT
END
BUFFER ̲ID :Buffer identifier (ref.4.2.3.5.11.7)
BUFFER ̲ADDR :Start address to IOC ̲BUFFER related
to
operation
BUFFER ̲INDEX :Pointer to read/write location of IOC
̲
BUFFER
MAX ̲BUFFER :Max.no.of characters to be stored in
IOC ̲BUFFER
FILE :Global parameter for IOC
BLE :Global parameter for IOC
The data structure of the TRS ̲IOC ̲OPERATION is initialized
by the TRS ̲INIT program (see fig.
4.2.3.5.7.3.-1)…86…1 …02… …02… …02… …02… …02… …02… …02… …02…
Figure 4.2.3.5.7.3-1
4.2.3.5.7.4 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲F̲i̲e̲l̲d̲ ̲L̲i̲s̲t̲ ̲T̲y̲p̲e̲s̲
For reading/writing the External Message Format from/to
a CIF the following field list structures are used:
TYPE
OUT ̲FIELD ̲LIST ̲TYPE =
RECORD
NO ̲OF ̲FIELDS :INTEGER
ACP ̲PARAMS :FIELD ̲LIST ̲ELEMENT "Global
Type" HEADER :FIELD
̲LIST
̲ELEMENT
PREAMBLE :FIELD ̲LIST ̲ELEMENT
TEXT :FIELD ̲LIST ̲ELEMENT
END
INP ̲FIELD ̲LIST ̲TYPE =
RECORD
NO ̲OF ̲FIELDS :INTEGER
HEADER :FIELD ̲LIST ̲ELEMENT "Global
Type"
TEXT :FIELD ̲LIST ̲ELEMENT
CORRECTION :FIELD ̲LIST ̲ELEMENT
ACP ̲PARAMS :FIELD ̲LIST ̲ELEMENT
END
4.2.3.5.7.5 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲A̲C̲P̲-̲P̲a̲r̲a̲m̲e̲t̲e̲r̲ ̲T̲y̲p̲e̲s̲
OUT ̲ACP ̲PARAM ̲TYPE =
RECORD
TEXT :TEXT ̲PARAMS "Global
Type"
HEADER :HEADER ̲PARAM "Global
Type"
PILOT ̲MARK :BOOLEAN
END
INP ̲ACP ̲PARAM ̲TYPE =
RECORD
TEXT :TEXT ̲PARAMS "Global
Type"
HEADER :HEADER ̲PARAM "Global
Type" ERROR :TRS
̲ERR
̲LIST
END
TRS ̲ERR ̲LIST =
RECORD
NO ̲OF ̲ERRORS :INTEGER
ERROR ̲CODES :ARRAY(1..MAX ̲TRS ̲INP ̲ERRORS)
OF
ERROR ̲ELEMENTS "Global
Type"
END
4.2.3.5.7.6 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲O̲p̲e̲r̲a̲t̲i̲o̲n̲ ̲P̲o̲o̲l̲
Idle operations within a Transport Subprocess is queued
into a pool with the following data structure:
TYPE
TRS ̲OP ̲POOL ̲TYPE =
RECORD
NO ̲OF ̲OPERATIONS :INTEGER
Specifies no of idle operations
in pool
SEM :COROUTINE ̲SEMAPHORE
Pool semaphore
MAX ̲NO ̲OF ̲OP :INTEGER
Max.no of idle operations
stored in pool
OP ̲BUF ̲ARRAY ̲PNT :POINTER
Array of operations which
have been inserted into
the pool during initialization
OP ̲SIZE :INTEGER
Specifies size of operations
stored in pool.
END
4.2.3.5.7.7 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲T̲i̲m̲e̲r̲ ̲T̲a̲b̲l̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲
Each transport subprocess has its own timer table inplemented
by the following data structures (see also figure 4.2.3.5.7.7-1)
TYPE
TRS ̲TIMER :INTEGER
Bit(0-l4)specifies the timer
value, Bit 15 indicates if the
timer is idle or busy
FLASH ̲TIMER =
RECORD
VALUE :TRS ̲TIMER
Timer for Flash Acknowledge
TSN :INTEGER.
Binary representation of channel
serial no.related to timer.
MSG ̲REF :QEL ̲REFERENCE "Global"
Reference to Flash Msg. in circuit
queue.
END
TRS ̲TIMER ̲PROFILE =
RECORD
NO ̲OF ̲TRS ̲TIMERS :INTEGER
TRS ̲TIMER ̲TAB ̲ADR :INTEGER "POINTER"
NO ̲OF ̲FLASH ̲TIMERS :INTEGER
FLASH ̲TAB ̲ADR :INTEGER "POINTER"
END
Figure 4.2.3.5.7.7-1
4.2.3.5.7.8 D̲a̲t̲a̲ ̲B̲u̲f̲f̲e̲r̲s̲ ̲f̲o̲r̲ ̲M̲e̲s̲s̲a̲g̲e̲ ̲F̲l̲o̲w̲
To read/write a message from/to a CIF containing the
External Message Format (EMF),buffer types have been
defined for each type of Transport: TRC/POINT TO POINT
(TP), NICS TARE (NT), SCARS/CCIS (SC), PTP and PTR.
This is also the case for the buffers which are assigned
to IOC when a message is transmitted or received.
TYPE
TP ̲INP ̲EMF ̲BUFFER :ARRAY(1..MAX ̲TP ̲EMF ̲INPUT) OF
CHAR
TP ̲OUT ̲EMF ̲BUFFER :ARRAY(1..MAX ̲TP ̲EMF ̲OUTPUT)OF
CHAR
TP ̲INP ̲IOC ̲BUFFER :ARRAY(1..MAX ̲TP ̲IOC ̲INPUT) OF
CHAR
TP ̲OUT ̲IOC ̲BUFFER :ARRAY(1..MAX ̲TP ̲IOC ̲OUTPUT)OF
CHAR
NT ̲INP ̲EMF ̲BUFFER :ARRAY(1..MAX ̲NT ̲EMF ̲INPUT) OF
CHAR
NT ̲OUT ̲EMF ̲BUFFER :ARRAY(1..MAX ̲NT ̲EMF ̲OUTPUT)OF
CHAR
NT ̲INP ̲IOC ̲BUFFER :ARRAY(1..MAX ̲NT ̲IOC ̲INPUT) OF
CHAR
NT ̲OUT ̲IOC ̲BUFFER :ARRAY(1..MAX ̲NT ̲IOC ̲OUTPUT)OF
CHAR
SC ̲INP ̲EMF ̲BUFFER :ARRAY(1..MAX ̲SC ̲EMF ̲INPUT)OF
CHAR
SC ̲OUT ̲EMF ̲BUFFER :ARRAY(1..MAX ̲SC ̲EMF ̲OUTPUT)OF
CHAR
SC ̲INP ̲IOC ̲BUFFER :ARRAY(1..MAX ̲SC ̲IOC ̲INPUT) OF
CHAR
SC ̲OUT ̲IOC ̲BUFFER :ARRAY(1..MAX ̲SC ̲IOC ̲OUTPUT)OF
CHAR
PTP ̲OUT ̲EMF ̲BUFFER :ARRAY(1..MAX ̲PTP ̲EMF ̲OUTPUT)OF
CHAR
PTP ̲OUT ̲IOC ̲BUFFER :ARRAY(1..MAX ̲PTP ̲IOC ̲OUTPUT)OF
CHAR
PTR ̲INP ̲EMF ̲BUFFER :ARRAY(1..MAX ̲PTR ̲EMF ̲INPUT) OF
CHAR
PTR ̲INP ̲IOC ̲BUFFER :ARRAY(1..MAX ̲PTR ̲IOC ̲INPUT) OF
CHAR
OCR ̲INP ̲EMF ̲BUFFER :ARRAY(1..MAX ̲OCR ̲EMF ̲INPUT) OF
CHAR
OCR ̲INP ̲IOC ̲BUFFER :ARRAY(1..MAX ̲OCR ̲IOC ̲INPUT) OF
CHAR
4.2.3.5.7.9 A̲u̲x̲i̲l̲i̲a̲r̲y̲ ̲D̲a̲t̲a̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲s̲
a) T̲R̲S̲ ̲S̲E̲N̲D̲ ̲I̲N̲F̲O̲
Contains information for storing an outgoing message
line in the IOC ̲BUFFER.
TRS ̲SEND ̲INFO ̲TYPE =
RECORD
BUFFER ̲AVAILABLE :BOOLEAN
OPERATION :INTEGER
TRANSMIT :NO ̲YES
NO ̲OF ̲CHAR :INTEGER
SOURCE-ADDR :INTEGER
SOURCE ̲INDEX :INTEGER
MAX ̲INDEX :INTEGER
END
b) O̲U̲T̲G̲ ̲M̲S̲G̲ ̲C̲H̲A̲R̲A̲C̲T̲E̲R̲S̲
Specifies the number of characters contained in
an outgoing message.
TYPE
OUTG ̲MSG ̲CHAR ̲TYPE =
RECORD
MSG ̲PART ̲PNT :INTEGER
PILOT ̲B :INTEGER
PILOT ̲C ̲START :INTEGER
HEADING :INTEGER
PREAMBLE :INTEGER
TEXT :INTEGER
END
c) S̲A̲V̲E̲ ̲O̲P̲ ̲T̲Y̲P̲E̲
Structure of save area for information received
through an operation:
SAVE ̲OP ̲TYPE =
RECORD
ADDR :INTEGER
OP ̲TYPE :INTEGER
INFO1 :INTEGER
INFO2 :INTEGER
END
d) P̲E̲N̲D̲I̲N̲G̲ ̲A̲S̲M̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲T̲Y̲P̲E̲
This is used for control of PENDING ASM TRANSMISSION
REQUESTS inserted into PENDING ASM TABLE (which
is organized as cyclic buffer)
PENDING ̲ASM ̲TYPE =
RECORD
NUMBER Number of pending ASM
MAX ̲NUMBER Max number of pending ASM
MIN ̲PNT Pointer to last position of pending
ASM
INPUT ̲PNT Next insert position
OUTPUT ̲PNT Next output position
INTEGER
END
e) A̲S̲M̲ ̲W̲A̲I̲T̲I̲N̲G̲ ̲T̲Y̲P̲E̲
Indicates if an ASM request has arrived during
the transmission of a message.
ASM ̲WAITING ̲TYPE =
RECORD
ASM ̲TYPE :TRS ̲ASM ̲TYPES "ref. 4.2.3.5.11.2"
ASM ̲INFO :INTEGER
END
f) P̲A̲G̲I̲N̲G̲ ̲T̲Y̲P̲E̲
Includes parameters for dividing a long message
into pages
PAGING ̲TYPE =
RECORD
BUSY :BOOLEAN
FIRST ̲PAGE ̲CHAR ̲CNT :INTEGER
PAGE ̲LINE ̲CNT :INTEGER
PAGE ̲ID ̲CNT :INTEGER
END
g) P̲R̲E̲E̲M̲T̲I̲O̲N̲ ̲I̲N̲D̲I̲C̲A̲T̲O̲R̲
Specifies the type of preemption for the outgoing
traffic:
PREEMPTION ̲INDICATOR =
RECORD
TYPE :TRS ̲PREEMPTION ̲TYPE "ref. 4.2.3.5.11.4"
SEQUENCE :(MSG ̲PREEMP, TAPE ̲PREEMP)
END.
h) I̲N̲P̲U̲T̲ ̲L̲I̲N̲E̲
Specifies information about an IOC ̲RECORD received
through the System Call: Read Bytes.
INPUT ̲LINE ̲TYPE =
RECORD
START :BOOLEAN
LENGTH :INTEGER
IOC ̲TYPE :INTEGER
EMF ̲INDEX :INTEGER
END
i) C̲I̲F̲ ̲I̲D̲ ̲
Save area for CIF ̲ID during re-routing of messages
from circuit queue.
CIF ID =
RECORD
OLD : CIF ̲REFERENCE ̲NUMBER "Global Type"
NEW : CIF ̲REFERENCE ̲NUMBER
END
j) O̲U̲T̲G̲ ̲M̲S̲G̲ ̲F̲R̲A̲M̲I̲N̲G̲ ̲B̲U̲F̲F̲E̲R̲
Buffer structure for construction of message lines
in out-going messages.
OUTG ̲MSG ̲FRAMING ̲BUFFER : ARRAY (0..80) OF CHAR
4.2.3.5.7.10 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲P̲a̲r̲a̲m̲e̲t̲e̲r̲s̲
Transport Parameters are common to all types of transport
(ref. 4.2.3.5.1).
TYPE
TRANSPORT ̲PARAMETER =
RECORD
R̲E̲F̲E̲R̲E̲N̲C̲E̲S̲ ̲T̲O̲ ̲S̲E̲M̲A̲P̲H̲O̲R̲E̲S̲ ̲(̲M̲A̲I̲N̲ ̲W̲A̲I̲T̲I̲N̲G̲ ̲P̲O̲I̲N̲T̲S̲)̲
OT ̲OPSEM ̲PNT : POINTER
TC ̲OPSEM ̲PNT : POINTER
IT ̲OPSEM ̲PNT : POINTER
R̲E̲F̲E̲R̲E̲N̲C̲E̲S̲ ̲T̲O̲ ̲O̲P̲E̲R̲A̲T̲I̲O̲N̲ ̲P̲O̲O̲L̲S̲
TRS ̲OP ̲POOL ̲PNT : POINTER
OUT ̲IOC ̲POOL ̲PNT : POINTER
INP ̲IOC ̲POOL ̲PNT : POINTER
O̲P̲E̲R̲A̲T̲I̲O̲N̲ ̲S̲A̲V̲E̲ ̲A̲R̲E̲A̲S̲
OT ̲OPERATION : TRS ̲SAVE ̲OP ̲TYPE
TC ̲OPERATION : TRS ̲SAVE ̲OP ̲TYPE
IT ̲OPERATION : TRS ̲SAVE ̲OP ̲TYPE
S̲Y̲S̲C̲A̲L̲L̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲
INP ̲IOC ̲SEQUENCE : LONG
Q̲U̲E̲U̲E̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲
CCQ1 ̲QEL ̲REF :QEL ̲REFERENCE
CCQ2 ̲QEL ̲REF :QEL ̲REFERENCE
CIQ ̲QEL ̲REF :QEL ̲REFERENCE
CIQ ̲SUBQUEUE :INTEGER
REPORT ̲REF :POINTER
STOP ̲QEL ̲REF :QEL ̲REFERENCE
CCQ1 ̲QEL ̲ATTRIBUTE ̲PNT :POINTER
CCQ2 ̲QEL ̲ATTRIBUTE ̲PNT :POINTER
CIQ ̲QEL ̲ATTRIBUTE ̲PNT :POINTER
R̲E̲F̲E̲R̲E̲N̲C̲E̲S̲ ̲T̲O̲ ̲T̲R̲A̲N̲S̲P̲O̲R̲T̲ ̲D̲E̲S̲I̲G̲N̲A̲T̲O̲R̲S̲
TRS ̲INCOM ̲DESIGNATOR :POINTER
TRS ̲OUTG ̲DESIGNATOR :POINTER
P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲ ̲F̲O̲R̲ ̲R̲E̲A̲D̲I̲N̲G̲ ̲T̲H̲E̲ ̲E̲X̲T̲E̲R̲N̲A̲L̲ ̲M̲E̲S̲S̲A̲G̲E̲ ̲F̲O̲R̲M̲A̲T̲
OUT ̲FIELD ̲LIST ̲PNT :POINTER
OUT ̲ACP ̲PARAM ̲PNT :POINTER
OUT ̲EMF ̲ADDR :INTEGER
OUT ̲EMF ̲INDEX :INTEGER
MAX ̲OUT ̲EMF :INTEGER
NO ̲OF ̲EMF ̲BUF ̲CHAR :INTEGER
P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲ ̲F̲O̲R̲ ̲S̲T̲O̲R̲I̲N̲G̲ ̲T̲H̲E̲ ̲E̲X̲T̲E̲R̲N̲A̲L̲ ̲M̲E̲S̲S̲A̲G̲E̲ ̲F̲O̲R̲M̲A̲T̲
INP ̲FIELD ̲LIST ̲PNT :POINTER
INP ̲ACP ̲PARAM ̲PNT :POINTER
INP ̲EMF ̲ADDR :POINTER
INP ̲EMF ̲INDEX :INTEGER
EMF ̲VIEW ̲PNT :POINTER
EMF ̲VIEW ̲REF :QEL ̲REFERENCE
ITEM ̲REF :INTEGER
FIELD ̲PNT :INTEGER
MAX ̲INP ̲EMF :INTEGER
I̲O̲C̲ ̲C̲O̲N̲N̲E̲C̲T̲I̲O̲N̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲
IO ̲OFFER ̲ID :INTEGER
IO ̲CONNECTION :INTEGER
ACK ̲OFFER ̲ID :INTEGER
ACK ̲CONNECTION :INTEGER
L̲I̲N̲E̲ ̲S̲T̲A̲T̲E̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲
SPEED :INTEGER
ALPHABET :INTEGER
C̲H̲A̲N̲N̲E̲L̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲
LOGICAL ̲CHANNEL ̲NO :LOGICAL ̲CHANNEL ̲NO ̲TYPE
CHN ̲PROFILE ̲PNT :POINTER
CHANNEL ̲STATE ̲PNT :POINTER
D̲E̲V̲I̲C̲E̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲
LOGICAL ̲DEVICE ̲NO :LOGICAL ̲DEVICE ̲NO ̲TYPE
DEV ̲PROFILE ̲PNT :POINTER
C̲I̲R̲C̲U̲I̲T̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲
CIR ̲PROFILE ̲PNT :POINTER
CHANNELS ̲PR ̲CIRCUIT :INTEGER
TRS ̲DE ̲RI :DE ̲RI ̲TYPE
T̲R̲A̲N̲S̲M̲I̲S̲S̲I̲O̲N̲ ̲S̲E̲R̲I̲A̲L̲ ̲N̲U̲M̲B̲E̲R̲
PREVIOUS ̲OUTG ̲TSN :INTEGER
OUTG ̲TSN ̲RESET :INTEGER
TSN ̲WRAP ̲AROUND :BOOLEAN
PREVIOUS ̲INCOM ̲TSN :INTEGER
EXPECTED ̲INCOM ̲TSN :INTEGER
INCOM ̲TSN ̲RESET :INTEGER
T̲I̲M̲I̲N̲G̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲
TIMER ̲PROFILE ̲PNT :POINTER
DATE ̲TIME :TIME ̲TYPE
STOP ̲TIME :TIME ̲TYPE
P̲A̲G̲I̲N̲G̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲
PAGE ̲PARAM :TRS ̲PAGING ̲TYPE
P̲R̲E̲E̲M̲P̲T̲I̲O̲N̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲
PREEMPT :TRS ̲PREEMPTION ̲INDICATOR
T̲R̲A̲N̲S̲M̲I̲S̲S̲I̲O̲N̲ ̲A̲U̲X̲I̲L̲L̲A̲R̲Y̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲
MSG ̲FRAME ̲BUF :ARRAY(0..80) OF BYTE
NO ̲OF ̲FL1 ̲SPACES :INTEGER
TRS ̲BELL ̲SIGNAL :BOOLEAN
TRS ̲SEND ̲INFO :TRS ̲SEND ̲INFO ̲TYPE
OUTG ̲MSG ̲CHARACTERS :TRS ̲OUTG ̲MSG ̲CHAR ̲TYPE
ASM ̲WAITING :TRS ̲ASM ̲WAITING ̲TYPE
RETRANS ̲NO :INTEGER
OUTG ̲MSG ̲CHAR ̲CNT :INTEGER
R̲E̲C̲E̲I̲V̲I̲N̲G̲ ̲A̲U̲X̲I̲L̲L̲A̲R̲Y̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲
INPUT ̲LINE :TRS ̲INPUT ̲LINE ̲TYPE
INPUT ̲MSG ̲CHAR ̲CNT :INTEGER
INPUT ̲LINE ̲CHAR ̲CNT :INTEGER
IDENT ̲CHAR :INTEGER
READ ̲MSG ̲LINE :BOOLEAN
INPUT ̲LINE ̲ACCEPTED :BOOLEAN
RECEIVED ̲DESIGNATOR :LONG
INPUT ̲BUFFER ̲CC :INTEGER
OLD ̲LINE ̲TYPE :INTEGER
C̲O̲N̲T̲R̲O̲L̲ ̲M̲A̲S̲K̲S̲ ̲F̲O̲R̲ ̲T̲C̲S̲
TRS ̲STATE ̲MASK :BITMASK
COMMAND ̲CTR ̲MASK :BITMASK
STOP ̲CTR ̲MASK :BITMASK
TIMEOUT ̲MASK :BITMASK
C̲O̲N̲T̲R̲O̲L̲ ̲M̲A̲S̲K̲S̲ ̲F̲O̲R̲ ̲O̲T̲S̲
OUTG ̲STATE ̲MASK :BITMASK
OUTG ̲MSG ̲CTR ̲MASK :LONG
OUTG ̲COLLECT ̲MASK :BITMASK
OUTG ̲TIMER ̲MASK :BITMASK
C̲O̲N̲T̲R̲O̲L̲ ̲M̲A̲S̲K̲S̲ ̲F̲O̲R̲ ̲I̲T̲S̲
INCOM ̲STATE ̲MASK :BITMASK
INPUT ̲CTR ̲MASK :BITMASK
FLX ̲CTR ̲MASK :BITMASK
INPUT ̲ERROR ̲MASK :BITMASK
P̲E̲N̲D̲I̲N̲G̲ ̲A̲S̲M̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲B̲L̲O̲C̲K̲
PENDING ̲ASM :PENDING ̲ASM ̲TYPE
R̲E̲F̲E̲R̲E̲N̲C̲E̲ ̲T̲O̲ ̲T̲M̲P̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲
TRS ̲TMP ̲PARAM ̲PNT :POINTER
T̲R̲A̲N̲S̲P̲O̲R̲T̲ ̲S̲Y̲S̲T̲E̲M̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲
SYS ̲POINTER :POINTER
I̲N̲I̲T̲I̲A̲L̲I̲Z̲A̲T̲I̲O̲N̲ ̲I̲N̲D̲I̲C̲A̲T̲O̲R̲
TRS ̲INIT ̲INDICATOR :BOOLEAN
4.2.3.5.8 L̲o̲c̲a̲l̲ ̲T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲C̲o̲n̲s̲t̲a̲n̲t̲s̲
T̲R̲C̲ ̲/̲ ̲P̲O̲I̲N̲T̲ ̲T̲O̲ ̲P̲O̲I̲N̲T̲
CONST
MAX ̲TP ̲EMF ̲INPUT =5l2 "characters"
MAX ̲TP ̲EMF ̲OUTPUT =512 "characters"
MAX ̲TP ̲IOC ̲INPUT = 80 "characters"
MAX ̲TP ̲IOC ̲OUTPUT = 80 "characters"
MAX ̲TP ̲INP ̲BUF = 2
MAX ̲TP ̲OUT ̲BUF = 2
MAX ̲TP ̲FLASH = 25
NO ̲OF ̲TP ̲OPERATIONS = 7
NO ̲OF ̲TP ̲SEMAPHORE = 3
NO ̲OF ̲TP ̲COROUTINES = 3
NO ̲OF ̲TP ̲OP ̲POOLS = 3
TIME ̲LIMIT ̲SELF ̲CHECK = 15 "Minutes"
TIME ̲LIMIT ̲ZID ̲ASM = 15 "Minutes"
MAX ̲TP ̲PENDING ̲ASM = 8
N̲I̲C̲S̲ ̲T̲A̲R̲E̲
CONST
MAX ̲NT ̲EMF ̲INPUT =512 "Characters"
MAX ̲NT ̲EMF ̲OUTPUT =512 "Characters"
MAX ̲NT ̲IOC ̲INPUT =256 "Characters"
MAX ̲NT ̲IOC ̲OUTPUT =256 "Characters"
MAX ̲NT ̲INP ̲BUF = 2
MAX ̲NT ̲OUT ̲BUF = 2
NO ̲OF ̲NT ̲OPERATIONS = 11
NO ̲OF ̲NT ̲SEMAPHORES = 3
NO ̲OF ̲NT ̲COROUTINES = 3
NO ̲OF ̲NT ̲POOLS = 3
TIME ̲LIMITS ̲ZID ̲ASM = 15 "Minutes"
MAX ̲NT ̲PENDING ̲ASM = 6
S̲C̲A̲R̲S̲/̲C̲C̲I̲S̲
CONST
MAX ̲SC ̲EMF ̲INPUT =512 "Characters"
MAX ̲SC ̲EMF ̲OUTPUT =512 "Characters"
MAX ̲SC ̲IOC ̲INPUT =512 "Characters"
MAX ̲SC ̲IOC ̲OUTPUT =512 "Characters"
MAX ̲SC ̲INP ̲BUF = 2
MAX ̲SC ̲OUT ̲BUF = 2
NO ̲OF ̲SC ̲OPERATIONS = 11
NO ̲OF ̲SC ̲SEMAPHORES = 3
NO ̲OF ̲SC ̲COROUTINES = 3
NO ̲OF ̲SC ̲OP ̲POOLS = 3
MAX ̲SC ̲PENDING ̲ASM = 2
P̲T̲P̲
CONST
MAX ̲PTP ̲EMF ̲OUTPUT =512 "Characters"
MAX ̲PTP ̲IOC ̲OUTPUT = 70 "Characters"
MAX ̲PTP ̲IOC ̲BUF = 2
NO ̲OF ̲PTP ̲COROUTINES = 2
NO ̲OF ̲PTP ̲SEMAPHORES = 2
NO ̲OF ̲PTP ̲OPERATIONS = 6
NO ̲OF ̲PTP ̲OP ̲POOLS = 2
P̲T̲R̲
CONST
MAX ̲PTR ̲EMF ̲INPUT =512 "Characters"
MAX ̲PTR ̲IOC ̲INPUT = 70 "Characters"
MAX ̲PTR ̲IOC ̲BUF = 2
NO ̲OF ̲PTR ̲COROUTINES = 2
NO ̲OF ̲PTR ̲SEMAPHORES = 2
NO ̲OF ̲PTR ̲OPERATIONS = 4
NO ̲OF ̲PTR ̲OP ̲POOL = 2
O̲C̲R̲
CONST
MAX ̲OCR ̲EMF ̲OUTPUT =512 "Characters"
MAX ̲OCR ̲IOC ̲OUTPUT = 70 "Characters"
MAX ̲PTP ̲IOC ̲BUF = 2
NO ̲OF ̲OCR ̲COROUTINES = 2
NO ̲OF ̲OCR ̲SEMAPHORES = 2
NO ̲OF ̲OCR ̲OPERATIONS = 4
NO ̲OF ̲OCR ̲OP ̲POOLS = 2
4.2.3.5.9 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲Q̲u̲e̲u̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
4.2.3.5.9.1 T̲R̲C̲/̲P̲ ̲T̲O̲ ̲P̲,̲ ̲N̲I̲C̲S̲ ̲T̲A̲R̲E̲,̲ ̲S̲C̲A̲R̲S̲/̲C̲C̲I̲S̲ ̲a̲n̲d̲ ̲P̲T̲P̲
VAR
TRS ̲CIQ ̲REF, "Circuit Queue"
TRS ̲CCQ1 ̲REF, "Channel Command Queue(1)"
TRS ̲CCQ2 ̲REF, "Channel Command Queue(2)"
TRS ̲ANQ ̲REF, "Analysis Queue"
TRS ̲COQ ̲REF, "Conversion Queue"
TRS ̲LOG ̲REF, "Queue for Log"
TRS ̲REPORT ̲REF, "Queue for Reports"
TRS ̲UNK ̲ASM ̲REF, "Queue for Unknown ASM"
TRS ̲SAR ̲REF: QUEUE ̲REFERENCE "Storage-Queue"
The queue references take the following values:
INIT
"Queue Reference =Mainqueue, Subqueue"
TRS ̲CIQ ̲REF =TRS-CIQ, TRS ̲MAIN ̲Q
TRS ̲CCQ1 ̲REF =TRS ̲CCQ, TRS ̲SUB ̲Q1
TRS ̲CCQ2 ̲REF =TRS ̲CCQ, TRS ̲SUB ̲Q2
TRS-ANQ-REF =TRS ̲SYS ̲Q*256+TRS ̲ANQ,TRS ̲SUB ̲Q3
TRS ̲COQ ̲REF =TRS ̲SYS ̲Q*256+TRS ̲COQ,TRS ̲SUB ̲Q3
TRS ̲LOG ̲REF =TRS ̲SYS ̲Q*256+TRS ̲SYSTEM ̲Q,
TRS ̲SUB ̲Q2
TRS ̲REPORT ̲REF =TRS ̲SYS ̲Q*256+TRS ̲SPIP ̲REPQ,
TRS ̲SUB ̲Q1
TRS ̲UNK ̲ASM ̲REF =TRS ̲SYS ̲Q*256+TRS ̲SPIP ̲REPQ,
TRS ̲SUB ̲Q4
TRS ̲SAR ̲REF =TRS-̲SYS-̲Q*256+TRS ̲ISQ,TRS ̲SUB ̲Q1
Note: Main queue is a global scalar type.
4.2.3.5.9.2 P̲T̲R̲ (OCR)
VAR
TRS ̲PTR ̲CCQ ̲REF, "Channel Command Queue"
TRS ̲PTR ̲ANQ ̲REF, "Analysis Queue"
TRS ̲PTR ̲REP ̲REF: QUEUE ̲REFERENCE "Report Queue"
The queue references take the following values:
INIT (The values below are also used by the OCR transport)
"Queue Reference =Mainqueue, Subqueue"
TRS ̲PTR ̲CCQ ̲REF =PTR ̲TRS ̲CCQ, TRS ̲SUB ̲Q1
TRS ̲PTR ̲ANQ ̲REF =PTR ̲TRS ̲ANQ, TRS ̲SUB ̲Q3
TRS ̲PTR ̲REP ̲REF =PTR ̲TRS ̲SPIP ̲REPQ, TRS ̲SUB ̲Q1
Note: Main queue is a global scalar type.
4.2.3.5.10 C̲I̲F̲ ̲F̲i̲e̲l̲d̲ ̲I̲n̲f̲o̲r̲m̲a̲t̲i̲o̲n̲ ̲f̲o̲r̲ ̲I̲n̲c̲o̲m̲i̲n̲g̲ ̲M̲e̲s̲s̲a̲g̲e̲s̲
Incoming Messages are stored in a CIF with the following
global Field Specification Types:
TYPE
FIELD ̲INFO ̲ELEMENT =
RECORD
REFERENCED :BOOLEAN
WRITE ̲ACCESS :BOOLEAN
PERMANENT :BOOLEAN
ALLOCATED ̲LENGTH :FIELD ̲LENGTH
USED ̲LENGTH :FIELD ̲LENGTH
FIELD ̲STATUS :(NOT ̲EXISTING,INCLUDED ̲FROM,
PREDECESSOR,NEW ̲FIELD)
END
FIELD ̲INFORMATION=ARRAY(NO ̲OF ̲FIELDS)OF FIELD ̲INFO
̲ELEMENT
A transport subprocess makes use of the following configuration:
VAR
TRS ̲FIELD :FIELD ̲INFORMATION
INIT
TRS ̲FIELD (1) = TRUE, TRUE, TRUE, 512, 0, NEW ̲FIELD
TRS ̲FIELD (2) = TRUE, TRUE, TRUE, 512, 0, NEW ̲FIELD
TRS ̲FIELD (3) = TRUE, TRUE, TRUE,1024, 0, NEW ̲FIELD
TRS ̲FIELD (4) = TRUE, TRUE, TRUE, 0, 0, NEW ̲FIELD
TRS ̲FIELD (5) = TRUE, TRUE, TRUE,1024, 0, NEW ̲FIELD
TRS ̲FIELD (6) = TRUE, TRUE, TRUE, 512, 0, NEW ̲FIELD
TRS ̲FIELD (7) = TRUE, TRUE,FALSE, 512, 0, NEW ̲FIELD
TRS ̲FIELD (8) = TRUE, TRUE,FALSE, 0, 0, NEW ̲FIELD
TRS ̲FIELD (9) = TRUE, TRUE,FALSE, 512, 0, NEW ̲FIELD
TRS ̲FIELD(10) = TRUE, TRUE,FALSE,1024, 0, NEW ̲FIELD
TRS ̲FIELD(11) = TRUE, TRUE,FALSE, 0, 0, NEW ̲FIELD
TRS ̲FIELD(l2) =FALSE,FALSE,FALSE, 0, 0, NOT ̲EXISTING
4.2.3.5.11 L̲o̲c̲a̲l̲ ̲T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲S̲c̲a̲l̲a̲r̲ ̲T̲y̲p̲e̲s̲
4.2.3.5.11.1 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲O̲p̲e̲r̲a̲t̲i̲o̲n̲ ̲T̲y̲p̲e̲s̲
TYPE
TRS ̲OPERATION ̲TYPE =
(PRIM ̲COM, "Primary Command from CCQ"
SEC ̲COM, "Secondary Command from CCQ"
INP ̲CLOSE ̲ACK, "ITS Close Down Acknowledge"
OUT ̲CLOSE ̲ACK, "OTS Close Down Acknowledge"
IDENT ̲CHAR, "140 identical characters detected"
ASM ̲ACK, "ASM transmitted"
SEND ̲ZID, "Transmit ZID ASM"
ACK ̲REC, "Transaction Acknowledge"
SEND ̲ACK, "Send Transaction Acknowledge"
OUTG ̲MSG, "Outgoing Message from CIQ"
TR ̲ASM, Transmit ASM"
TRS ̲LOG ̲ACK, "Log Acknowledge"
TRS ̲PREEMPT "Transport Preemption
TRS ̲START, "Start Up"
TRS ̲STOP, "Stop Transport"
TRS ̲CLOSE, "Close Down"
IOC ̲REPLY) "Reply from IOC"
4.2.3.5.11.2 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲A̲S̲M̲ ̲T̲y̲p̲e̲s̲
TYPE
TRS ̲ASM ̲TYPE =
(ACP ̲ZBC, "Identical Characters"
ACP ̲FLASH, "Flash Receipt"
ACP ̲SELF ̲CHK, "Self Addressed Channel Check"
ACP ̲ZID, "TSN Check Message"
ACP ̲QRV, "Open for Incoming Traffic"
ACP ̲QRT, "Close for Incoming Traffic"
ACP ̲ZBZ ̲N, "Test Message Reply"
ACP ̲INT ̲ZBZ ̲TP, "Test Message(TRC/P TO P)
ACP ̲INT ̲ZBZ ̲NT, "Test Message (NICS TARE)"
ACP ̲CONT ̲MSG, "Continuity Message"
ACP ̲FINAL ̲MSG, "Final Number Message (ACP)"
ACP ̲CHAN ̲CHK ̲MSG, "Channel Check Message (ACP)"
E1 ̲FINAL ̲MSG, "Final Number Message (E1)"
E1 ̲CHN ̲CHK ̲MSG, "Channel Check Message (E1)"
TRANS ̲ACK), "Transaction Acknowledge"
The formats of all ASM types are included in section
4.2.6.1.4
4.2.3.5.11.3 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲T̲i̲m̲e̲r̲ ̲T̲y̲p̲e̲s̲
TYPE
TP ̲TRS ̲TIMER ̲TYPE =
(TP ̲INCOM, "TRC/PTOP Incoming Timer"
TP ̲SELFCHECK, "TRC/PTOP Selfcheck Timer"
TP ̲ZIDASM) "TRC/PTOP ZID ASM Timer"
NT ̲TRS ̲TIMER ̲TYPE =
(NT ̲INCOM, "NICS TARE Incoming Timer"
NT ̲OUTG, "NICS TARE Outgoing Timer"
NT ̲ZIDASM) "NICS TARE ZID ASM Timer"
SC ̲TRS ̲TIMER ̲TYPE =
(SC ̲INCOM, "SCARS)CCIS Incoming Timer"
SC ̲TRACK, "SCARS/CCIS Transaction Timer"
SC ̲ZIDASM) "SCARS/CCIS ZID ASM Timer"
TRS ̲TIMEOUT ̲TYPE =
(NO ̲TIMEOUT, TRS ̲TIMEOUT, FLASH ̲TIMEOUT)
TRS ̲TIMEOUT ̲ID =
(TRS ̲PERIODIC, TRS ̲PREEMPTION)
4.2.3.5.11.4 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲P̲r̲e̲e̲m̲p̲t̲i̲o̲n̲ ̲T̲y̲p̲e̲s̲
TYPE
TRS ̲PREEMPTION ̲TYPES =
(NO ̲PREEMPT,
STOP ̲PREEMPT, "Unconditional Preemption"
FLASH ̲PREEMPT) "Flash notification received"
4.2.3.5.11.5 O̲u̲t̲g̲o̲i̲n̲g̲ ̲T̲r̲a̲n̲s̲m̲i̲s̲s̲i̲o̲n̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲T̲y̲p̲e̲
OUTG ̲CTR ̲TYPE =
(RETRANSMIT, "Retransmit Message"
NEW ̲MSG, "Transmit New Message"
IOC ̲BUF, "IOC Buffer returned from IOC"
NEW ̲TRACK, "Transmit Transaction Acknowledge"
NEW ̲ASM) "Transmit ASM"
4.2.3.5.11.6 I̲n̲c̲o̲m̲i̲n̲g̲ ̲M̲e̲s̲s̲a̲g̲e̲ ̲L̲i̲n̲e̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲T̲y̲p̲e̲
READ ̲MSG ̲LINE ̲RESULT =
(COMPLETE ̲LINE,
IOC ̲BUFFER ̲EMPTY,
EMF ̲BUFFER ̲FULL)
4.2.3.5.11.7 I̲O̲C̲ ̲B̲u̲f̲f̲e̲r̲ ̲I̲d̲e̲n̲t̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
BUFFER ̲ID ̲TYPE =
(DONT ̲CARE,
EOM ̲BUFFER, "End of Message"
NICS ̲TARE ̲ACK) "Acknowledge to NICS TARE"
4.2.3.5.11.8 F̲o̲r̲m̲a̲t̲ ̲L̲i̲n̲e̲ ̲D̲e̲t̲e̲c̲t̲i̲o̲n̲ ̲T̲y̲p̲e̲
TYPE
TRS ̲FLX ̲TYPE=(FL1, FL3, FL4, FL6, FL10, FL11, FL13,
FL14,
FL15,
FL16)
4.2.3.5.11.9 M̲e̲s̲s̲a̲g̲e̲ ̲L̲i̲n̲e̲ ̲G̲e̲n̲e̲r̲a̲t̲i̲o̲n̲ ̲T̲y̲p̲e̲
TRS ̲MSG ̲LINE ̲TYPE=
(NT ̲SOM, "Start of Message, NICS TARE"
SC ̲SOM, "Start of Message, SCARS/CCIS"
TAPE ̲START, "Tape Start Sequence"
ACP ̲FL1, "ACP 127 Format Line 1"
PTP ̲FL1 "Format Line 1 for PTP"
E1-FLB "Format line B for msg. in E1
format
PILOT ̲FL1, "Format line 1A for ACP Pilot
ACP ̲BT, "Text Separator"
ACP ̲FL14, "ACP 127 Format Line 14"
ACP ̲FL15, "ACP 127 Format Line 15"
ACP ̲FL16, "ACP 127 Format Line 16"
SC ̲FL16, "Format Line 16 for SCARS/CCIS
EOM, "End of Message, NICS TARE and
SCARS/CCIS
TAPE ̲END, "Tape End Sequence"
PAGE ̲ID, "Page Id Sequence"
MSG ̲PREEMP, "Message Preemption"
TAPE ̲PREEMP, "Tape Preemption"
PILOT ̲FL4 "Format Line 1A for Pilot
4.2.3.5.11.10 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲I̲n̲t̲e̲r̲n̲a̲l̲ ̲E̲r̲r̲o̲r̲ ̲T̲y̲p̲e̲s̲
The following types are used to identify the Internal
Errors detected within a Transport Subprocess and transmitted
to GAQ by means of the external procedure SEND ̲GARBLE
(Ref.CPS/ICD/009, sec. 4.3.7).
TRS ̲INTERNAL ̲ERROR ̲TYPE =
(TRS ̲OP ̲ERROR, "A Coroutine has received
an
illegal operation type"
TRS ̲TIMEOUT ̲ERROR, "An illegal timer id has been
inserted in the local timer
table"
TRS ̲OP ̲POOL ̲EMTPY, "The TRS ̲OP ̲POOL is empty"
TRS ̲POOL ̲OVERFLOW "Max no of pool operations
exceeded
TRS ̲SYSCALL ̲ERR ̲1 "Operation returned to pool
with pending syscal indication
TRS ̲SYSCALL ̲ERR ̲2 "Attempt to activate new system
call through an operation
with pending syscall indication
TRS ̲SYSCALL ̲ERR ̲3 "Attempt to clear syscall
indication from an operation
for which PENDING ̲SYSCALL
and TRS ̲SYSCALL ̲READY have
not been set.
STACK ̲OVERFLOW, "Stack error for Running
Coroutine"
STACK ̲UNDERFLOW) "Stack error for Running
Coroutine"
ASM ̲TABLE ̲OVERFLOW "Overflow in PENDING ̲ASM ̲TABLE
IOC ̲REC ̲START ̲ERR "IOC Record start character
differs from F1E.
IOC ̲REC ̲TYPE ̲ERR "Illegal type of IOC ̲RECORD
IOC ̲REC ̲LENGTH ̲ERR "Illegal length of IOC ̲RECORD
TRS ̲IOC ̲OP ̲ERR "Attempt to return illegal
operation to IOC ̲POOL
IOC ̲REC ̲SEQ ̲ERR "Illegal record sequence from
IOC
IOC ̲MSG ̲TYPE ̲ERR) Illegal message type in some
Block (Only SCARS/CCIS)
4.2.3.5.11.11 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲T̲y̲p̲e̲s̲
The Coroutine type is used for initialisation and identification
of coroutines.
TRS ̲COROUTINES = (TRS ̲CONTROL ̲COROUTINE,
TRS ̲OUTPUT ̲COROUTINE,
TRS ̲INPUT ̲COROUTINE)
4.2.3.5.11.12 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲S̲u̲b̲-̲Q̲u̲e̲u̲e̲ ̲T̲y̲p̲e̲s̲
The sub-queue type is used for updating the queue references.
TRS ̲SUBQUEUE = (TRS ̲MAIN ̲Q,
TRS ̲SUB ̲Q1, TRS ̲SUB ̲Q2,
TRS ̲SUB ̲Q3, TRS ̲SUB ̲Q4,
TRS ̲SUB ̲Q5, TRS ̲SUB ̲Q6)
4.2.3.5.12 E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
The following external data are all accessed through
TMP
4.2.3.5.12.1 T̲a̲b̲l̲e̲s̲
CHANNEL ̲PROFILE ̲TABLE Ref. DBD section 5.3.4.1
CHANNEL ̲ACP ̲STATUS ̲TABLE Ref. DBD section 5.3.4.2
CIRCUIT ̲CONNECTIVITY ̲TABLE Ref. DBD section 5.3.4.3
CIRCUIT ̲TABLE Ref. DBD section 5.3.4.4
DEVICE ̲TABLE Ref. DBD section 5.3.3
LTUX ̲LINE ̲TABLE Ref. CPS ̲PREFIX
LTU ̲LINE ̲TABLE Ref. CPS ̲PREFIX
4.2.3.5.12.2 S̲y̲s̲t̲e̲m̲ ̲P̲a̲r̲a̲m̲e̲t̲e̲r̲s̲
TRC ̲PTOP ̲PARAMETER Ref. DBD section 5.1.2.1
NICS ̲TARE ̲PARAMETER Ref. DBD section 5.1.2.2
SCARS ̲CCIS ̲PARAMETER Ref. DBD section 5.1.2.3
PUNCH ̲PARAMETER Ref. DBD section 5.1.4.4
DEC ̲READER ̲DD Ref. DBD section 5.1.4.5
ACP ̲127 ̲PARAMETER Ref. DBD section 5.1.3
NETWORK ̲PARAMETER Ref. DBD section 5.1.7
OLD ̲CLOCK Ref. DBD section 5.1.5.1
4.2.3.5.12.3 G̲l̲o̲b̲a̲l̲ ̲S̲e̲r̲i̲a̲l̲ ̲N̲u̲m̲b̲e̲r̲s̲
TRANSMISSION ̲GSN Ref. DBD section 5.4
PTP ̲DOCUMENT ̲GSN Ref. DBD section 5.4
4.2.3.6 T̲R̲A̲N̲S̲P̲O̲R̲T̲ ̲A̲U̲X̲I̲L̲I̲A̲R̲Y̲ ̲P̲R̲O̲C̲E̲D̲U̲R̲E̲S̲
4.2.3.6.1 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲T̲i̲m̲e̲r̲ ̲M̲o̲d̲u̲l̲e̲
The Transport Timer Module is an auxiliary module,
which supplies a number of general procedures for updating
of the local timer tables within a transport subprocess
(ref. 4.2.3.5.2.3).
The following functions are included:
- Update Timers
- Set TRS ̲TIMER
- Set FLASH ̲TIMER
- Check Timeouts
- Check Flash Acknowledge
- Find Flash Message in Time Table
- Initialize Time Table
- Check Present Time
- Timeout Request
- Timeout Cancel
- Set TRC/PTOP Incoming Timer
- Set NICS TARE Incoming Timer
- Set SCARS/CCIS Incoming Timer
- Set SCARS/CCIS Transaction Acknowledge Timer
4.2.3.6.1.1 U̲p̲d̲a̲t̲e̲ ̲T̲R̲S̲ ̲T̲i̲m̲e̲r̲s̲
This procedure decrements all active timers stored
in the specified Timer Table and Flash Table. Only
timers with a value which differ from zero are decremented.
If at least one timer is decremented to zero the procedure
returns a true completion code.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) UPDATE ̲TRS ̲TIMERS (TIMER-̲PROFILE)
(CC): (BOOLEAN)
b) UPDATE ̲TRS ̲TIMERS (R1, R6, R7) :(BOOLEAN)
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̲
R4 Pointer to TIMER ̲PROFILE (kept)
R6 LINK (kept)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 cc completion code (TRUE, FALSE)
R1, R2, R5 (destr)
4.2.3.6.1.2 S̲e̲t̲ ̲T̲R̲S̲ ̲T̲i̲m̲e̲r̲
This procedure will set a timer within a specified
Timer Table to a specified value.
If the value is zero, the timer is set idle (i.e. non
active).
If the value differs from zero and FFFF (HEX) the timer
is set busy (i.e. active).
If the value is equal to FFFF (hex) the current value
is returned.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SET ̲TRS ̲TIMER (TIMER ̲PROFILE,
TIMER ̲ID : Ref. 4.2.3.5.11.3,
TIMER ̲VALUE : 0..FFFF (Hex))
(TIMER ̲TABLE,
TIMER ̲VALUE) : OK
b) SET ̲TRS ̲TIMER (TIMER ̲ID,R1,R2,R4,R5,R6) : OK
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̲
R1 Value (dest)
R4 Pointer to Timer Profile (dest)
R6 LINK (kept)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R2 Current value
R5 (dest)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
Illegal Timer ̲Id
Illegal Timer Value
4.2.3.6.1.3 S̲e̲t̲ ̲F̲l̲a̲s̲h̲ ̲T̲i̲m̲e̲r̲
This procedure inserts a value, a QEL-Reference for
the flash message and a TSN (Transmission Serial Number)
into the first idle timer of a specified Flash Table.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SET ̲FLASH ̲TIMER (TIMER ̲PROFILE,
TIMER ̲VALUE : 0...127,
MSG ̲REF : QEL ̲REF,
TSN : 1..9999)
(FLASH ̲TABLE): OK
b) SET ̲FLASH ̲TIMER (R0,R1,R2,R3,R4,R5,R6) : OK
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̲
R1 TSN (kept)
R2 VALUE (destr)
A3 QEL ̲REF (kept)
R4 Pointer to Timer Profile (destr)
R6 LINK (kept)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0,R5 (destr)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
Illegal Timer Value
Illegal TSN
Flash Table Overflow
4.2.3.6.1.4 C̲h̲e̲c̲k̲ ̲T̲i̲m̲e̲o̲u̲t̲s̲
This procedure will search the specified Timer Table
and/or Flash Table for timeouts.
A timeout is defined as an active (busy) timer with
a value equal to zero.
If a timeout is found, the timer is set idle (non active)
and a specification of the timeout is returned.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) CHECK ̲TIMEOUTS (TIMER ̲PROFILE)
(TIMEOUT ̲ID,QEL ̲REF,TSN):(TRS
̲TIME ̲
OUT ̲TYPE)
b) CHECK ̲TIMEOUTS (R1,R3,R4,R5,R6):(TRS ̲TIME ̲OUT
̲
TYPE)
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̲
R4 Pointer to Timer Profile (kept)
R6 LINK (kept)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 TIME ̲ID
R2 TSN (only for flash timeout)
R3 QEL ̲REF (only for flash timeout)
Note: TRS ̲TIME ̲OUT ̲TYPE (Ref. 4.2.3.5.11.3)
4.2.3.6.1.5 C̲h̲e̲c̲k̲ ̲F̲l̲a̲s̲h̲ ̲A̲c̲k̲n̲o̲w̲l̲e̲d̲g̲e̲
This procedure will check if a specified TSN (Transmission
Serial Number) has been assigned on active time in
the Flash Table. If so the timer is set idle (non active)
and a QEL-Reference to the flash message is returned.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) CHECK ̲FLASH (TIMER ̲PROFILE, TSN)
(MSG ̲REF):(BOOLEAN)
b) CHECK ̲FLASH (R1,R2,R3,R4,R6).(BOOLEAN)
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 TSN (kept)
R4 Pointer to Timer Profile (destr)
R6 LINK (kept)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 (destr)
R3 MSG ̲REF(QEL ̲Reference)
4.2.3.6.1.6 F̲i̲n̲d̲ ̲F̲l̲a̲s̲h̲ ̲M̲e̲s̲s̲a̲g̲e̲ ̲i̲n̲ ̲T̲i̲m̲e̲r̲ ̲T̲a̲b̲l̲e̲
This procedure examines if a flash message has been
assigned a timer in the Flash Timer Table. If so the
timer is set idle and the QEL. Ref for the flash message
is returned.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) CHECK ̲FLASH (TIMER ̲PROFILE)
(QEL ̲REF): BOOLEAN
b) CHECK ̲FLASH (R1,R3,R4,R6): BOOLEAN
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̲
R4 Pointer to Timer Profile (destr)
R6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 (destr)
R3 QEL ̲REF if EXIT = TRUE
4.2.3.6.1.7 I̲n̲i̲t̲i̲a̲l̲i̲z̲e̲ ̲T̲i̲m̲e̲r̲ ̲T̲a̲b̲l̲e̲
This procedure will reset all times in the local timer
tables of a subprocess.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) INIT ̲TIMER ̲TABLE (TIMER ̲PROFILE)
b) INIT ̲TIMER ̲TABLE (R4,R5,R7,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̲
R4 Pointer to Transport Parameters
R5 Destr
4.2.3.6.1.8 C̲h̲e̲c̲k̲ ̲P̲r̲e̲s̲e̲n̲t̲ ̲T̲i̲m̲e̲
This procedure reads the present time and checks if
it is equal to a specified time.(Only the hours and
minutes are checked)
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) CHECK ̲PRESENT ̲TIME (HOUR,MIN) : BOOLEAN
b) CHECK ̲PRESENT ̲TIME (R1,R2,R3,R7,R6) : BOOLEAN
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 Hour (2 ASC digits) (kept)
R2 Min (2 ASC digits) (kept)
R3 Pointer to SYSTEM ̲TIME (kept)
R6 LINK (kept)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 (kept)
Exit = True if match
4.2.3.6.1.9 T̲i̲m̲e̲o̲u̲t̲ ̲R̲e̲q̲u̲e̲s̲t̲
This procedure makes a request for a timeout from CSF
Timer Monitor.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲
a) TRS ̲TIMEOUT ̲REQUEST (TIMEOUT :(ONCE,PERIODIC)
FORMAT :(MINUTES,SECONDS)
EVENT ̲ID :TRS ̲TIMEOUT
̲ID,
QUEUE REF :CCQ ̲Subq.1,
TIME ̲OUT ̲VALUE :INTEGER
PARAMS :REQUEST ̲TIME
̲RELATIVE)
b) TRS ̲TIMEOUT ̲REQUEST (TIMEOUT,FORMAT,EVENT ̲ID,
R1,R2,R4,R5,R7,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̲
R1 Pointer to queue ref. (destr.)
R2 Timeout value (destr.)
R4 Pointer to REQUEST ̲TIME ̲RELATIVE ̲PARAMS (destr.)
R6 LINK (kept)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R5 destr
R7 Pointer to TRANSPORT ̲PARAMETERS
4.2.3.6.1.10 T̲R̲S̲ ̲T̲i̲m̲e̲o̲u̲t̲ ̲C̲a̲n̲c̲e̲l̲
This procedure cancels a previously requested timeout.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲
a) TRS ̲TIMEOUT ̲CANCEL (EVENT ̲ID :TRS ̲TIMEOUT ̲ID
QUEUE ̲REF:CCQ ̲1
PARAMS: REQUEST ̲TIME ̲RELATIVE)
b) TRS ̲TIMEOUT ̲CANCEL (EVENT ̲ID, R1,R4,R5,R7,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̲
R1 Pointer to queue ref. (destr.)
R4 Pointer to REQUEST ̲TIME ̲RELATIVE ̲PARAMS (destr.)
R6 LINK (kept)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R5 destr
R7 Pointer to TRANSPORT ̲PARAMETERS
4.2.3.6.1.11 T̲R̲C̲/̲P̲T̲O̲P̲ ̲I̲n̲c̲o̲m̲i̲n̲g̲ ̲T̲i̲m̲e̲r̲
This procedure activates the timer related to supervision
of the incoming traffic for TRC/POINT TO POINT.
The timer is only activated if the state of the incoming
channel is equal to the specified state.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SET ̲TP ̲INCOM ̲TIMER (CHANNEL ̲STATE: OPEN, CLOSED)
(TIMER ̲TABLE)
b) SET ̲TP ̲INCOM ̲TIMER (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̲
R6 CHANNEL ̲STATE (OPEN, CLOSED)
R6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 Pointer to TRANSPORT ̲PARAMETERS
R0,R1,R2,R3,R4,R5 (destr)
4.2.3.6.1.12 N̲I̲C̲S̲ ̲T̲A̲R̲E̲ ̲I̲n̲c̲o̲m̲i̲n̲g̲ ̲T̲i̲m̲e̲r̲
Equivalent to TRC/PTOP Incoming Timer
(Sec 4.2.3.6.1.11).
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SET ̲NT ̲INCOM ̲TIMER (CHANNEL ̲STATE: OPEN, CLOSED)
(TIMER ̲TABLE)
b) SET ̲NT ̲INCOM ̲TIMER (R0,R1,R2,R3,R4,R5,R7,R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
(See 4.2.3.6.1.11)
4.2.3.6.1.13 S̲C̲A̲R̲S̲/̲C̲C̲I̲S̲ ̲I̲n̲c̲o̲m̲i̲n̲g̲ ̲T̲i̲m̲e̲r̲
This procedure activates the timer related to supervision
of the incoming traffic for SCARS/CCIS.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SET ̲SC ̲INCOM ̲TIMER () (TIMER ̲TABLE)
b) SET ̲SC ̲INCOM ̲TIMER (R0,R1,R2,R3,R4,R5,R7,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̲
R6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 Pointer to transport Parameters
R0,R1,R2,R3,R4,R5 Destr.
4.2.3.6.1.14 S̲C̲A̲R̲S̲/̲C̲C̲I̲S̲ ̲T̲r̲a̲n̲s̲a̲c̲t̲i̲o̲n̲ ̲A̲c̲k̲n̲o̲w̲l̲e̲d̲g̲e̲ ̲T̲i̲m̲e̲r̲
This procedure activates the Timer for supervision
of the return of the Transaction Acknowledge from SCARS/CCIS.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SET ̲SC ̲TRACK ̲TIMER () (TIMER ̲TABLE)
b) SET ̲SC ̲TRACK ̲TIME (R0,R1,R2,R3,R4,R5,R7,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̲
R6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0,R1,R2,R3,R4,R5 Destr.
R7 Pointer to transport Parameters
4.2.3.6.2 C̲o̲m̲m̲o̲n̲ ̲T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲
This module contains a number of auxiliary procedures
common for Transport Control, Outgoing Transport and
Incoming Transport. The following functions are included:
- Save link on local stack
- Restore link from local stack
- Read base for Transport Paramaters
- Receive operation from TRS ̲OP ̲POOL
- Send TRS ̲OPERATION
- Wait for operation from semaphore
- Receive operation (buffer) from IOC buffer pool
- Return operation to IOC buffer pool
- Associate Syscall to Semaphore
- Cancel Initiated Syscall
- Clear Syscall Indication
- Update Syscall Sequence No.
- Find Next Syscall Reply
- Set indicator with mask
- Check indicator with mask
- Reset indicator with mask
- ASCII to Binary Conversion
- Binary to ASCII Conversion
4.2.3.6.2.1 S̲a̲v̲e̲ ̲L̲i̲n̲k̲
Saves the link of the calling procedure and returns
the base (pointer) of transport parameters related
to Running Coroutine. Stack Pointer is updated. See
figure 4.2.3.5.7.1-1.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SAVE ̲LINK (LINK) (PARAM ̲BASE):OK
b) SAVE ̲LINK (R5,R6,R7):OK
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̲
R6 LINK to be saved (destr.)
R7 LINK for SAVE ̲LINK procedure (kept)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R5 Pointer to Transport Parameters
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
Stack Overflow (Process is retired)
4.2.3.6.2.2 R̲e̲s̲t̲o̲r̲e̲ ̲L̲i̲n̲k̲
Returns the link of calling procedure from local stack
together with pointer to Transport Parameters. Stack
Pointer is updated. See figure 4.2.3.5.7.1-1.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) RESTORE ̲LINK ( )
(RESTORED ̲LINK, PARAM ̲BASE) : OK
b) RESTORE ̲LINK (R5,R6,R7):OK
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̲
R7 LINK for RESTORE ̲LINK procedure (kept)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R5 Pointer to Transport Parameters
R6 Restored Link
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
Stack Underflow (Process is retired)
4.2.3.6.2.3 R̲e̲a̲d̲ ̲B̲a̲s̲e̲ ̲f̲o̲r̲ ̲T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲P̲a̲r̲a̲m̲e̲t̲e̲r̲s̲
Returns a pointer to Transport Parameters for running
subprocess. See figure 4.2.3.5.7.1-1.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) READ ̲PARAM ̲BASE ( )(PARAM ̲BASE): OK
b) READ ̲PARAM ̲BASE (R5,R6): OK
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̲
R6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R5 Pointer to Transport Parameters
4.2.3.6.2.4 R̲e̲c̲e̲i̲v̲e̲ ̲T̲R̲S̲ ̲O̲p̲e̲r̲a̲t̲i̲o̲n̲
This procedure receives an operation (ref. sec. 4.2.3.5.7.2)
from a TRS ̲OP ̲POOL (defined in sec. 4.2.3.5.7.6) and
initializes the operation with: Priority, OP ̲TYPE and
INFO ̲FIELD.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) RECEIVE ̲TRS ̲OPERATION (OP ̲TYPE,INFO,
PRIORITY) (OPERATION):OK
b) RECEIVE ̲TRS ̲OPERATION (R0,R1,R2,R3,R4,R5,R7,R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
R0 First info word (kept)
R1 Second info word (kept)
R2 TRS ̲OPERATION ̲TYPE (kept)
R3 TRS ̲PRIORITY (kept)
R6 LINK (kept)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R5 Pointer to operation
R7 Pointer to Transport Operation
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
Pool Empty
4.2.3.6.2.5 R̲e̲t̲u̲r̲n̲ ̲T̲R̲S̲ ̲O̲p̲e̲r̲a̲t̲i̲o̲n̲
This procedure returns an operation to a TRS-OP ̲POOL
(defined in sec. 4.2.3.5.7.6).
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) RETURN ̲TRS ̲OPERATION (TRS ̲OP ̲POOL,OPERATION): OK
b) RETURN ̲TRS ̲OPERATION (R4,R5,R6): OK
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̲
R4 Pointer to TRS ̲OP ̲POOL (destr.)
R5 Pointer to operation (kept)
R6 LINK (kept)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
4.2.3.6.2.6 S̲e̲n̲d̲ ̲T̲R̲S̲ ̲O̲p̲e̲r̲a̲t̲i̲o̲n̲
This procedure receives an idle operation from the
TRS ̲OP ̲POOL of the Running Subprocess, and send it
to a specified Semaphore. The operation is initialized
with OP ̲TYPE, OP ̲INFO, and PRIORITY.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SEND ̲TRS ̲OPSEM (OP ̲TYPE, INFO, PRIORITY, SEMAPHORE)
b) SEND ̲TRS ̲OPSEM (R0,R1,R2,R3,R4,R5,R7,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̲
R0 Info 1 (kept)
R1 Info 2 (kept)
R2 OP ̲TYPE (kept)
R3 PRIORITY (kept)
R4 Pointer to semaphore (kept)
R6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 Pointer to Transport Parameters
R5 (destr.)
4.2.3.6.2.7 W̲a̲i̲t̲ ̲T̲R̲S̲ ̲o̲p̲s̲e̲m̲
This procedure receives an operation from a semaphore
and saves operation pointer, OP ̲TYPE and OP ̲INFO into
a save area of type SAVE ̲OP ̲TYPE (Ref. 4.2.3.5.7.9).
If the OP ̲TYPE indicates a PENDING ̲SYSCALL it is supplied
with TRS ̲SYSCALL ̲READY indication. If the operation
does not refer to a PENDING ̲SYSCALL it is returned
to the TRS ̲OP ̲POOL.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) WAIT ̲TRS ̲OPSEM (SEMAPHORE)(SAVE ̲OP ̲TYPE, OPERATION)
b) WAIT ̲TRS ̲OPSEM (R3,R4,R7,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̲
R3 Pointer to save area (destr.)
R4 Pointer to semaphore (destr.)
R6 LINK (kept)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 Pointer to Transport Parameters
4.2.3.6.2.8 R̲e̲c̲e̲i̲v̲e̲ ̲I̲O̲C̲ ̲B̲u̲f̲f̲e̲r̲
Receives an idle buffer (see figure 4.2.3.5.7.3-1)
from a specified IOC ̲POOL. if the pool is empty a return
is made to an ERROR exit.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲
a) RECEIVE ̲IOC ̲BUFFER (IOC ̲POOL)(OPERATION,CC): ERROR
̲OK
b) RECEIVE ̲IOC ̲BUFFER (R3,R4,R5,R6,R7): ERROR ̲OK
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̲
R3 Pointer to Pool (destr.)
R6 LINK (kept)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R4 Pointer to operation (buffer)
R7 Pointer to Transport Parameters
R5 (destr.)
4.2.3.6.2.9 R̲e̲t̲u̲r̲n̲ ̲I̲O̲C̲ ̲O̲p̲e̲r̲a̲t̲i̲o̲n̲
Returns an IOC buffer to pool specified in the operation
connected to buffer (ref.fig.4.2.3.5.7.3-1).
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) RETURN ̲IOC ̲OPERATION (OPERATION)
b) RETURN ̲IOC ̲OPERATION (R1,R4,R5,R7,R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
R1 Pointer to operation (kept)
R6 LINK (kept)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R4 Pointer to pool
R5 No of operations in pool
R7 Pointer to Transport Parameters
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲
Operation type differs from IOC ̲REPLY.
4.2.3.6.2.10 A̲s̲s̲o̲c̲i̲a̲t̲e̲ ̲S̲Y̲S̲C̲A̲L̲L̲ ̲t̲o̲ ̲S̲e̲m̲a̲p̲h̲o̲r̲e̲
This procedure associates an operation referencing
an initiated system call to a semaphore.
The OP ̲TYPE of the operation is supplied with a PENDING
̲SYSCALL indication.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) TRS ̲ASSOCIATE (SEMAPHORE, OPERATION)
b) TRS ̲ASSOCIATE (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̲
R4 Pointer to semaphore (kept)
R5 Pointer to operation (kept)
R3 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 Pointer to Transport Parameters
4.2.3.6.2.11 C̲a̲n̲c̲e̲l̲ ̲I̲n̲i̲t̲i̲a̲t̲e̲d̲ ̲S̲y̲s̲c̲a̲l̲l̲
This procedure cancels all System Calls referred to
by operations with the specified OP ̲TYPE and received
from the specified pool.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) CANCEL ̲TRS ̲SYSCALL (OP ̲TYPE, POOL)
b) CANCEL ̲TRS ̲SYSCALL (R0,R1,R2,R3,R4,R5,R7,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̲
R0 OP ̲TYPE (destr.)
R4 Pointer to Pool (destr.)
R6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 Pointer to tranport Parameters
R1,R2,R3,R5 (destr.)
4.2.3.6.2.12 C̲l̲e̲a̲r̲ ̲S̲y̲s̲c̲a̲l̲l̲ ̲I̲n̲d̲i̲c̲a̲t̲i̲o̲n̲
This procedure clears the PENDING ̲SYSCALL and SYSCALL
̲READY indication from the OP ̲TYPE of an operation.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) CLEAR ̲TRS ̲SYSCALL (OPERATION)
b) CLEAR ̲TRS ̲SYSCALL (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̲
R5 Pointer to operation (kept)
R6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None.
4.2.3.6.2.13 U̲p̲d̲a̲t̲e̲ ̲S̲y̲s̲c̲a̲l̲l̲ ̲S̲e̲q̲u̲e̲n̲c̲e̲ ̲N̲u̲m̲b̲e̲r̲
This procedure may be used to keep track on the sequence
of initiated Syscalls (e.g. IO ̲READ ̲BYTES). For this
purpose the following parameter must be defined:
TYPE SYSCALL ̲NO ̲PARAM = LONG
with
SYSCALL ̲NO ̲PARAM ̲LEAST specifying the next syscall
to be waited for.
SYSCALL ̲NO ̲PARAM ̲HOST specifying the next syscall
to be initiated and associated.
The procedure supplies the following functions:
- if Init ̲Switch is true the SYSCALL ̲NO ̲PARAM is
initialized with a specified OP ̲TYPE. (Syscall
Id).
- if Init ̲Switch is false the specified operation
is updated with the contents of SYSCALL ̲NO ̲PARAM.MOST.
Then the SYSCALL ̲NO position of SYSCALL ̲NO ̲PARAM
̲HOST is incremented (module 16)
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲
a) SET ̲SYSCALL ̲NO (OP ̲TYPE, INIT ̲SWITCH)
(OPERATIONS,SYSCALL ̲NO ̲PARAM)
b) SET ̲SYSCALL ̲NO (R0,R1,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 TRS ̲OPERATION ̲TYPE (destr)
R1 INIT ̲SWICHT (BOOLEAN) (destr)
R4 Pointer to SYSCALL ̲NO ̲PARAM (kept)
R5 Pointer to Operation (kept)
R6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None.
4.2.3.6.2.14 F̲i̲n̲d̲ ̲N̲e̲x̲t̲ ̲S̲y̲s̲c̲a̲l̲l̲ ̲R̲e̲p̲l̲y̲
This procedure searches for the next syscall reply
in a specified pool.
The procedure makes use of a parameter called SYSCALL
̲NO ̲PARAM (see 4.2.3.6.2.14). If the OP ̲TYPE and SYSCALL
̲NO of one of the operations in the pool is equal to
SYSCALL ̲NO ̲PARAM.LEAST, the pointer to this operation
is returned. In this case the SYSCALL ̲NO in SYSCALL
̲NO ̲PARAM.LEAST is incremented (module 16).
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) FIND ̲NEXT ̲SYS ̲REPLY (POOL)
(SYSCALL ̲NO ̲PARAM, OPERATION)
:
BOOLEAN
b) FIND ̲NEXT ̲SYS ̲REPLY (R0,R1,R2,R3,R4,R5,R6): BOOLEAN
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̲
R3 Pointer to SYSCALL ̲NO ̲PARAM (destr.)
R4 Pointer to POOL (destr.)
R6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R5 Pointer to Operation if EXIT = TRUE
R0..R4 (dest.)
EXITS: TRUE - operation found
FALSE - No opeation found
4.2.3.6.2.15 S̲e̲t̲ ̲I̲n̲d̲i̲c̲a̲t̲o̲r̲
Gives a specified bit position within an indicator
the value "true".
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SET ̲INDICATOR (INDICATOR,BIT ̲MASK): OK
b) SET ̲INDICATOR (R1,R2,R4,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̲
R1 BIT MASK (kept)
R4 Pointer to indicator (kept)
R6 LINK (kept)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R2 Updated indicator
4.2.3.6.2.16 R̲e̲s̲e̲t̲ ̲I̲n̲d̲i̲c̲a̲t̲o̲r̲
Gives a specified bit position within an indicator
the value "false".
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) RESET ̲INDICATOR (INDICATOR,BIT ̲MASK): OK
b) RESET ̲INDICATOR (R1,R2,R4,R6): OK
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
As for SET ̲INDICATOR
4.2.3.6.2.17 C̲h̲e̲c̲k̲ ̲I̲n̲d̲i̲c̲a̲t̲o̲r̲
This procedure checks if a specified bit position within
an indicator is true or false.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) CHECK ̲INDICATOR (INDICATOR,BIT ̲MASK)(CC):
BOOLEAN
b) CHECK ̲INDICATOR (R1,R4,R6,R7): BOOLEAN
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
R1 Bit Maske
R1 Pointer to indicator (destr.)
R6 LINK (kept)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 (kept)
4.2.3.6.2.18 B̲i̲n̲a̲r̲y̲ ̲t̲o̲ ̲A̲S̲C̲I̲I̲ ̲C̲o̲n̲v̲e̲r̲s̲i̲o̲n̲
This procedure converts a binary number (16 bit) into
three or four ASCII digits which are stored into a
specified position of a buffer structured as an array
of characters.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) TRS ̲BIN ̲ASCII (Buffer address,
Buffer index,
Number ̲of ̲digits,
Binary Number)
b) TRS ̲BIN ̲ASCII (R0,R1,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̲
R1 Binary Value (destr.)
R3 No. of digits (destr.)
R4 Pointer to buffer (kept)
R5 Buffer Start index (destr.)
R6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 (destr)
4.2.3.6.2.19 A̲S̲C̲I̲I̲ ̲t̲o̲ ̲B̲i̲n̲a̲r̲y̲ ̲C̲o̲n̲v̲e̲r̲s̲i̲o̲n̲
This procedure converts a decimal number (0-9999) stored
in ASCII format at a specified position of a buffer
structured as an array of characters.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) TRS ̲ASCII ̲BIN (Buffer Address, Buffer Index,
No ̲of digits)
(Binary Number)
b) TRS ̲ASCII ̲BIN (R1,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̲
R3 No. of digits (destr.)
R4 Pointer to buffer (kept)
R5 Buffer Index (destr.)
R6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 Binary Value
R2 (destr.)
4.2.3.6.3 C̲o̲m̲m̲o̲n̲ ̲T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲E̲r̲r̲o̲r̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲
4.2.3.6.3.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Errors resulting from instruction execution within
a Transport Subprocess are divided into three main
groups:
System Call Errors
Command Errors
Internal Errors.
a) S̲y̲s̲t̲e̲m̲ ̲C̲a̲l̲l̲ ̲E̲r̲r̲o̲r̲s̲
These errors may occcur as a result of a System
Call returning a Completion Code (CC) which is
not zero.
The System Call Errors are handled by a call to
the ANALYSE ̲ERROR procedure defined in CPS/ICD/009,
section 6.3.6.
b) C̲o̲m̲m̲a̲n̲d̲ ̲E̲r̲r̲o̲r̲s̲
The TCS has received a command through its Channel
Command Queue with illegal maintype or subtype.
A report is sent to GAQ by the external SEND ̲GARBLE
procedure (ref.CPS/ICD/009, sec.4.3.7) supplied
with the following Garble Parameters
GARBLE ̲PARAMS = "Global Type"
RECORD
ERROR ̲TYPE : QERROR
USER ̲ACTION: GIVE ̲UP
ERROR ̲INFO : "empty"
END
c) I̲n̲t̲e̲r̲n̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
The Internal Errors are defined by the "TRS ̲INTERNAL
̲ERROR ̲TYPE (Ref. 4.2.3.5.11.10).
A report is sent to GAQ by the external SEND ̲GARBLE
procedure (ref. CPS/ICD/009, section 4.3.7) supplied
with the following Garble Parameters:
GARBLE ̲PARAMS = "Global Type"
RECORD
ERROR ̲TYPE : INTERNAL
USER ̲ACTION : GIVE ̲UP
ERROR ̲INFO : INTERNAL ̲ERROR ̲INFO
END
INTERNAL ̲ERROR ̲INFO = "Global Type"
RECORD
LOG : INTEGER "Error Location"
INFO : ARRAY (1..4) OF INTEGER
END
INFO contains the following elements:
INFO (1) = TRS ̲INTERNAL ̲ERROR ̲TYPE
INFO (2) = (SUBPROCESS ̲ID)*256+COROUTINE
̲Id
INFO (3) = depends on INFO (1)
INFO (4) = depends on INFO (1)
Note: INFO (2) is read from the coroutine record
of the running coroutine.
4.2.3.6.3.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲s̲
1) T̲R̲S̲ ̲C̲o̲m̲m̲a̲n̲d̲ ̲E̲r̲r̲o̲r̲s̲
This procedure will set up the Garble Parameters
for a command error (ref. 4.2.3.6.3.1) and send
them to GAQ.
The calling process is retired.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) TRS ̲COMMAND ̲ERROR (QEL ̲REF)
b) TRS ̲COMMAND ̲ERROR (R2,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 QEL Reference
R6 Link
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None.
2) T̲R̲S̲ ̲I̲n̲t̲e̲r̲n̲a̲l̲ ̲E̲r̲r̲o̲r̲
This procedure will construct the Garble Parameters
for an internal error and send them to GAQ (ref.
4.2.3.6.3.1).
The calling process is retired.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) TRS ̲INTERNAL ̲ERR
(Error Location, "address"
Error Type,
Info (3),
Info (4))
b) TRS ̲INTERNAL ̲ERR (R0,R1,R2,R3,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̲
R0 TRS ̲INTERNAL ̲ERROR ̲TYPE (See 4.2.3.5.11.10)
R1 Address of calling procedure
R2 Info (3)
R3 Info (4)
R6 Link
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None.
4.2.3.6.4 C̲o̲m̲m̲o̲n̲ ̲R̲e̲p̲o̲r̲t̲ ̲a̲n̲d̲ ̲D̲a̲t̲a̲ ̲C̲o̲l̲l̲e̲c̲t̲i̲o̲n̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲
This module contains a number of common procedures
for reporting and data collecting. The following subjects
are handled:
- Generation of Reports for Supervisor Printer
- Statistics for outgoing Messages
- Storage for outgoing Messages
- Log for outgoing messages
- Discontinuity Log for Incoming Messages
- Report for Unknown ASM
4.2.3.6.4.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
A Transport Subprocess may generate a number of Warning
and Channel reports for the supervisor's printer (ref.
CPS/ICD/009, sec. 5.2.2.12).
The report data are stored in a buffer with the following
type:
TYPE
REPORT ̲BUFFER ̲TYPE =
RECORD
TOC : TIME ̲TYPE
TEXT ̲REF : 1..MAX ̲REPORT ̲TEX ̲REF
REPORT ̲DATA : ARRAY (1..MAX ̲REPORT ̲DATA ̲BYTES)
OF CHAR
END
TEXT ̲REF : Reference to the report text (global
type).
REPORT ̲DATA : Variable data which specifies the channel,
device or message referred by the Report.
The Transport Report Data are defined by:
TYPE
TRS ̲REPORT =
RECORD
DESIGNATOR ̲1 : DESIGNATOR ̲TYPE
TSN ̲1 : INTEGER
DESIGNATOR ̲2 : DESIGNATOR ̲TYPE
TSN ̲2 : INTEGER
END
All reportes generated within Transport Processes have
been listed in the Table below.
Table: Report Specification for Transport Processes
---------------------------------------------------
4.2.3.6.4.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲s̲
C̲r̲e̲a̲t̲e̲ ̲T̲R̲S̲ ̲R̲e̲p̲o̲r̲t̲
This procedure stores the report data from a transport
subprocess in a buffer structure as defined in section
4.2.3.6.4.1 and sends it to the supervisors printer
through a specified queue reference.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) CREATE ̲TRS ̲REPORT
(QUEUE : REFERENCE,
REPORT ̲TYPE :(WARNING, CHANNEL),
TEXT ̲REF : REPORT ̲TEXT ̲REF,
CD1 : DESIGNATOR ̲1,
TSN1 : INTEGER,
CD2 : DESIGNATOR ̲2,
TSN2 : INTEGER)
b) CREATE ̲TRS ̲REPORT
(REPORT ̲TYPE, TEXT ̲REF, R0,R1,R2,R3,
R4,R5,R7,R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 Pointer to queue reference (destr.)
R1 Pointer to CD1 (destr.)
R2 TSN1 (destr.)
R3 Pointer to CD2 (destr.)
R4 TSN2 (destr.)
R6 LINK (kept)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 Pointer to Transport Parameter
R5 (destr.)
4.2.3.6.4.3 O̲u̲t̲g̲o̲i̲n̲g̲ ̲M̲e̲s̲s̲a̲g̲e̲ ̲S̲t̲a̲t̲i̲s̲t̲i̲c̲s̲
This procedure creates the statistics for a message
(OUTG ̲MSG ̲PER ̲CHN ̲TYPE) transmitted on the outgoing
channel.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) TRS ̲OUTG ̲STATISTICS ()(TRANSPORT ̲PARAMETERS)
b) TRS ̲OUTG ̲STATISTICS (R0,R1,R2,R3,R4,R5,R7,R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
As for TRS ̲OUTG ̲STORAGE, (see sec.4.2.3.6.4.4).
4.2.3.6.4.4 O̲u̲t̲g̲o̲i̲n̲g̲ ̲M̲e̲s̲s̲a̲g̲e̲ ̲S̲t̲o̲r̲a̲g̲e̲
This procedure creates RETRIEVAL KEYS for a message
which has been transmitted on the outgoing channel
and sends them to STORAGE as prescribed by: CPS/ICD/009
section 5.3.1.2.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) TRS ̲OUTG ̲STORAGE ()(TRANSPORT ̲PARAMETERS)
b) TRS ̲OUG ̲STORAGE (R0,R1,R2,R3,R4,R5,R7,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̲
R6 LINK (destr.)
R7 Pointer to Transport Parameters
R0,R1,R2,R3,R4,R5 (destr.)
4.2.3.6.4.5 O̲u̲t̲g̲o̲i̲n̲g̲ ̲M̲e̲s̲s̲a̲g̲e̲ ̲L̲o̲g̲
This procedure creates the OUTGOING MESSAGE LOG as
prescribed by: CPS/ICD/009 section 5.4.2.4. The procedure
supports two types of logs:
OUT ̲VALID ̲PTP ̲LOG
OUT ̲VALID ̲LOG
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) TRS ̲OUTG ̲LOG (LOG ̲TYPE)
(TRANSPORT ̲PARAMETERS)
b) TRS ̲OUTG ̲LOG (R0,R1,R2,R3,R4,R5,R7,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̲
R0 Type of log (destr.)
R6 LINK (destr.)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 Pointer to Transport Parametes
R1,R2,R3,R4,R5 (destr.)
4.2.3.6.4.6 D̲i̲s̲c̲o̲n̲t̲i̲n̲u̲i̲t̲y̲ ̲L̲o̲g̲
This procedure creates the Channel Discontinuity Log
as presecribed in CPS/ICD/009 sect. 5.4.2.3.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) TRS ̲DISCONTINUITY ̲LOG (RECEIVED ̲TSN,
EXPECTED ̲TCN,
MESSAGE ̲TYPE)
(TRANSPORT ̲PARAMETERS)
b) TRS ̲DISCONTINUITY ̲LOG (R0,R1,R2,R3,R4,R5,R7,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̲
R1 Received TSN (destr.)
R2 Expected TSN (destr.)
R3 Message Type (QEL Maint) (destr.)
R6 LINK (destr.)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 Pointer to Transport Parameters
4.2.3.6.4.7 S̲e̲n̲d̲ ̲U̲n̲k̲n̲o̲w̲n̲ ̲A̲S̲M̲ ̲R̲e̲p̲o̲r̲t̲
This procedure will send Unknown ASMs received through
the Channel Command Queue to the Supervisor's Printer.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SEND ̲UNKNOWN ̲ASM ̲REPORT (QEL ̲REF, FLAGS)
(TRANSPORT ̲PARAMETERS)
b) SEND ̲UNKNOWN ̲ASM ̲REPORT (R2,R3,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̲
R2 QEL Ref. for ASM (destr.)
R3 QEL Flags to follow ASM (destr.)
R6 LINK (destr.)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R7 Pointer to Transport Parameters
R1,R4,R5 (destr.)
4.2.3.7 S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
4.2.3.7.1 T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲S̲u̲b̲p̲r̲o̲c̲e̲s̲s̲ ̲O̲p̲e̲r̲a̲t̲i̲o̲n̲s̲
The communication within a Transport Subprocess is
realized by means of semaphores through which the coroutines
exchange information.
The information is stored in operations with a data
structure as defined in section 4.2.3.5.7.2.
The principle flow of operations is described in section
4.2.3.3.2, which defines the semaphores within a Transport
Subprocess.
The types of operations within a Transport Subprocess
is defined in section 4.2.3.5.11.1.
The operation type "IOC ̲REPLY" is related to a special
data structure necessary for communication with IOC
(ref. 4.2.3.5.7.3).
The following tables defines the operations which may
occur within each type of Transport Process.
SEMAPHORE OPERATIONS FOR:
TRC/PTOP TRANSPORT SUBPROCESS
SEMAPHORE OPERATIONS FOR:
NICS/TARE TRANSPORT SUBPROCESS
SEMAPHORE OPERATIONS FOR:
SCARS/CCIS TRANSPORT SUBPROCESS
SEMAPHORE OPERATIONS FOR:
PTR TRANSPORT SUBPROCESS
SEMAPHORE OPERATIONS FOR:
PTP TRANSPORT SUBPROCESS
SEMAPHORE OPERATIONS FOR:
OCR TRANSPORT SUBPROCESS