top - download
⟦0e452d365⟧ Wang Wps File
Length: 28100 (0x6dc4)
Types: Wang Wps File
Notes: Spelunked
Names: »~ORPHAN75.08«
Derivation
└─⟦71c0ba358⟧ Bits:30006098 8" Wang WCS floppy, CR 0151A
└─ ⟦this⟧ »~ORPHAN75.08«
WangText
/…00……00……00……00…K…0a……00……00…K…0b…K…00…K…07…J…0c…J…0d…J I…0a…I…0c…I…0d…I H…0b…H…02…H…05…H…06…G…0c…G…01…G F…09…F…0e…F E…0a…E…00…E…05…D…0c…D…0d…D %
#…02…#…06…"…0a…"…0e…"
" "…07…!…0b…!…0c……1c……01……1c……06……1b……08……1b……09……1b……00……1b… …1a……08……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 aspecified 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
concering 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/POINTTO 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 maingroups 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̲
he 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 exernal 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 Subpackag" (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 detecte 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 tgether 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
Transprt 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.
Outgoin 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 mssage,
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..2.6) which gives a detailed
functional description.
TRANSPORT PROCESS Figure 4.2.3.1.2-1…86…1 …02… …02… …02… …02…
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 componnts
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 specifc 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 eentrant 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 rocess with the number of subprocesses
prescribed by the creating process, i.e. the "Parent
Process".
The initializing includes the following maintasks:
a) Init. of the data structure for each subprocess.
b) Setting up each subprocess with th coroutines specific
for the type of process to let them run under control
of the Coroutine Monitor.
c) Starting up the Coroutine Monitor.…86…1 …02…
…02… …02… …02…
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 Incomin 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 ype 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 outgoingtransport 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.25).
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 f transport
except for the PTP.
Each of these coroutines is described in the Incoming
Transport Subpackage (see section 4.2.6).
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 Mdule 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.…86…1 …02… …02… …02… …02…
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 Int 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 Moitor (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 Redy 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̲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 followig 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 ro 4.2.3.3.-5 for each type
of Transport Subrocess.
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 fo 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 theTC ̲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 TCCOROUTINE
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.22 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 (TCCOROUTINE). 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 ̲OROUTINE first initiates
a System Call (RECEIVE ̲FIRST ̲QEL) and then associates
the answer to OT ̲OPSEM.…86…1 …02… …02… …02… …02…
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
uffer 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 ̲COROUTIN 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
he 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 ystem 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̲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 oment 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…86…1 …02… …02… …02… …02…
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 storedin
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 initalized with operations
by the Transport Init Module.…86…1 …02… …02… …02… …02…
Internal communication
Figure 4.2.3.3-1 til 6.…86…1 …02… …02… …02… …02…
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 mainmodule
"TRANSPORT" which ontains 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 follwing 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 descriptin 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 mainmodule "TRANSPORT" is entred 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 mainmodule 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̲T̲ ̲S̲T̲A̲R̲T̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
As for mainmodule (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.
Nte 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
INTI ̲TYPE :BOOLEAN
EN
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…86…1 …02… …02… …02… …02… …02…
…02…
MAINMODULE TRANSPORT
START
TRANSPORT ̲START (PROCESS ̲TYPE,
FIRST ̲SUBPROCESS ̲NO,
NO ̲OF ̲SUBPROCESSES)
END TRANSPORT
PROCEDURE ̲TRANSPORT ̲START (PROCESS ̲TYPE,
FIRSTSUBPROCESS ̲NO,
NO ̲OF ̲SUBPROCESSES)
START
PRE ̲INITIALIZATION
INIT ̲TRANSPORT ̲PROCESS (PROCESS ̲TYPE,
FIRST ̲SUBPROCESS ̲NO,
NO ̲OF ̲SUBPROCESSES)
CASE PROCESS ̲TYPE
OR ̲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…86…1 …02… …02… …02… …02…
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 transprot
process.
After initialization the procedure jumps to the first
Coroutine inserted into the READY ̲LIST of the CSF ̲COROUTINEMONITOR.
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 subproces 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 DLINK
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 ̲IIT ̲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
his 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 a 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 subprcess 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 ointers (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 proedure 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̲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 inseting 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 pointrs (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 ̲D
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 OINTER 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..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 reay 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̲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 dat 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 OC 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
semaphors 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 sructure 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 OPEATION 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
ith 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 defiend 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. OFTRS 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 structre 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.
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
ino two mainparts (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 samestructure 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 ofthe 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 PARAETERS".
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 datarecord 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 "RUNING
COROUTINE" which is updated by CSF Coroutine Monitor.
(ref.fig.4.2.3.7.1-1).
FIGURE 4.2.3.5.1-1…86…1 …02… …02… …02… …02… …02… …02… …02…
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;
COROTINE ̲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
̲TPOPERATIONS)
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 ̲BUFER : 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 ̲STTE : 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 ̲YPE
END DATA RECORD FOR TRC/POINT TO POINT…86…1 …02…
…02… …02… …02… …02… …02… …02…
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 ̲POO : 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
̲OPERATIOS)
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 : ARAY (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 ̲TA