top - download
⟦71a9e5a22⟧ Wang Wps File
Length: 28179 (0x6e13)
Types: Wang Wps File
Notes: CPS/SDS/034
Names: »1675A «
Derivation
└─⟦c518842e8⟧ Bits:30006081 8" Wang WCS floppy, CR 0125A
└─ ⟦this⟧ »1675A «
WangText
- -…07…,…0b…,…0c…,…01…,…05…,…06…+…0c…+…00…+…01…+ …86…1
…02…
…02…
…02…
…02…CPS/SDS/034
…02…NJ/831101
…02…
MESSAGE
DISTRIBUTION
DETAILED
DESIGN
SPECIFICATION…02…ISSUE
1…02…CAMPS
4.2.1.4.14.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Refer Source Listings
4.2.1.4.14.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This utility module writes a specified part of the
MDP ̲BUFFER into the IMF. It is either the SCD list
field and the associated offsets and counts in the
administration field or the Queue list field. The main
procedure is the MDP ̲WRITE ̲BUFFER. Via this procedure
is the CREATE ̲SCD ̲LIST ̲WRITE ̲PARAMS and CREATE ̲QUEUE
̲LIST ̲WRITE ̲PARAMS called. This is done by a case statement.
In these procedures the appropriate WRITE ̲PARAMS are
setup. The actual WRITE is performed in the procedure
MDP ̲WRITE ̲BUFFER.
4.2.1.4.15 T̲e̲s̲t̲ ̲M̲D̲C̲O̲ ̲I̲n̲v̲o̲c̲a̲t̲i̲o̲n̲
4.2.1.4.15.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This utility module controls the message
on basis of the specifications described
in section 4.2.1.1.16, and requests updates
of the MDCO ̲ERROR ̲LIST on basis of the
control.
4.2.1.4.15.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
a) TEST ̲MDCO ̲INVOCATION (MDCO ̲ERROR ̲LIST
: INTEGER)
(MDCO
̲ERROR
̲LIST
:
INTEGER,
MDCO
̲INV
:
BOOLEAN)
b) TEST ̲MDCO ̲INVOCATION(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 (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 (DEST)
4.2.1.4.15.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
UPDATE ̲MDCO ̲ERROR ̲LIST(External procedure)
TEST ̲MDCO ̲INVOCATION(Internal procedure)
TEST ̲MORE ̲THAN ̲ONE ̲SHI (Internal procedure)
TEST ̲SUPV ̲SPEC (Internal procedure)
See figure 4.2.1.4.15.3-1
TEST ̲MDCO ̲INVOCATION COMPONENTS…01…Fig. 4.2.1.4.15.3-1
4.2.1.4.15.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Refer Source Listings
4.2.1.4.15.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This utility module tests the following
conditions and updates the MDCO ̲ERROR
̲LIST in accordance with the result of
each test.
The message will be send to the MDCO if
one of the following conditions are fulfilled.
- Supervisor specified
a) All incoming messages
b) All incoming of specified classification.
The function is performed by a check
in the distribution system parameter
record, ref DBD section 5.1.1.
- Internal Handling Instruction detected.
The function is performed by a check
in the second word of the associated
received QEL.
- Special Handling Instruction of type:
Exclusive
Crypto Security
National Eyes Only
More Than one detected
The function is performed by a check
in the access profile of the associated
received QEL.
- Missing SICs These functions are
performed by checks
in the second word
of the QEL.
- Garbled SICs
After end test of the parameters the MDCO
̲ERROR ̲LIST is checked an if MDCO ̲invocation
is necessary the MDCO ̲INV is set to true.
4.2.1.4.16 C̲O̲N̲V̲ ̲S̲C̲D̲ ̲L̲I̲S̲T̲ ̲T̲O̲ ̲Q̲ ̲L̲I̲S̲T̲
4.2.1.4.16.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This utility module converts a list
of SCDs to a Queue List. A fixed number
of SCDs is used as keys for access
of TMP during each convertion loop
run. This gives flexibility in the
number of SCD which can be converted.
4.2.1.4.16.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
a) CONV ̲SCD ̲LIST ̲TO ̲Q ̲LIST (SCD ̲POINTER:
POINTER ̲TYPE,
NO ̲OF
̲SCD
: COUNTER
̲TYPE,
MAX
̲Q ̲ENTRY: COUNTER
̲TYPE)
(SCD
̲POINTER: POINTER
̲TYPE,
MAX
̲Q ̲ENTRY: COUNTER
̲TYPE)
b) CONV ̲SCD ̲LIST ̲TO ̲Q ̲LIST(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 (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 (DEST)
Fig. 4.2.1.4.16.3-1…01…CONV ̲SCD ̲LIST ̲TO ̲Q ̲LIST COMPONENTS
4.2.1.4.16.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
CONV ̲SCD ̲LIST ̲TO ̲Q ̲LIST (Internal procedure)
GET ̲SCD ̲TABLE ̲OUTPUT (Internal procedure)
CREATE ̲KEY ̲LIST (Internal procedure)
UPDATE ̲Q ̲LIST (Internal procedure)
COMPARE ̲REF ̲REC ̲WITH ̲Q ̲LIST (Internal
procedure)
CREATE ̲NEW ̲Q ̲LINE (Internal procedure)
See figure 4.2.1.4.16.3-1
4.2.1.4.16.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Refer Source Listings
4.2.1.4.16.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This utility module contains six internal
procedures each of the procedures are
described in the following.
In figure 4.2.1.4.16.5-1 is shown the
table manipulations.
a) C̲O̲N̲V̲ ̲S̲D̲C̲ ̲L̲I̲S̲T̲ ̲T̲O̲ ̲Q̲ ̲L̲I̲S̲T̲
This procedure works on table A in
figure 1.4.16.5-1. It divides the
SCD LIST to a set of key SCD lists
which each contains "MAX ̲KEY" SCDs,
except the last one which contains
the remaining number of SCDs.
b) C̲R̲E̲A̲T̲E̲ ̲K̲E̲Y̲ ̲L̲I̲S̲T̲
This procedure creates the Input key
List (table B) from a specified key
SCD List (table A entry). The key
list contains max "MAX ̲KEY" keys.
c) G̲E̲T̲ ̲S̲C̲D̲ ̲T̲A̲B̲L̲E̲ ̲O̲U̲T̲P̲U̲T̲
This procedure requests TMP for search
in the SCD table with the key list
used as input. The TMP output is shown
in table C.
The procedure checks the INFO parameter
in each single parameter record in
the key list too. By this check the
number of Output records are identified.
d) U̲P̲D̲A̲T̲E̲ ̲Q̲ ̲L̲I̲S̲T̲
This procedure contains the reference
loop. This loop points out the actual
SCD record in table C which shall
be used as reference in the compare
loop in COMPARE ̲REF ̲REC ̲WITH ̲Q ̲LIST.
e) C̲O̲M̲P̲A̲R̲E̲ ̲R̲E̲F̲ ̲R̲E̲C̲ ̲W̲I̲T̲H̲ ̲Q̲ ̲L̲I̲S̲T̲
This procedure contains the compare
loop. It compares the referenced SCD
record with each Queue line in the
Queue list. Compare is done on the
logical designator and the device
ID. If equal the SCD from the referenced
SCD record is inserted in the appropriate
Queue line. If no equality is found
with any of the Queue lines a new
Queue line is created.
f) C̲R̲E̲A̲T̲E̲ ̲N̲E̲W̲ ̲Q̲ ̲L̲I̲N̲E̲
This procedure creates a new Queueline
on basis on the referenced SCD record.
Fig. 4.2.1.4.16.5-1
4.2.1.4.17 D̲e̲l̲i̲v̲e̲r̲y̲
4.2.1.4.17.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This utility module performs the actual
delivery to the terminal based on the
specified Queue List. This module contains
delivery to the Atomal printer too.
4.2.1.4.17.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
a) DELIVERY (PREC : PRECEDENCE ̲TYPE,
Q ̲LINE ̲NO: COUNTER ̲TYPE,
NO ̲OF ̲DELV:COUNTER ̲TYPE,
APP ̲PROFILE: APPLICATION ̲PROFILE)
(ALT ̲DIST: BOOLEAN)
b) DELIVERY (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 PREC (DEST)
R1 Q ̲LINE ̲NO (DEST)
R2 NO ̲OF ̲DELV (DEST)
R3 APP ̲PROFILE (DEST)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 (DEST)
4.2.1.4.17.3 M̲o̲d̲u̲l̲e̲ ̲c̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
DELIVERY (Internal procedure)
TEST ̲SIGN ̲ON ̲USER (Internal procedure)
PERFORM ̲DELIVERY (Internal procedure)
CREATE ̲USER ̲SEND ̲PARAMS (internal procedure)
CREATE ̲QUEUE ̲REF (External procedure)
MDP ̲USER ̲ERROR ̲HANDLING (Internal procedure)
SEND ̲FLASH (External procedure)
PERFORM ̲ATOMAL ̲PRINT (Internal procedure)
PERFORM ̲ATOMAL ̲DELIVERY (Internal procedure)
UPDATE ̲DELV ̲CODE (External procedure)
CREATE ̲ATOMAL ̲SEND ̲PARAMS (Internal procedure)
See figure 4.2.1.4.17.3-1
4.2.1.4.17.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Refer Source Listings
Fig. 4.2.1.4.17.3-1…01…DELIVERY COMPONENTS
4.2.1.4.17.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This utility module contains ten internal procedures,
each of the procedures is described in the following.
a) D̲E̲L̲I̲V̲E̲R̲Y̲
This procedure contains the main delivery loop.
Each run through of this loop performs a delivery
to a VDU or SAD. The current delivery is based
on the Queue line which is reference in the current
run through. The actual delivery is done in the
procedure PERFORM ̲DELIVERY.
The delivery code in the Queue line is updated
in accordance with the result from the procedure
PERFORM ̲DELIVERY.
After end distribution the BOOLEAN ATOMAL ̲PRINT
is tested and if Atomal print is necessary the
PERFORM ̲ATOMAL ̲PRINT procedure is called.
b) T̲E̲S̲T̲ ̲S̲I̲G̲N̲ ̲O̲F̲ ̲U̲S̲E̲R̲
In this procedure the Terminal profile is accessed
if the current delivery shall be performed to a
VDU. It is checked that the user is signed on and
that the user is working in USER ̲MODE. The Boolean
SIGN ̲ON ̲USER is updated in accordance with the
result.
c) P̲E̲R̲F̲O̲R̲M̲ ̲D̲E̲L̲I̲V̲E̲R̲Y̲
This procedure performs the actual delivery by
sending a QEL which reference the view.
Before sending the QEL the two procedures CREATE
̲USER SEND ̲PARAMS and CREATE ̲QUEUE ̲REF are called
after the send is performed it is checked if the
object is of precedence Flash. If that is the case
a Flash notification is sent to the current VDU
or SAD.
If the send QEL results in an error the MDP ̲USER
̲ ̲ERROR ̲HANDLING is called.
d) C̲R̲E̲A̲T̲E̲ ̲U̲S̲E̲R̲ ̲S̲E̲N̲D̲ ̲P̲A̲R̲A̲M̲S̲
This procedure creates the sends parameters.
Checkpoint status is set to true.
The application profile received from the current
case module is inserted. The MAINTYPE and HEADER
̲FLAGS are copied from the received QEL ̲ATTRIBUTES.
The applicable subtype is inserted as follows:
Message/comment distribution to VDUS: FOR ̲DISPLAY
Message/comment distribution to SAD: FOR ̲PRINT
Message for coordination to VDUS: FOR ̲COORDINATION
Message for Release to VDUs: FOR ̲RELEASE
The second word in the QEL is created in the CREATE
̲QEL ̲IMF which is called in the end of this procedure.
e) M̲D̲P̲ ̲U̲S̲E̲R̲ ̲E̲R̲R̲O̲R̲ ̲H̲A̲N̲D̲L̲I̲N̲G̲
This procedure analyses an error in connection
with a SEND ̲QEL. The Current delivery code is updated
in accordance with the error. The errors can be
one of the following:
- PROFILE ̲FAULT
- BLOCKED ̲Q
- PRINT ̲ATOMAL ̲ON ̲SAD
f) P̲E̲R̲F̲O̲R̲M̲ ̲A̲T̲O̲M̲A̲L̲ ̲P̲R̲I̲N̲T̲
This procedure counts the total number of copies
which shall be printed on the Atomal printer. The
actual delivery to the Atomal printer is performed
in the PERFORM ̲ATOMAL ̲DELIVERY procedure.
g) P̲E̲R̲F̲O̲R̲M̲ ̲A̲T̲O̲M̲A̲L̲ ̲D̲E̲L̲I̲V̲E̲R̲Y̲
This procedure send a QEL to the Atomal printer.
The printer is identified by a System parameter
in the distribution record. Before sending the
QEL the two procedures CREATE ̲ATOMAL ̲SEND PARAMS
and CREATE ̲QUEUE ̲REF are called.
The Queue list is after send updated with the result
of the send (OK-NOT ̲OK) via the common procedure
UPDATE ̲DELV ̲CODE. If the object is of precedence
Flash the common procedure SEND ̲FLASH is called
and via this procedure a QEL is sent to the printers
command Queue.
h) C̲R̲E̲A̲T̲E̲ ̲A̲T̲O̲M̲A̲L̲ ̲S̲E̲N̲D̲ ̲P̲A̲R̲A̲M̲S̲
The following action on the MDP ̲SEND ̲PARAMS is
performed in this procedure:
Checkpoint status set equal TRUE
Maintype and Header Flags copies from QEL attributes
Subtype set equal FOR ̲PRINT
Second word in QEL. Total No of copies 0 -
128
Application profile as described in the CREATE
̲USER ̲PARAMS
DELIVERY
START
EQUIVALENCE (MDP ̲BUFFER(Q ̲LIST ̲OFFSET),
Q ̲LIST: QUEUE ̲LIST);
REF ̲ENTRY = Q ̲LINE ̲NO
ALT ̲DIST = FALSE
ATOMAL ̲PRINT = FALSE
DELV LOOP
TEST ̲SIGN ̲ON ̲USER
SIGN ̲ON ̲USER EQ TRUE? - PERFORM ̲DELIVERY
APP ̲PROFILE(BIT 0) EQ FALSE?
PREC EQ FLASH?
PERFORM ̲DELIVERY
PREC EQ IMMEDIATE? DELV = SIGN ̲OF
ALT
̲DIST
=
TRUE
Q ̲LIST.QUEUE ̲LINE(REF ̲ENTRY).DELIVERY ̲CODE
= DELV ̲CODE
REF ̲ENTRY EQ Q ̲LINE ̲NO + NO ̲OF ̲DELV? EXIT
REF ̲ENTRY = REF ̲ENTRY + 1
END DELV LOOP
ATOMAL ̲PRINT EQ ̲FALSE?
PERFORM ̲ATOMAL ̲PRINT
STOP
Fig. 4.2.1.4.17.5-1
4.2.1.4.18 A̲l̲t̲e̲r̲n̲a̲t̲i̲v̲e̲ ̲D̲i̲s̲t̲
4.2.1.4.18.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This utility module performs alternative
distribution, either to the Duty Officer
or the MDCO or to both, if necessary.
Though the alternative distribution the
delivery codes are updated in the Q-List
so it reflects the current situation.
4.2.1.4.18.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
a) ALTERNATIVE ̲DIST (NO ̲OF ̲DELV : COUNTER
̲TYPE)
b) ALTERNATIVE ̲DIST (R0, 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 NO ̲OF ̲DELV
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 (DEST)
4.2.1.4.18.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
ALTERNATIVE ̲DIST (Internal procedure)
QUIET ̲HOURS ̲DELIVERY (Internal procedure)
CREATE ̲QUIET ̲HOURS ̲SEND ̲PARAMS (Internal
procedure)
CREATE ̲QUEUE ̲REF (External procedure)
UPDATE ̲DELV ̲CODE (External procedure)
SEND ̲FLASH (External procedure)
MDCO ̲DELIVERY (External procedure)
See figure 4.2.1.4.18.3-1
Fig. 4.2.1.4.18.3-1…01…ALTERNATIVE ̲DIST COMPONENTS
4.2.1.4.18.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Refer Source Listings
4.2.1.4.18.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This utility module contains three internal procedures,each
of the procedure is described in the following.
a) A̲L̲T̲E̲R̲N̲A̲T̲I̲V̲E̲ ̲D̲I̲S̲T̲
This procedure tests if Quiet Hours delivery shall
be performed. If so, the procedure QUIET ̲HOURS
̲DELIVERY will be called. After return from this
procedure the delivery code in the Queue List is
checked. If other than the following three codes
are detected the object is sent to the MDCO too.
- DELV ̲PERFORMED (Normal VDUs and SADs)
- ATOMAL ̲PRINT ̲OK
- QUIET ̲HOURS ̲DELV ̲OK
The delivery to the MDCO is performed via the common
procedure MDCO ̲DELIVERY.
b) Q̲U̲I̲E̲T̲ ̲H̲O̲U̲R̲S̲ ̲D̲E̲L̲I̲V̲E̲R̲Y̲
This procedure performs the actual delivery to
the Quiet Hours terminal position. Before sending
the Object the delivery codes are checked against
the code "SIGN ̲OFF". If no delivery codes of that
type are detected the message will not be sent.
The program will instead return to the procedure
ALTERNATIVE ̲DIST, where the object will be sent
to the MDCO.
If delivery shall be performed to the Quiet Hours
position the two procedures CREATE ̲QUIET ̲HOURS
̲SEND ̲PARAMS and CREATE ̲QUEUE ̲REF are called. After
Delivery the Delivery codes will be updated in
accordance with the result of the send by the common
procedure UPDATE ̲DELV ̲CODE.
If the Object is of precedence Flash a Flash notification
will be sent to the terminals common Queue via
the Common procedure SEND ̲FLASH.
c) C̲R̲E̲A̲T̲E̲ ̲Q̲U̲I̲E̲T̲ ̲H̲O̲U̲R̲S̲ ̲S̲E̲N̲D̲ ̲P̲A̲R̲A̲M̲S̲
The following Action on the MDP ̲SEND ̲PARAMS is
performed in this procedure.
Check point status set equal TRUE
Maintype and Header Flags copies from QEL attributes
Subtype set equal FOR DISPLAY
Application profile set equal MSG ̲DELIVERY
Coordination repeat set equal FALSE
Quiet Hours tern. Delv set equal TRUE
4.2.1.4.19 P̲e̲r̲f̲o̲r̲m̲ ̲D̲i̲s̲t̲r̲i̲b̲u̲t̲i̲o̲n̲
4.2.1.4.19.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This utility module is used when distribution
shall be performed by both action and
info SCDs. It calls both of the utility
modules CONV ̲SCD ̲LIST ̲TO ̲Q ̲LIST and DELIVERY
twice. One time for action and one time
for Info.
4.2.1.4.19.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
a) PERFORM ̲DISTRIBUTION(SCD ̲POINTER:
POINTER ̲TYPE,NO ̲OF ̲SCD: COUNTER
̲TYPE)
(ALT ̲DIST: BOOLEAN,
NO ̲OF ̲AC ̲Q ̲LINES: COUNTER
̲TYPE,
NO ̲OF ̲INFO ̲Q ̲LINES: COUNTER
̲TYPE)
b) PERFORM ̲DISTRIBUTION (R0, R1, 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 NO ̲OF ̲SCD (DEST)
R1 SCD ̲POINTER (DEST)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 (DEST)
4.2.1.4.19.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
PERFORM ̲DISTRIBUTION (Internal procedure)
CONV ̲SCD ̲LIST ̲TO ̲Q ̲LIST (External procedure)
DELIVERY (External procedure)
See figure 4.2.1.4.19.3-1
Fig. 4.2.1.4.19.3-1…01…PERFORM DISTRIBUTION COMPONENTS
4.2.1.4.19.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Refer Source Listings
4.2.1.4.19.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
First the Utility module CONV ̲SDC ̲LIST
̲TO ̲Q ̲LIST is called with parameter for
conversion of the action part of the SCD
list. The SCD ̲POINTER received as input
points out where in the MDP ̲BUFFER the
action SCDs starts, and NO ̲OF ̲SCD gives
the number of action SCDs. The same utility
module is called one time more now with
parameters for conversion of the Info
part of the SCD List.
In the same way is the utility module
DELIVERY called.
4.2.1.4.20 S̲T̲A̲ ̲S̲A̲R̲ ̲D̲E̲L̲I̲V̲E̲R̲Y̲
4.2.1.4.20.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This utility module creates statistics and call the
statistics collection monitor procedure. In the end
of the module it sends the view for storage too.
4.2.1.4.20.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
a) STA ̲SAR ̲DELIVERY (MDP ̲STA ̲1:STA ̲GROUP ̲NO ̲TYPE,
MDP ̲STA ̲2:STA ̲GROUP ̲NO ̲TYPE,
MDP ̲SAR ̲GROUP:SAR ̲STORAGE ̲TYPE;
NO ̲OF ̲TERM: COUNTER ̲TYPE,
ASS ̲REQ ̲INDIC: BOOLEAN)
b) STA ̲SAR ̲DELIVERY (R0, R1, R2, R3, 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̲
R0 MDP ̲STA ̲1 (DEST)
R1 MDP ̲STA ̲2 (DEST)
R2 MDP ̲SAR ̲GROUP (DEST)
R3 NO ̲OF ̲TERM (DEST)
R4 ASS ̲REQ ̲INDIC (DEST)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 (DEST)
4.2.1.4.20.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s
SAR ̲STA ̲DELIVERY (Internal procedure)
CREATE ̲STA ̲RECORD (Internal procedure)
CREATE ̲SAR ̲SEND ̲PARAMS (Internal procedure)
CREATE ̲QUEUE ̲REF (External procedure)
See figure 4.2.1.4.20.3-1
Fig. 4.2.1.4.20.3-1…01…STA SAR DELIVLERY COMPONENTS
4.2.1.4.20.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Refer Source Listings
4.2.1.4.20.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This utility module creates statistics and send the
message for storage. It contains three internal procedures
which are described in the following:
a) S̲T̲A̲ ̲S̲A̲R̲ ̲D̲E̲L̲I̲V̲E̲R̲Y̲
This is the main procedure within the module. In
the start of the procedure it calls "CREATE ̲STA
̲RECORD" which creates the current statistics record.
Then first the statistics collection monitor procedure
is called for the whole distribution, and after
this it is called for each of the terminals in
the distribution. In the call parameters for these
call the current Device ID and the Logical Designator
is specified.
In the end of the procedure the message is sent
for storage. Before the actual send the CREATE
̲SAR ̲SEND ̲PARAMS and CREATE ̲QUEUE ̲REF are called.
b) C̲R̲E̲A̲T̲E̲ ̲S̲T̲A̲ ̲R̲E̲C̲O̲R̲D̲
This procedure create the current Statistics record.
The MSG ̲LENGTH is calculated by adding the length
of the SCD ̲LIST ̲FIELD, the ADDRESS ̲FIELD and the
TEXT ̲FIELD. The other parameters are taken from
the MDP ̲PARAM.
c) C̲R̲E̲A̲T̲E̲ ̲S̲A̲R̲ ̲S̲E̲N̲D̲ ̲P̲A̲R̲A̲M̲S̲
This procedure creates the send parameters. Maintype
and Flags are copied from the MDP ̲QEL ̲ATTR. Subtype
is FOR ̲STORAGE and second word in the QEL will
contain the current SAR ̲STORAGE ̲TYPE. The APP ̲PROFILE
will be set equal MSG ̲DELIVERY. The Checkpoint
status will be set equal true.
4.2.1.5 C̲o̲m̲m̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲D̲a̲t̲a̲
Refer Source Listing
4.2.1.6 C̲o̲m̲m̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲
4.2.1.6.1 C̲R̲E̲A̲T̲E̲ ̲N̲E̲W̲ ̲V̲I̲E̲W̲
4.2.1.6.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̲
This common procedure creates a new view
which Reference all the fields from the
Old View except the QUEUE ̲LIST ̲FIELD.
A new QUEUE ̲LIST ̲FIELD is created.
4.2.1.6.1.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
a) CREATE ̲NEW ̲VIEW
b) CREATE ̲NEW ̲VIEW (R6):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̲
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 (DEST)
4.2.1.6.1.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Refer Source Listings
4.2.1.6.1.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
This common procedure creates a new view which
reference all the fields from the old view
given as input by the MDP ̲VIEW ̲REF ̲1 except
the QUEUE ̲LIST ̲FIELD. A new QUEUE ̲LIST ̲FIELD
is created with the same size as the old one,
and the new view reference is given as output
from the procedure.
4.2.1.6.2 C̲R̲E̲A̲T̲E̲ ̲Q̲U̲E̲U̲E̲ ̲R̲E̲F̲
4.2.1.6.2.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This common procedure creates a Queue
Reference which is used in a set of CSF
Calls.
4.2.1.6.2.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
a) CREATE ̲QUEUE ̲REF (MDP ̲Q ̲GROUP: MDP
̲Q ̲GROUP ̲TYPE,
MDP ̲MAIN ̲Q
̲ID: INTEGER
MDP ̲SUB ̲Q
̲ID: MDP ̲SUB
̲Q ̲ID ̲TYPE)
(QUEUE-REF:
QUEUE ̲REFERENCES)
b) CREATE ̲QUEUE ̲REF (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̲
R1 MDP ̲Q ̲GROUP (DEST)
R2 MDP ̲MAIN ̲Q ̲ID (DEST)
R3 MDP ̲SUB ̲Q ̲ID (DEST)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 (DEST)
4.2.1.6.2.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲i̲o̲n̲
Refer Source Listings
4.2.1.6.2.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
This procedure creates a QUEUE ̲REFERENCE
record from the INPUT parameters MDP
̲Q ̲GROUP, MDP ̲MAIN ̲Q ̲ID and MDP ̲SUB
̲Q ̲ID. If SINGLE is specified in the
MDP ̲Q ̲GROUP the MDP ̲MAIN ̲Q ̲ID will
be used as Main queue reference itself.
If another MDP ̲Q GROUP is specified,
the Main queue reference will create
the MDP ̲Q ̲GROUP and the MDP ̲MAIN ̲Q
ID. The MDP ̲SUB ̲Q will on basis of
the MDP ̲SUB ̲Q ̲ID be used to specify
the current subqueue reference.
4.2.1.6.3 S̲E̲N̲D̲ ̲F̲L̲A̲S̲H̲
4.2.1.6.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̲
This common procedure creates a FLASH
notification and sends it to the appropriate
Queue.
4.2.1.6.3.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
a) SEND ̲FLASH (MDP ̲Q ̲GROUP: MDP
̲Q
̲GROUP
̲TYPE,
MDP ̲MAIN
̲Q ̲ID: MDP
̲MAIN
̲Q
̲ID
̲TYPE)
b) SEND ̲FLASH (R1, R2, 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 MDP ̲Q ̲GROUP (DEST)
R2 MDP ̲MAIN ̲Q ̲ID (DEST)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 (DEST)
4.2.1.6.3.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Refer Source Listings
4.2.1.6.3.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
This common procedure creates the appropriate
SEND ̲PARAMS for a FLASH ̲NOTIFICATION.
Via the Common procedure CREATE ̲QUEUE
̲REF the current QUEUE ̲REFERENCE is created.
At the end of this procedure the QEL is
send. The SEND ̲PARAMS is as following:
CHECK ̲STATUS = TRUE
MAINTYPE = FLASH ̲NOTIFICATION
SUBTYPE = FLASH ̲ITEM ̲ARRIVED
HEADER ̲INF = MDP ̲VIEW ̲REF ̲1
APP ̲PROFILE =ZERO
The HEADER.FLAGS are set according to
the following if the message shall be
delivered to a VDU:
If the message-type is equal Release are
flag = FLASH ̲RELEASE.
Else if the MSG shall be sent to MDCO
are flag = MDP ̲ARE ̲THE ̲SENDER, else are
flag = ZERO.
4.2.1.6.4 U̲p̲d̲a̲t̲e̲ ̲D̲e̲l̲v̲ ̲C̲o̲d̲e̲
4.2.1.6.4.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This common procedure updates the delivery
code in the Queue list in accordance with
the specified input.
4.2.1.6.4.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
a) UPDATE ̲DELV ̲CODE (Q ̲LINE ̲NO: COUNTER
̲TYPE,
NO ̲OF ̲DELV:COUNTER
̲TYPE,
DELV ̲CODE:
INTEGER,
NEW ̲DELV ̲CODE:
INTEGER)
b) UPDATE ̲DELV ̲CODE (R0, R1, R2, R3)
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 Q ̲LINE ̲NO (DEST)
R1 NO ̲OF ̲DELV (DEST)
R2 DELV ̲CODE (DEST)
R3 NEW ̲DELV ̲CODE (DEST)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 (DEST)
4.2.1.6.4.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Refer Source Listings
4.2.1.6.4.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
This common procedure updates the
Queue list delivery codes of type
"DELV ̲CODE". They are updated to "NEW
̲DELV ̲CODE". The update will start
from "Q ̲LINE ̲NO" and the number of
Queue lines as specified in NO ̲OF
̲DELV.
4.2.1.6.5 U̲P̲D̲A̲T̲E̲ ̲M̲D̲C̲O̲ ̲E̲R̲R̲O̲R̲ ̲L̲I̲S̲T̲
4.2.1.6.5.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This common procedure updates the MDCO
̲ERROR ̲LIST in accordance with the input.
The updated MDCO ̲ERROR ̲LIST is returned
to caller.
4.2.1.6.5.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲s̲
a) UPDATE ̲MDCO ̲ERROR ̲LIST (ERROR ̲INPUT:ERROR
̲INPUT ̲TYPE,
b) UPDATE ̲MDCO ̲ERROR ̲LIST (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̲
R4 ERROR ̲INPUT (DEST)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 (DEST)
4.2.1.6.5.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Refer Source Listings
4.2.1.6.5.3 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
The MDCO ̲ERROR ̲LIST will be updated in
accordance with the input.
The following errors will be used:
- GARBLED ̲SICS (BIT ̲0)
- MISSING ̲SICS (BIT ̲1)
- SPECIAL ̲SICS (BIT ̲2)
- SDL ̲LIST ̲EMPTY (BIT ̲3)
- SPEC ̲BY ̲SUPV (BIT ̲4)
- INT ̲HAND ̲INST (BIT ̲5)
- INT ̲S ̲H ̲I ̲EXCL (BIT ̲6)
- INT ̲S ̲H ̲I ̲CRYPTO (BIT ̲7)
- MORE ̲THAN ̲ONE ̲SHI (BIT ̲8)
- ABB ̲MSG ̲FORMAT (BIT ̲9)
- INCON ̲SPH ̲SIC (BIT ̲10)
- EXERMSG ̲NON ̲EXERSICS (BIT ̲11)
- EXERMSG ̲NON ̲SUBJSICS (BIT ̲12)
- MISSING ̲CONSISTENCE ̲SIC (BIT ̲13)
- SUBJMSG ̲NON ̲SUBJSICS (BIT ̲14)
- ILLEGAL ̲SIC ̲POSITION (BIT ̲15)
4.2.1.6.6 M̲D̲C̲O̲ ̲D̲E̲L̲I̲V̲E̲R̲Y̲
4.2.1.6.6.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This common procedure performs delivery
to the MDCO. If the object is of precedence
FLASH a FLASH ̲NOTIFICATION will be sent
too the MDCO via the common procedure
SEND ̲FLASH.
4.2.1.6.6.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲s̲
a) MDCO ̲DELIVERY (PREC: PRECEDENCE ̲TYPE,
MDCO
̲ASS ̲TYPE:
MDCO ̲ASSISTANCE
̲TYPE,
QEL
̲INFO ̲TYPE:
INTEGER,
b) MDCO ̲DELIVERY (R0, R1, R2, R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲r̲t̲i̲o̲n̲s̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 PREC (DEST)
R1 MDCO ̲ASS ̲TYPE (DEST)
R2 MDCO ̲INFO (DEST)
R& LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 (DEST)
4.2.1.6.6.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Refer Source Listings
4.2.1.6.6.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
This common procedure performs the
delivery to the MDCO. The MDP ̲SEND
̲PARAMS is created and the QUEUE ̲REF
is created via the common procedure
CREATE ̲QUEUE ̲REF. If the object is
of precedence Flash a FLASH ̲NOTIFICATION
will be sent to the common MDCO command
queue via the common procedure SEND
̲FLASH.
4.2.1.6.7 M̲D̲C̲O̲ ̲R̲e̲s̲p̲o̲n̲s̲e̲
4.2.1.6.7.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This common procedure returns either the
message to the MDCO for further assistance
or send an acknowledge that the distribution
has been performed.
4.2.1.6.7.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
a) MDCO ̲RESPONSE(ALT ̲DIST: BOOLEAN)
b) MDCO ̲RESPONSE (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 (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 (DEST)
4.2.1.6.7.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Refer Source Listings
4.2.1.6.7.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
This common procedure performs a reply
to the MDCO when he has been involved
before during the distribution of the
current message. Either is the message
returned to MDCO or an acknowledge for
succeded distribution. The actual send
is performed by a SEND ̲REPLY.
4.2.1.7 S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
Not applicable for this package, because
it contains only one subpackage.
4.3 M̲E̲M̲O̲R̲Y̲ ̲L̲A̲Y̲O̲U̲T̲
See section 2.3.5