top - download
⟦f70b994da⟧ Wang Wps File
Length: 50464 (0xc520)
Types: Wang Wps File
Notes: CPS/SDS/039
Names: »2161A «
Derivation
└─⟦8b37ca311⟧ Bits:30006109 8" Wang WCS floppy, CR 0174A
└─ ⟦this⟧ »2161A «
WangText
…0a……00……00……00……00…B…02……00……00…B
B…06…B…07…A…0a…A…0b…A…0c…A…0d…A…0e…A…0f…A…02…@…09…@…0e…@
@…07…?…0d…?…0f…?…02…?
?…07…>…0b…>…0f…> =…09…=…0b…=…0c…=…0e…=…0f…=…00…=…07…<…0c…<…86…1 …02… …02… …02…
…02…CPS/SDS/039
…02…841101…02……02…
USER VDU
DETAILED DESIGN SPECIFICATION…02…ISSUE 1…02…CAMPS
4.2.4 R̲e̲t̲r̲i̲e̲v̲e̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲
The Retrieve Subpackage (RETR) is responsible for reception
and treatment of retrieval answer from SAR.
4.2.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̲
The functions included in this subpackage are the following:
- reception of off-line/on-line notification
- reception of retrieved items
The functional breakdown is shown in figure 4.2.4.1-1.
Retrieved items and off-line/on-line notifications
are received from SAR in the retrieve queue. After
analysis, the received item is sent to the destination.
FIGURE 4.2.4.1-1
RETR FUNCTIONAL DESCRIPTION
4.2.4.2 S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲
The retrieve subpackage consists of one coroutine containing
the following modules and procedures:
M̲o̲d̲u̲l̲e̲s̲:
- RETRIEVAL ̲MAIN
C̲o̲m̲m̲o̲n̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲:
None
M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲:
- INTERNAL ̲BUG
- DISMANTLE ̲QEL
- SIGNAL ̲UFCO
- SEND ̲REQ ̲UMAM
- SEND ̲RESPONSE
- RECEIVE ̲AND ̲CHECK ̲QEL
- DECIDE ̲ACTION
4.2.4.3 D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲A̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲ ̲W̲i̲t̲h̲i̲n̲ ̲R̲e̲t̲r̲
4.2.4.3.1 D̲a̲t̲a̲ ̲F̲l̲o̲w̲
The HIPO diagrammes overleaf show the data flow of
RETR.
4.2.4.3.2 C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲
The call structure within RETR is shown on figure 4.2.4.3-5
identifying all calls between module and its module
components.
DIAG. 4.2.4.3-1
OFFLINE/ONLINE NOTIFICATION
DIAG. 4.2.4.3-2
ONLINE/RETRIEVAL/APPEND
DIAG. 4.2.4.3-3
OFFLINE RETRIEVAL
DIAG. 4.2.4.3-4
OFFLINE APPEND
FIGURE 4.2.4.3-5
MODULE CALL STRUCTURE
4.2.4.4 M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
4.2.4.4.1 R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲M̲a̲i̲n̲ ̲M̲o̲d̲u̲l̲e̲
4.2.4.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 purpose of this module is to receive input from
the Retrieve Queue and to analyse the received QEL-attributes.
The result of the analyse is signaled to UFCO in case
of on-line retrieval. In case of off-line retrieval,
then the item received will be sent to the Response
Queue. In case of off-line append the received item
will be sent to UMAM.
4.2.4.4.1.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) RETR ̲MAIN
b) RETR ̲MAIN (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̲
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0-R7 (DEST)
4.2.4.4.1.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
a) I̲N̲T̲E̲R̲N̲A̲L̲ ̲B̲U̲G̲
Reports detected internal bugs (in algorithms)
to SSC. The user-action is GIVE ̲UP (i.e. retire
VUP-process). This procedure will never return.
b) D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲Q̲E̲L̲
Dismantle the received QEL. If a view, it will
neither be closed (never opened) nor checkpointed
(views from SAR are not ̲permanent).
c) S̲I̲G̲N̲A̲L̲ ̲U̲F̲C̲O̲
Signals specified command to UFCO's OPERATION ̲SEMAPHORE.
UFCO must expect the command (online in SAR sense,
VDU attended). This should be checked immediately
before hand. A pool of 2 operations is available
(i.e. max. 2 consecutive SAR replies syncronized
to UFCO for each SEND ̲REQUEST). Max. 1 of these
operations will grant UFCO access to VAR OP ̲QEL
̲ATTR.
d) S̲E̲N̲D̲ ̲R̲E̲Q̲ ̲U̲M̲A̲M̲
Only to be invoked when reply from SAR concerns
off-line append. Make a SEND ̲REQUEST to UMAM. UMAM
will reply to the response queue. The QEL in concern
must belong to an append transaction already known
by UMAM (i.e. UFCO shall have made a prior status
report). The specified subtype (APPEND ̲
NOTIF or FOR ̲CONT'D ̲PREP) is used for the send.
e) S̲E̲N̲D̲ ̲R̲E̲S̲P̲Q̲
The QEL from SAR is - unchanged - passed on to
the response queue. If queue is blocked, the QEL
is lost.
f) R̲E̲C̲E̲I̲V̲E̲ ̲A̲N̲D̲ ̲C̲H̲E̲C̲K̲ ̲Q̲E̲L̲
Firstly: To receive a QEL in the RETR ̲QUEUE (wait
until a QEL arrives).
Secondly: To check that QEL in RETR ̲QUEUE complies
to I/F SAR- VUP.
Thirdly: Update VAR QEL with data supplied from
system call QMON ̲RECEIVE ̲FIRST. An extract of this
is put in field QEL ̲TYPE.
g) D̲E̲C̲I̲D̲E̲ ̲A̲C̲T̲I̲O̲N̲
This procedure performs further evaluation of received
QEL (if required). The information taken care of
is: on-line/off-line ?, append/retrieval ? Also
taken in account is whether the VDU is attended
or not (boolean USER ̲ACTIVE). In the latter case
UFCO must not be signalled.
4.2.4.4.1.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
D*CPS ̲PREFIX.D*GENERAL
D*CPS ̲PREFIX.D*DAMOS ̲GENERAL
D*CPS ̲PREFIX.D*CPS ̲CONF
D*CPS ̲PREFIX.D*CPS ̲GENERAL
D*CPS ̲PREFIX.D*CSF ̲GENERAL
D*CPS ̲PREFIX.D*QUEUE ̲MON
D*CPS ̲PREFIX.D*COROUTINE ̲MON
D*CPS ̲PREFIX.D*SERVICE ̲SYS
D*CPS ̲PREFIX.D*SYS ̲CALL ̲MON
D*CPS ̲PREFIX.D*CPS ̲ERROR ̲HAND
D*CPS ̲PREFIX.D*HND ̲GENERAL
D*CPS ̲PREFIX.D*FH ̲GENERAL
D*CPS ̲PREFIX.D*TMP ̲GENERAL
D*CPS ̲PREFIX.D*VUS ̲CAP
D*CPS ̲PREFIX.D*QEL ̲MAINTYPE
D*CPS ̲PREFIX.D*MSG ̲SUBTYPE
D*CPS ̲PREFIX.D*SAR ̲SUBTYPE
D*CPS ̲PREFIX.D*ACK ̲SUBTYPE
D*CPS ̲PREFIX.D*NOTIF ̲SUBTYPE
D*CPS ̲PREFIX.D*TEP ̲INT ̲SUBTYPE
D*CPS ̲PREFIX.D*CPS ̲APP ̲GENERAL
D*CPS ̲PREFIX.D*TEP
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
INIT ̲AREA
VUS ̲S2 (m)
INPUT ̲CIF (m)
TRANSACTION ̲ID (m)
USER ̲ACTIVE
NOT ̲OP (m)
RETR ̲OP (m)
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
TYPE
QEL ̲TYPE = (Q ̲ONL ̲NOTI ̲ACK, Q ̲OFFL ̲NOTI ̲ACK,
Q ̲ERROR ̲ACK, Q ̲MSG, Q ̲COMMENT, Q ̲CATALOG,
Q ̲RELS ̲NOTI, Q ̲ILLEGAL,
Q ̲ONL ̲PROF ̲FAULT)
ACTION ̲TYPE = (A ̲DISM, A ̲QERR ̲CONT, A ̲QERR ̲GIVUP,
A ̲RESPQ, A ̲UFCO ̲QERR, A ̲UFCO ̲ONL,
A ̲UFCO ̲OFFL, A ̲UFCO ̲ERR; A ̲UFCO
̲RETR,
A ̲UFCO ̲APP, A ̲UMAN ̲ERR, A ̲UMAM ̲MSG)
QEL ̲DESCRIPTOR = RECORD
ATTR: QEL ̲ATTRIBUTES
QEL ̲TYPE: QEL ̲TYPE
REF: INTEGER
END
INF = ARRAY (1 ... 3) OF INTEGER
VAR
SAVELINK: INTEGER
UMAMQ: QUEUE ̲REFERENCE
SEND ̲PARAM: SEND ̲PARAMS
CP ̲QEL ̲ATTR: QEL ̲ATTRIBUTES
NEXT ̲CP: (S ̲NOT ̲OP, S ̲RETR ̲OP)
RETR ̲QUEUE: QUEUE ̲REFERENCE
CONST
P ̲ONL ̲BIT = 0, P ̲APP ̲NIT = 1
X ̲ONL ̲BIT = 1
X ̲APP ̲ONL ̲BITS = 2
ONL = BIT ̲0, OFFL = 0
APP = BIT ̲1, RETR = 0
INIT
RESPOQ.MAIN ̲QUEUE = VUS ̲ARRQ
RESPOQ.SUB ̲QUEUE = RESP ̲SUBQ
UMAMQ.MAIN ̲QUEUE = UMAM ̲COLQ
UMAMQ.SUB ̲QUEUE = U ̲APPENDQ
RETR ̲QUEUE.MAIN ̲QUEUE = VUS ̲ARRQ
RETR ̲QUEUE.SUB ̲QUEUE = RETR ̲SUBQ
SEND ̲PARAM.INFORMATION ̲TYPE = TRUE
SEND ̲PARAM.CHECKP ̲STATUS = FALSE
NEXT ̲OP = S ̲NOT ̲OP
4.2.4.4.1.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
Objects received in the retrieve queue are analysed.
The following actions are taken:
- Unknown QEL-types are sent to SSC and UFCO is informed.
- Online/Offline notifications are signalled to UFCO
For online retrieval it is checked if a user is signed
on. If not so, the received item is treated as offline
retrieval.
Online retrieval results are signalled to UFCO.
Offline retrieved items for display are sent to the
Response queue.
Offline retrieved item for append are sent to UMAM.
RETR ̲MAIN
MAIN ̲LOOP
R̲E̲C̲E̲I̲V̲E̲ ̲A̲N̲D̲ ̲C̲H̲E̲C̲K̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲4̲.̲4̲.̲1̲.̲3̲.̲6̲)̲
D̲E̲C̲I̲D̲E̲ ̲A̲C̲T̲I̲O̲N̲ ̲(̲A̲C̲T̲I̲O̲N̲)̲(̲4̲.̲2̲.̲4̲.̲4̲.̲1̲.̲3̲.̲7̲)̲
A ̲DISM: D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲4̲.̲4̲.̲1̲.̲3̲.̲2̲)̲
A ̲QERR ̲CONT: T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
A ̲QERR ̲GIVEUP: T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
A ̲RESP: S̲E̲N̲D̲ ̲R̲E̲S̲P̲Q̲ ̲(̲4̲.̲2̲.̲4̲.̲4̲.̲1̲.̲3̲.̲5̲)̲
D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲4̲.̲4̲.̲1̲.̲3̲.̲2̲)̲
A ̲UFCO ̲QERR: S̲I̲G̲N̲A̲L̲ ̲U̲F̲C̲O̲ ̲(̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲)̲(̲4̲.̲2̲.̲4̲.̲4̲.̲1̲.̲3̲.̲3̲)̲
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
A ̲UFCO ̲ONL: S̲I̲G̲N̲A̲L̲ ̲U̲F̲C̲O̲ ̲(̲O̲N̲-̲L̲I̲N̲E̲ ̲N̲O̲T̲I̲F̲I̲C̲A̲T̲I̲O̲N̲)̲
(̲4̲.̲2̲.̲4̲.̲4̲.̲1̲.̲3̲.̲3̲)̲
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
A ̲UFCO ̲OFFL: S̲I̲G̲N̲A̲L̲ ̲U̲F̲C̲O̲ ̲(̲O̲F̲F̲-̲L̲I̲N̲E̲ ̲N̲O̲T̲I̲F̲I̲C̲A̲T̲I̲O̲N̲)̲
(̲4̲.̲2̲.̲4̲.̲4̲.̲1̲.̲3̲.̲3̲)̲
D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲4̲.̲4̲.̲1̲.̲3̲.̲2̲)̲
A ̲UFCO ̲ERR: S̲I̲G̲N̲A̲L̲ ̲U̲F̲C̲O̲ ̲(̲R̲E̲T̲R̲I̲E̲V̲A̲L̲ ̲E̲R̲R̲O̲R̲)̲(̲4̲.̲2̲.̲4̲.̲4̲.̲1̲.̲3̲.̲3̲)̲
D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲4̲.̲4̲.̲1̲.̲3̲.̲2̲)̲
A ̲UFCO ̲RETR: S̲I̲G̲N̲A̲L̲ ̲U̲F̲C̲O̲ ̲(̲R̲E̲T̲R̲I̲E̲V̲A̲L̲ ̲N̲O̲T̲I̲F̲I̲C̲A̲T̲I̲O̲N̲
(̲4̲.̲2̲.̲4̲.̲4̲.̲1̲.̲3̲.̲3̲)̲
A ̲UFCO ̲APP: S̲I̲G̲N̲A̲L̲ ̲U̲F̲C̲O̲ ̲(̲A̲P̲P̲E̲N̲D̲ ̲N̲O̲T̲I̲F̲I̲C̲)̲(̲4̲.̲2̲.̲4̲.̲4̲.̲1̲.̲3̲.̲3̲)̲
A ̲UMAM ̲ERR: S̲E̲N̲D̲ ̲R̲E̲Q̲ ̲U̲M̲A̲M̲ ̲(̲A̲P̲P̲E̲N̲D̲ ̲N̲O̲T̲I̲F̲I̲C̲A̲T̲I̲O̲N̲)̲
(̲4̲.̲2̲.̲4̲.̲4̲.̲1̲.̲3̲.̲4̲)̲
D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲4̲.̲4̲.̲1̲.̲3̲.̲2̲)̲
A ̲UMAM ̲MSG S̲E̲N̲D̲ ̲R̲E̲Q̲ ̲U̲M̲A̲M̲ ̲(̲F̲O̲R̲ ̲C̲O̲N̲T̲I̲N̲U̲E̲ ̲P̲R̲E̲P̲)̲
(̲4̲.̲2̲.̲4̲.̲4̲.̲1̲.̲3̲.̲4̲)
DISMANTLE QEL (4.2.4.4.1.3.2)
OTHERWISE? I̲N̲T̲E̲R̲N̲A̲L̲ ̲B̲U̲G̲ ̲(̲4̲.̲2̲.̲4̲.̲4̲.̲1̲.̲3̲.̲1̲)̲
END CASE
END LOOP
FIGURE 4.2.4.4.1-1
4.2.4.5 C̲o̲m̲m̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲D̲a̲t̲a̲
Refer 4.2.4.4.1.4
4.2.4.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̲
None
4.2.4.7 S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
4.2.4.7.1 R̲e̲t̲r̲-̲U̲f̲c̲o̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
The following notifications are sent from RETR to UFCO
via operation semaphore VUS ̲S2:
QERROR NOTIFICATION
RETRIEVAL NOTIFICATION
APPEND ̲NOTIFICATION
ONLINE NOTIFICATION
OFFLINE NOTIFICATION
RETRIEVAL ERROR
4.2.4.7.2 R̲E̲T̲R̲ ̲U̲M̲A̲M̲
Refer CPS/ICD/009
4.2.5 U̲s̲e̲r̲ ̲M̲e̲s̲s̲a̲g̲e̲ ̲A̲c̲c̲e̲s̲s̲ ̲M̲o̲n̲i̲t̲o̲r̲i̲n̲g̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲
The User Message Access Monitoring (UMAM) process has
the responsibility for the status collecting and status
generating. Furthermore, UMAM performs the access control
to the preparation database.
4.2.5.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The following functions are included in this subpackage
(refer figure 4.2.5.1-1):
- collect status
- generate status
- message access control
- supervisory control functions
- error handling
FIGURE 4.2.5.1-1…01…UMAM Functional Description
4.2.5.1.1 C̲o̲l̲l̲e̲c̲t̲ ̲S̲t̲a̲t̲u̲s̲ ̲(̲1̲.̲0̲)̲
Status update requests are received from VUP and MSA
in the Collect Queue. The QEL will identify the type
of status. They are:
- delivery message status
- release status
- outgoing message status
- service message status
a) S̲t̲a̲t̲u̲s̲ ̲C̲h̲a̲n̲g̲e̲s̲ ̲(̲1̲.̲1̲)
The referenced CIF is looked up in the PREP ̲AREA
or EXPAND AREA and status is changed. The CIF currently
referenced from the status record will be dismantled
and the new CIF will be inserted.
b) S̲t̲a̲t̲u̲s̲ ̲U̲p̲d̲a̲t̲i̲n̲g̲ ̲(̲1̲.̲2̲)̲
The received data buffer will be inserted as a
part of the delivery status.
c) O̲f̲f̲l̲i̲n̲e̲ ̲A̲p̲p̲e̲n̲d̲ ̲C̲h̲a̲n̲g̲e̲s̲ ̲(̲1̲.̲3̲)̲
The CIF which has requested the offline append
is searched and status is changed to append complete.
An Append Notification is returned to the drafter.
4.2.5.1.2 G̲e̲n̲e̲r̲a̲t̲e̲ ̲S̲t̲a̲t̲u̲s̲ ̲(̲2̲.̲0̲)̲
Two types of status are generated. They are:
- user requested status
- periodic generated status.
a) U̲s̲e̲r̲ ̲R̲e̲q̲u̲e̲s̲t̲e̲d̲ ̲S̲t̲a̲t̲u̲s̲ ̲(̲2̲.̲1̲)̲
Upon request from a user or operator, a status
is generated. There are four types of status which
can be requested:
- outgoing message status
- message release status
- delivery status
- service message status.
Information about the terminal is looked up in
the File Directory. The relevant records are then
transferred from the status file to a temporary
CIF and sent to the requestor. The CIF is then
sent to the requestor.
b) P̲e̲r̲i̲o̲d̲i̲c̲ ̲G̲e̲n̲e̲r̲a̲t̲e̲d̲ ̲S̲t̲a̲t̲u̲s̲ ̲ ̲(̲2̲.̲2̲)̲
A summary status is generated each day at 00.00
hours and sent to the supervisor.
The status is generated per terminal/device
When status has been generated for all terminals/devices,
then the status files will be cleared and the file
directories will be reset.
c) G̲e̲n̲e̲r̲a̲t̲e̲ ̲S̲e̲r̲v̲i̲c̲e̲ ̲M̲e̲s̲s̲a̲g̲e̲ ̲S̲t̲a̲t̲u̲s̲ ̲(̲2̲.̲3̲)̲
A service message status is generated and sent
to the requestor. The status will be generated
by sorting the EXPAND AREA, PREP AREA, COLLECT
AREA and OUT AREA.
d) G̲e̲n̲e̲r̲a̲t̲e̲ ̲O̲u̲t̲g̲o̲i̲n̲g̲ ̲M̲e̲s̲s̲a̲g̲e̲ ̲S̲t̲a̲t̲u̲s̲ ̲(̲2̲.̲4̲)̲
An outgoing message status is generated and sent
to the requestor. The status will be generated
by sorting the EXPAND AREA, PREP AREA, COLLECT
AREA and OUT AREA.
e) G̲e̲n̲e̲r̲a̲t̲e̲ ̲R̲e̲l̲e̲a̲s̲e̲ ̲M̲e̲s̲s̲a̲g̲e̲ ̲S̲t̲a̲t̲u̲s̲ ̲(̲2̲.̲5̲)
A release message status is generated and sent
to the requestor. The status will be generated
by sorting the COLLECT AREA and RELEASE AREA.
f) G̲e̲n̲e̲r̲a̲t̲e̲ ̲D̲e̲l̲i̲v̲e̲r̲y̲ ̲S̲t̲a̲t̲u̲s̲ ̲(̲2̲.̲6̲)
A delivery status is generated for the required
terminal/device and sent to the requestor. The
status will be generated by sorting the DELIVER
AREA, and COLLECT ̲AREA.
4.2.5.1.3 M̲e̲s̲s̲a̲g̲e̲ ̲A̲c̲c̲e̲s̲s̲-̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲3̲.̲0̲)
Deletion requests, edit requests and VDU page retrieval
requests inserted by a user or operator are received
in the Collect Queue.
a) U̲s̲e̲r̲ ̲D̲e̲l̲e̲t̲i̲o̲n̲ ̲R̲e̲q̲u̲e̲s̲t̲ ̲(̲3̲.̲1̲)̲
Depending on the message status, the deletion request
is either sent to the supervisor or the referenced
item is deleted from the Preparation File
b) E̲d̲i̲t̲ ̲R̲e̲q̲u̲e̲s̲t̲ ̲(̲3̲.̲2̲)
If the reference message is in a state where it
is available for editing, then the message is sent
to the requesting terminal. If the user does not
have access to the message, then a response message
is returned to the requestor.
c) V̲D̲U̲-̲P̲a̲g̲e̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲(̲3̲.̲3̲)
If the referenced Display name can be found in
the Display table, then a copy of the stored VDU-page
will be sent to the requestor.
d) V̲D̲U̲-̲P̲a̲g̲e̲ ̲S̲t̲o̲r̲a̲g̲e̲ ̲(̲3̲.̲4̲)̲.
If the referenced Display name can be found in
the Display table, then the received CIF will be
stored in the Display Database, otherwise the received
CIF will be sent to the MDCO.
4.2.5.1.4 S̲u̲p̲e̲r̲v̲i̲s̲o̲r̲y̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲ ̲(̲4̲.̲0̲)̲
Commands inserted by the Supervisor are received in
the Collect Queue.
a) Q̲U̲E̲U̲E̲ ̲S̲T̲A̲T̲E̲ ̲R̲E̲Q̲U̲E̲S̲T̲ ̲(̲4̲.̲1̲)
The number of messages under preparation is calculated
and sent to the Supervisor Printer.
b) C̲A̲N̲C̲E̲L̲ ̲A̲L̲L̲ ̲P̲R̲E̲P̲ ̲Q̲U̲E̲U̲E̲S̲ ̲(̲4̲.̲2̲)
All messages under preparation is deleted and a
command completion report is generated.
c) C̲A̲N̲C̲E̲L̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲P̲R̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲(̲4̲.̲3̲)̲
All messages under preparation for the specified
terminal is deleted. A command completion report
is generated.
d) D̲E̲L̲E̲T̲E̲ ̲C̲I̲F̲ ̲(̲4̲.̲4̲)̲
The specified CIF is deleted from the preparation
files and an acknowledge is returned.
e) C̲A̲N̲C̲E̲L̲ ̲R̲E̲L̲E̲A̲S̲E̲ ̲Q̲U̲E̲U̲E̲(̲S̲)̲ ̲(̲4̲.̲5̲)̲
Items in preparation files with status equal send
̲
for ̲release will be available for further editing.
This command applies either all LTD's or one LTD.
4.2.5.1.5 E̲r̲r̲o̲r̲ ̲R̲e̲p̲o̲r̲t̲i̲n̲g̲ ̲(̲5̲.̲0̲)̲
a) Q̲u̲e̲u̲e̲ ̲E̲r̲r̲o̲r̲ ̲R̲e̲p̲o̲r̲t̲i̲n̲g̲ ̲(̲5̲.̲1̲)̲
Reports to SSC that an unexpected Queue element
has been received.
b) I̲n̲t̲e̲r̲n̲a̲l̲ ̲E̲r̲r̲o̲r̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲ ̲(̲5̲.̲2̲)̲
Reports to SSC that an illegal condition has been
fulfilled or an unexpected response has been received
from monitor procedures called.
4.2.5.2 S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲
Figure 4.2.5.2-1 shows a hierarchical overview of the
software structure within UMAM. UMAM consists of one
process performing the functions listed in section
4.2.5.1.
FIGURE 4.2.5.2-1…01…UMAM Software Structure
4.2.5.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.5.3.1 D̲a̲t̲a̲ ̲F̲l̲o̲w̲
The HIPO diagrams overleaf show the data flow of UMAM
The dataflow between the files of UMAM is shown in
figure 4.2.5.3-9.
4.2.5.3.2 C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲
The control logic of UMAM is shown in the module tree
refer figure 4.2.5.2-1 and figure 4.2.5.3-10 to 4.2.5.3-27.
Figure 4.2.5.3-1/8
FIGURE 4.2.5.3-9…01…File Data Flow
4.2.5.3.9 D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ ̲O̲f̲ ̲H̲o̲w̲ ̲U̲m̲a̲m̲ ̲W̲o̲r̲k̲s̲ ̲O̲n̲ ̲F̲i̲l̲e̲s̲ ̲A̲n̲d̲ ̲B̲u̲f̲f̲e̲r̲
UMAM consists of 9 function blocks concerning different
transactions.
These are: Preparation, Continue Preparation, Delete,
Deliver, Release, Status, Midnight-status,
VDU-page, Supervisor cmd.
Data kept in files or variables are stored in four
record types i.e.:
PREP ̲REC ̲TYPE,
INTA ̲REC ̲TYPE,
REL ̲STA ̲TYPE,
DEL ̲BUF ̲TYPE
Information about file contents is kept in variable
FILE ̲DIR, which is stored in file UMAM ̲ACCOUNT.
Two sets of files are needed, due to MIDNIGHT ̲STATUS
where a swop of filenames is performed so that status
is generated on OLD files and new entries is done to
NEW files. This does not apply to files concerning
preparation.
During performance of status requests, normal or midnigth,
the variable STATUS ̲INFO is used to keep track of files,
entries during sorting and writing onto a CIF.
The variable BIG ̲BUF has a size that matches size of
file PREPARATION ̲AREA plus 1 sector (256 words). The
sector is placed in the higher part of BIG ̲BUF and
contains the last used sector of file COLLECT ̲AREA.
Last sector in BIG ̲BUF is called INTA.
Whenever a transaction has reached a final stage, i.e.
not available for further editing, and UMAM is notified,
the received data is included in INTA.
Whenever 5 changes occur in INTA , or INTA gets full
the records are placed in file COLLECT ̲AREA. When file
COLLECT ̲AREA gets full (256 entries a 16 words) the
file is sorted and information placed in files DELIVER
̲AREA, OUTGOING ̲AREA, RELEASE ̲AREA and FILE ̲DIR in updated.
Every entry in INTA consumes 16 words.
Items under preparation is not included in INTA or
COLLECT ̲AREA, but is directly included in file PREPARATION
̲AREA or EXPAND ̲AREA.
The variable LITTLE ̲BUF is used during sorting procedure,
e.g. status request, where it is used to contain the
output from search routines. When it gets full it is
written onto a CIF (if status request) or onto a file.
A very short description of each functional block.
T̲r̲a̲n̲s̲a̲c̲t̲i̲o̲n̲:
Preparation: The record is stored in file
PREPARATION ̲AREA OR EXPAND
̲AREA. If appropriate a threeshold-warning
report is generated. Variable
FILE ̲DIR is updated.
Continue
Preparation: If status is changed to a stage
where no further edit is allowed
the variable FILE ̲DIR is updated,
the record is excluded from
preparation files and incorporated
in variable INTA.
Delete: Status for the record in file
PREPARATION or EXPAND ̲AREA
is set to delete.
The record is included in INTA.
The variable FILE ̲DIR is updated.
Deliver: The record send to UMAM is
included in INTA. The variable
FILE ̲DIR is updated.
Release: The record is excluded from
preparation files. The variable
FILE ̲DIR is updated. The record
is included in INTA.
Status: Depending on requested status
type following files are searched:
RELEASE ̲STATUS: COLLECT ̲AREA,
RELEASE ̲AREA.
OUTGOING ̲STATUS: OUT ̲AREA,
COLLECT ̲AREA,
PREPARATION AREA,
EXPAND ̲AREA.
SVC ̲STATUS: OUT ̲AREA,
COLLECT ̲AREA
PREPARATION ̲AREA,
EXPAND ̲AREA.
DELIVERY ̲STATUS: DELIVER ̲AREA,
COLLECT ̲AREA.
Midnight-
Status: The same files minus COLLECT ̲AREA is
searched. The lack of search in COLLECT
̲
AREA is due to a sorting is made at
00 hour before status generating modules
are called. Generation of status for
the first LTD will take place at 00
hour. Thereafter send-request/send-
reply mechanism is used between printer
and UMAM.
VDU ̲Page: Storage: If Display-name is recognized
the CIF reference is
stored at TMP. If not
the VDU ̲Page is send
to MDCO.
Preparation: Basicly three exits to
edit request exists:
a) Name recognized,
no CIF found.
b) Name recognized,
CIF found.
c) Name not recognized.
In case of a) or b) a
preparation will be possible
from the VDU.
Retrieval: As VDU-Page preparation,
but only b) will end
up in a presentation
on the VDU.
Supervisor ̲
CMD: Calculate ̲
Qlength: Counts the number of
items under preparation
in
FILE ̲DIR.
Cancel ̲
Queue(S): Excludes entries in files
PREPARATION ̲AREA, and
EXPAND ̲AREA, for one
or all LTDs and includes
them in INTA:
Cancel ̲Rel ̲
Queue(S): Changes status from SEND
̲
RELEASE to DEFERRED ̲
RELEASE in files PREPARATION
̲AREA AND EXPAND ̲AREA.
This will make the items
available for further
editing. This is done
for all or one LTD.
L̲e̲g̲e̲n̲d̲ ̲f̲o̲r̲ ̲F̲i̲g̲u̲r̲e̲ ̲4̲.̲2̲.̲5̲.̲3̲-̲9̲ ̲
1. Status changes will result in updating
of either the PREPARATION ̲AREA or EXPAND
̲AREA.
2. Delivery status is inserted in the
COLLECT ̲AREA.
3. When the status of a message changes
to Send or Deleted the status record
will be moved from PREPARATION ̲AREA
or EXPAND ̲AREA to the COLLECT ̲AREA.
4. When the COLLECT AREA gets full the
status records will be sorted and stored
in either OUT ̲AREA, RELEASE ̲AREA or
DELIVER ̲AREA.
5. At 00.00 hour the contents of the OUT
AREA, RELEASE AREA and DELIVER AREA
will be moved to a new set of files.
Figure 4.2.5.5-10 to 4.2.5.5-27 shows the call structure
of common procedures separated to each module.
EXECUTE
START
FUNCTION
4.2.5.4.1
INPUT PREP (12)
STORE PREP (8)
INPUT EXPAND (23)
STORE EXPAND (24)
UINT ERROR (30)
STORE DIR (18)
INPUT DIR (16)
UMAM REQUEST TIMEOUT (34)
CHANGE STATUS FILES (37)
UPDATE BIT MAP (45)
RESET FILE (42) - UINT ERROR (30)
CLEAR BIG BUF (44)
GET TIME (33)
RESET COLLECT AREA (46)
CLEAR COUNTERS (43)
READ STATUS FILE (32)
INPUT COMPLETE INT (9)
Figure 4.2.5.3-10
UMAM
MAIN
4.2.5.4.2
UMAM DISMANTLE (1) - UINT ERROR (30)
UINT ERROR (30)
UQ ERROR (11)
STORE DIR (18)
INPUT DIR (16)
CHANGE STATUS FILES (37)
GET TIME (33)
FIGURE 4.2.5.3-11
REQUEST
QUEUE
ACTION
4.2.5.4.3
UMAM DISMANTLE (1) - UINT ERROR (30)
UQ ERROR (11)
VDU PAGE LOOKUP (2) - MOVE WORDS (36)
SEND RESPONSE (4) - UQ ERROR (11)
LOOKUP PASSIVE CIF (13) - MOVE WORDS (36)
SEND ITEM (3) - UQ ERROR (11)
UMAM DISMANTLE (1) - UQ ERROR (11)
LOOKUP STATUS REC (21) - INPUT PREP (12)
INPUT EXPAND (23)
STORE EXPAND (24) SEARCH RECORD (38)
CONVERT OUTG TO INTA (7) - GET TIME (33)
STORE PREP (8)
INPUT DIR (16)
INPUT PREP (12)
INPUT EXPAND (23)
EXCLUDE FORM PREP (27) - LOOKUP PASSIVE CIF (13)
UNLOCK PASSIVE CIFS(28)
UMAM DISMANTLE (1) -
UINT ERROR (30)
STORE PREP (8)
STORE EXPAND (24)
UINT ERROR (11)
GET TIME (33)
FIGURE 4.2.5.3-12
PREP
QUEUE
ACTION
4.2.5.4.4
UMAM DISMANTLE (1) - UINT ERROR (30)
UQ ERROR (11)
LOOK STATUS REC (21) - INPUT PREP (12)
INPUT EXPAND (23)
SEARCH RECORD (38)
CONVERT OUTG TO INTA (7) - GET TIME (33)
EXCLUDE FROM PREP (27) - LOOKUP PASSIVE CIF(13) -
MOVE WORDS (36)CIF(13)
UNLOCK PASSIVE CIFS(28)
UMAM DISMANTLE (1) -
UINT ERROR (30)
STORE PREP (8)
STORE EXPAND (24)
UINT ERROR (11)
LOOKUP PASSIVE CIF (13) - MOVE WORDS (36)
UNLOCK PASSIVE CIFS (28)
STORE PREP (8)
STORE EXPAND (24)
UMAM LOCK CIF (39)
MOVE WORDS (36)
GET TIME (33)
FIGURE 4.2.5.3-13
VDU PAGE
STORAGE
4.2.5.4.5
UQ ERROR (11)
UMAM DISMANTLE (1) - UINT ERROR (30)
LOOKUP PASSIVE CIF (13) - MOVE WORDS (36)
UNLOCK PASSIVE CIFS (28)
UMAM LOCK CIF (39)
READ ADM FIELD (41)
SEND CIF TO MDCO (20) - UMAM ̲DISMANTLE (1) -
UINT ERROR (30)
VDU PAGE LOOKUP (2) - MOVE WORDS (36)
UPDATE DISPLAY TABLE (40)
FIGURE 4.2.5.3-14
STATUS
REQUEST
4.2.5.4.6
UQ ERROR (11)
UMAM DISMANTLE (1) - UINT ERROR (30)
INPUT DIR (16)
STORE DIR (18)
CLEAR COUNTERS (43)
CLEAR BIG BUF (44)
RESET FILE (42) - UINT ERROR (30)
PRE STATUS (31) - CONVERT STORE LTD (15)
UINT ERROR (30)
CLOSE SEND REPLY (6) - UQ ERROR (11)
UMAM DISMANTLE (1) -
UINT ERROR (30)
FIGURE 4.2.5.3-15
DELIVERY
STATUS
4.2.5.4.7
UINT ERROR (30)
GET TIME (33)
FIGURE 4.2.5.3-16
APPEND
ACTION
4.2.5.4.8
UQ ERROR (11)
LOOKUP STATUS REC (21) - INPUT PREP AREA (12)
INPUT EXPAND AREA(23)
SEARCH RECORD (38)
…02…UMAM DISMANTLE (1) - UINT ERROR (30)
MOVE WORDS (36)
FIGURE 4.2.5.3-17
PERIODIC
STATUS
4.2.5.4.9
INPUT DIR (16)
STORE DIR (18)
PRE STATUS (31) - CONVERT STORE LTD (15)
UINT ERROR (30)
CLOSE SEND REPLY (6) - UQ ERROR (11)
UMAM DISMANTLE (1) -
UINT ERROR
FIGURE 4.2.5.3-18
GEN REL
STA
4.2.5.4.10
READ STATUS FILE (32)
STORE SORTED DATA (14)
UINT ERROR (30)
FIGURE 4.2.5.3-19
GEN DEL
STA
4.2.5.4.11
READ STATUS FILE (32)
STORE SORTED DATA (14)
UINT ERROR (30)
FIGURE 4.2.5.3-20
GEN OUT
STA
4.2.5.4.12
READ STATUS FILE (32)
STORE SORTED DATA (14)
UINT ERROR (30)
FIGURE 4.2.5.3-21
GEN SVC
STA
4.2.5.4.13
READ STATUS FILE (32)
STORE SORTED DATA (14)
UINT ERROR (30)
FIGURE 4.2.5.3-22
UMAM
DELETION
4.2.5.4.14
UQ ERROR (11)
LOOKUP STATUS REC (21) - INPUT PREP (12)
SEARCH RECORD (38)
INPUT EXPAND (23)
SEND REPORT (29)
SEND RESPONSE (4) - UQ ERROR (11)
LOOKUP PASSIVE CIFS (13) - MOVE WORDS (36)
UNLOCK PASSIVE CIFS (28)
CONVERT OUTG TO INTA (7)
STORE PREP (8)
GET TIME (33)
INT TO ASCII (19)
STORE EXPAND (24)
UMAM DISMANTLE (1) - UINT ERROR (30)
FIGURE 4.2.5.3-23
INCLUDE
IN INTA
4.2.5.4.15
CURRENT INT (22)
STORE INT AREA (10)
MOVE WORDS (36)
UINT ERROR (30)
FIGURE 4.2.5.3-24
SORT AREA
INT
4.2.5.4.16
GET TIME (33)
SEND REPORT (29)
UMAM DISMANTLE (1) - UINT ERROR (30)
UINT ERROR (30)
MOVE WORDS (36)
STORE INT AREA (10)
INPUT COMPLETE INT (9)
STORE DIR (18)
CLEAR BIG BUF (42)
RESET COLLECT AREA (46)
FIGURE 4.2.5.3-25
INCLUDE
IN PREP
4.2.5.4.17
INPUT PREP (12)
LOOKUP EMPTY PREP REC (26) - THRESHOLD
WARNING (25)
SEND REPORT (29) -
UMAM DISMANTLE(1)
INPUT EXPAND (23)
THRESHOLD WARNING (25) - SEND REPORT (29)
UMAM DISMANTLE(1)
- UINT ERROR (30)
UMAM LOCK CIF (39)
MOVE WORDS (36)
GET TIME (33)
UINT ERROR (30)
STORE PREP (8)
STORE EXPAND (24)
FIGURE 4.2.5.3-26
SORT
RECORDS
4.2.5.4.18
STORE SORTED DATA (14)
UINT ERROR (30)
FIGURE 4.2.5.3-27
4.2.5.4 M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
4.2.5.4.1 E̲X̲E̲C̲U̲T̲E̲ ̲S̲T̲A̲R̲T̲ ̲F̲U̲N̲C̲T̲I̲O̲N̲ ̲M̲o̲d̲u̲l̲e̲
4.2.5.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̲
This module is the main module of UMAM. The purpose
of the module is to execute the function required upon
load of new software. The files of UMAM are opened
and the status of messages awaiting append are changed.
A periodic timeout is requested.
4.2.5.4.1.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) EXECUTE ̲START (START ̲UP ̲ACTIVE: START ̲UP ̲TYPE)
b) EXECUTE ̲START (R0, 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 START ̲UP ̲ACTIVE
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
None
R0 - R7
4.2.5.4.1.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲
a) C̲H̲A̲N̲G̲E̲ ̲A̲P̲P̲E̲N̲D̲ ̲S̲T̲A̲T̲U̲S̲
The status records in the Preparation Area and
the Expand Area are looked up. If status is equal
to Awaiting Append or Append Complete, then the
status will be changed to Append Abandon.
b) C̲A̲L̲C̲U̲L̲A̲T̲E̲ ̲C̲U̲R̲R̲E̲N̲T̲ ̲I̲N̲T̲A̲
The status records in the Collect Area are looked
up. The time stamp is compared with current time
to determine the newest entry in the file.
c) U̲P̲D̲A̲T̲E̲ ̲F̲I̲L̲E̲ ̲P̲T̲
Reads from the specified file until newest entry
is found.
d) U̲P̲D̲A̲T̲E̲ ̲D̲E̲L̲V̲ ̲F̲I̲L̲E̲ ̲P̲T̲
Reads from the specified file until newest entry
is found.
e) O̲P̲E̲N̲ ̲M̲O̲V̲I̲N̲G̲ ̲F̲I̲L̲E̲S̲
Open files residing on the moving part of the disc.
f) O̲P̲E̲N̲ ̲F̲I̲X̲E̲D̲ ̲F̲I̲L̲E̲S̲
Open files residing on the fixed part of the disc.
4.2.5.4.1.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
CPS ̲PREFIX.D*GENERAL
CPS ̲PREFIX.D*DAMOS ̲GENERAL
CPS ̲PREFIX.D*CPS ̲CONF
CPS ̲PREFIX.D*CPS ̲GENERAL
CPS ̲PREFIX.D*CSF ̲GENERAL
CPS ̲PREFIX.D*UTILITY ̲FUNC
CPS ̲PREFIX.D*QUEUE ̲MON
CPS ̲PREFIX.D*MESSAGE ̲MON
CPS ̲PREFIX.D*SYS ̲CALL ̲MON
CPS ̲PREFIX.D*CPS ̲ERROR ̲HAND
CPS ̲PREFIX.D*FMS ̲GENERAL
CPS ̲PREFIX.D*IOS ̲PARAMS
CPS ̲PREFIX.D*CPS ̲IO ̲PARAMS
CPS ̲PREFIX.D*SSC ̲GENERAL
CPS ̲PREFIX.D*SSC ̲SYS ̲CONF
CPS ̲PREFIX.D*SITE ̲CONF
CPS ̲PREFIX.D*CPS ̲APP ̲GENERAL
CPS ̲PREFIX.D*CPS ̲IIF
CPS ̲PREFIX.D*TRACE
CPS ̲PREFIX.D*CPS ̲AMOS ̲CONF
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
BIG ̲BUF (m)
FILE ̲DIR ̲ACB
MAX ̲NO ̲OF ̲INTAS
CURRENT ̲INTA ̲NO (m)
MAX ̲NO ̲OF ̲INTA ̲REC
MAX ̲INT ̲AREA ̲BUF ̲RECS
INTA ̲REC ̲NO (m)
UMAM ̲FDCB (m)
STATUS ̲INF (m)
UMAM ̲FILE ̲ADDR
FILE ̲DIR (m)
UMAM ̲DIR ̲FDCB (m)
CURRENT ̲DIR (m)
UMAM ̲FDCB
UMAM ̲FILE ̲ADDR
UMAM ̲BLE
FILE ̲DIR
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
UMAM ̲DIR.FDCB = RECORD
FIXED
MOVING: FDCB ̲INDEX
END
OFFSET
SAVELINK: INTEGER
FILE ̲PT: LONG
READ ̲CONTROL: BOOLEAN
U ̲DIR ̲NAME: FILE ̲SYSTEM ̲NAME
U ̲START ̲UP: START ̲UP ̲ACTIVE ̲TYPE
OLD ̲TIME
NEW ̲TIME: TIME ̲TYPE
LOOPCOUNT: UMAM ̲COUNTER
SAVER4
SAVELINK
SAVEREG: INTEGER
INIT
U ̲DIR ̲NAME = UMAM ̲DIR
CONST
UMAM ̲DIR = ADDRESS (U ̲DIR ̲NAME)
4.2.5.4.1.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
The files are opened by a call to FMS. If START ̲UP
is identical to DEAD1, DEAD2 or COLD, then the counters
in the file directories are set to zero. Otherwise
the status of messages awaiting append is changed to
APPEND ̲ABANDON.
EXECUTE ̲START ̲FUNCTIONS
O̲P̲E̲N̲ ̲M̲O̲V̲I̲N̲G̲ ̲F̲I̲L̲E̲S̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲.̲3̲.̲5̲)̲
O̲P̲E̲N̲ ̲F̲I̲X̲E̲D̲ ̲F̲I̲L̲E̲S̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲.̲3̲.̲6̲)̲
CASE START ̲UP OF START ̲UP ̲ACTIVE ̲TYPE
DEAD1,
DEAD2,
COLD? - C̲L̲E̲A̲R̲ ̲U̲M̲A̲M̲ ̲D̲I̲R̲E̲C̲T̲O̲R̲I̲E̲S̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲-̲2̲)̲
WARM1,
WARM2? C̲H̲E̲C̲K̲ ̲N̲E̲W̲E̲S̲T̲ ̲D̲I̲R̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲-̲4̲)̲
C̲H̲E̲C̲K̲ ̲P̲E̲R̲I̲O̲D̲I̲C̲ ̲S̲T̲A̲T̲U̲S̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲-̲3̲)̲
OTHERWISE? U̲I̲N̲T̲ ̲E̲R̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲0̲)̲
END CASE
U̲M̲A̲M̲ ̲R̲E̲Q̲U̲E̲S̲T̲ ̲T̲I̲M̲E̲O̲U̲T̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲4̲)̲
FIGURE 4.2.5.4.1-1
CLEAR ̲UMAM ̲DIRECTORIES
C̲L̲E̲A̲R̲ ̲C̲O̲U̲N̲T̲E̲R̲S̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲3̲)̲
S̲T̲O̲R̲E̲ ̲D̲I̲R̲ ̲(̲O̲L̲D̲ ̲D̲I̲R̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲8̲)̲
G̲E̲T̲ ̲T̲I̲M̲E̲ ̲(̲F̲I̲L̲E̲ ̲D̲I̲R̲.̲ ̲S̲T̲A̲R̲T̲ ̲T̲I̲M̲E̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲3̲)̲
S̲T̲O̲R̲E̲ ̲D̲I̲R̲ ̲(̲N̲E̲W̲ ̲D̲I̲R̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲8̲)
R̲E̲S̲E̲T̲ ̲C̲O̲L̲L̲E̲C̲T̲ ̲A̲R̲E̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲6̲)
EQUIVALENCE (BIG ̲BUF: ARRAY (1..NO ̲OF ̲PREP ̲REC) OF
PREP ̲
REC ̲TYPE)
LOOP ̲COUNT = 1
LOOP
BIG ̲BUF (LOOP ̲COUNT).STATUS = S ̲DUMMY
INCREMENT LOOP ̲COUNT
LOOP ̲COUNT = SIZE (BIG ̲BUF)/SIZE(PREP ̲REC ̲TYPE)?
EXIT LOOP
END LOOP
S̲T̲O̲R̲E̲ ̲P̲R̲E̲P̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲8̲)
S̲T̲O̲R̲E̲ ̲E̲X̲P̲A̲N̲D̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲4̲)̲
LOOP ̲COUNT = 0
LOOP
U̲P̲D̲A̲T̲E̲ ̲B̲I̲T̲ ̲M̲A̲P̲ ̲(̲L̲O̲O̲P̲ ̲C̲O̲U̲N̲T̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲5̲)
INCREMENT LOOP ̲COUNT
LOOP ̲COUNT = COLLECT ̲AREA + 1? EXIT LOOP
END LOOP
C̲L̲E̲A̲R̲ ̲B̲I̲G̲ ̲B̲U̲F̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲4̲)
LOOP
R̲E̲S̲E̲T̲ ̲F̲I̲L̲E̲ ̲(̲L̲O̲O̲P̲ ̲C̲O̲U̲N̲T̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲2̲)
U̲P̲D̲A̲T̲E̲ ̲B̲I̲T̲ ̲M̲A̲P̲ ̲(̲L̲O̲O̲P̲ ̲C̲O̲U̲N̲T̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲5̲)
INCREMENT LOOP ̲COUNT
LOOP ̲COUNT = OLD ̲DELIVER ̲AREA +1? EXIT LOOP
END LOOP
FIGURE 4.2.5.4.1-2
CHECK ̲PERIODIC ̲STATUS
I̲N̲P̲U̲T̲ ̲D̲I̲R̲ ̲(̲O̲L̲D̲ ̲D̲I̲R̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲6̲)̲
FILE ̲DIR.NEXT ̲LTD = 0 ?
I̲N̲P̲U̲T̲ ̲D̲I̲R̲ ̲(̲N̲E̲W̲ ̲D̲I̲R̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲6̲)̲
R̲E̲S̲E̲T̲ ̲F̲I̲L̲E̲ ̲(̲O̲L̲D̲ ̲O̲U̲T̲ ̲A̲R̲E̲A̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲2̲)
R̲E̲S̲E̲T̲ ̲F̲I̲L̲E̲ ̲(̲O̲L̲D̲ ̲R̲E̲L̲E̲A̲S̲E̲ ̲A̲R̲E̲A̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲2̲)
R̲E̲S̲E̲T̲ ̲F̲I̲L̲E̲ ̲(̲O̲L̲D̲ ̲D̲E̲L̲I̲V̲E̲R̲ ̲A̲R̲E̲A̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲2̲)
U̲P̲D̲A̲T̲E̲ ̲F̲I̲L̲E̲ ̲P̲T̲ ̲(̲O̲L̲D̲ ̲O̲U̲T̲G̲O̲I̲N̲G̲ ̲A̲R̲E̲A̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲.̲3̲.̲3̲)
U̲P̲D̲A̲T̲E̲ ̲F̲I̲L̲E̲ ̲P̲T̲ ̲(̲O̲L̲D̲ ̲R̲E̲L̲E̲A̲S̲E̲ ̲A̲R̲E̲A̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲.̲3̲.̲3̲)
U̲P̲D̲A̲T̲E̲ ̲D̲E̲L̲V̲ ̲F̲I̲L̲E̲ ̲P̲T̲ ̲(̲O̲L̲D̲ ̲D̲E̲L̲I̲V̲E̲R̲ ̲A̲R̲E̲A̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲.̲3̲.̲4̲)
END
FIGURE 4.2.5.4.1-3
CHECK ̲NEWEST ̲DIR
CURRENT ̲DIR = NO ̲DIR
I̲N̲P̲U̲T̲ ̲D̲I̲R̲ ̲(̲O̲L̲D̲ ̲D̲I̲R̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲6̲)
OLD ̲TIME = FILE ̲DIR.START ̲TIME
I̲N̲P̲U̲T̲ ̲D̲I̲R̲ ̲(̲N̲E̲W̲ ̲D̲I̲R̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲6̲)
NEW ̲TIME = FILE ̲DIR.START ̲TIME
NEW ̲TIME GT OLD ̲TIME?
C̲H̲A̲N̲G̲E̲ ̲S̲T̲A̲T̲U̲S̲ ̲F̲I̲L̲E̲S̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲7̲)
CURRENT ̲DIR = NO ̲DIR
I̲N̲P̲U̲T̲ ̲D̲I̲R̲ ̲(̲N̲E̲W̲ ̲D̲I̲R̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲6̲)
C̲L̲E̲A̲R̲ ̲C̲O̲U̲N̲T̲E̲R̲S̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲3̲)
I̲N̲P̲U̲T̲ ̲P̲R̲E̲P̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲2̲)
C̲H̲A̲N̲G̲E̲ ̲A̲P̲P̲E̲N̲D̲ ̲S̲T̲A̲T̲U̲S̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲.̲3̲.̲1̲)
S̲T̲O̲R̲E̲ ̲P̲R̲E̲P̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲8̲)
I̲N̲P̲U̲T̲ ̲E̲X̲P̲A̲N̲D̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲3̲)̲
C̲H̲A̲N̲G̲E̲ ̲A̲P̲P̲E̲N̲D̲ ̲S̲T̲A̲T̲U̲S̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲.̲3̲.̲1̲)
S̲T̲O̲R̲E̲ ̲E̲X̲P̲A̲N̲D̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲4̲)̲
U̲P̲D̲A̲T̲E̲ ̲F̲I̲L̲E̲ ̲P̲T̲ ̲(̲O̲U̲T̲G̲O̲I̲N̲G̲ ̲A̲R̲E̲A̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲.̲3̲.̲3̲)
U̲P̲D̲A̲T̲E̲ ̲F̲I̲L̲E̲ ̲P̲T̲ ̲(̲R̲E̲L̲E̲A̲S̲E̲ ̲A̲R̲E̲A̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲.̲3̲.̲3̲)
U̲P̲D̲A̲T̲E̲ ̲D̲E̲L̲V̲ ̲F̲I̲L̲E̲ ̲P̲T̲ ̲(̲D̲E̲L̲I̲V̲E̲R̲ ̲A̲R̲E̲A̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲.̲3̲.̲4̲)
C̲A̲L̲C̲U̲L̲A̲T̲E̲ ̲C̲U̲R̲R̲E̲N̲T̲ ̲I̲N̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲.̲3̲.̲2̲)
S̲T̲O̲R̲E̲ ̲D̲I̲R̲ ̲(̲N̲E̲W̲ ̲D̲I̲R̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲8̲.̲1̲8̲)̲
FIGURE 4.2.5.4.1-4
4.2.5.4.2 U̲M̲A̲M̲ ̲M̲A̲I̲N̲ ̲M̲o̲d̲u̲l̲e̲
4.2.5.4.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 module contains the main waiting point within
UMAM. The tasks of the module are to receive input
from the queues of UMAM. The input is validated and
the corresponding procedure is called.
4.2.5.4.2.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
N/A (The module is a main module)
4.2.5.4.1.3 ̲M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
a) S̲E̲N̲D̲S̲ ̲S̲S̲C̲ ̲A̲C̲K̲
Sends an acknowledge to a CLOSE ̲DOWN command to
SSC.
b) C̲L̲O̲S̲E̲ ̲F̲I̲L̲E̲S̲
The connections to all the files of UMAM is dismantled.
c) T̲I̲M̲E̲ ̲O̲U̲T̲ ̲A̲C̲T̲I̲O̲N̲
The status records stored in the Collect-Area is
sorted. The FDCBs of the NEW and OLD files are
interchanged. The file-directory will be updated
(all counters except those concerning messages
under preparation will be cleared).
d) C̲L̲O̲S̲E̲ ̲D̲O̲W̲N̲ ̲A̲C̲T̲I̲O̲N̲
Cancels outstanding System-Calls and removes all
items from the Preparation and Delivery queues.
4.2.5.4.2.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
CPS ̲PREFIX.D*GENERAL
CPS ̲PREFIX.D*DAMOS ̲GENERAL
CPS ̲PREFIX.D*CPS ̲CONF
CPS ̲PREFIX.D*CPS ̲GENERAL
CPS ̲PREFIX.D*CSF ̲GENERAL
CPS ̲PREFIX.D*MESSAGE ̲MON
CPS ̲PREFIX.D*QUEUE ̲MON
CPS ̲PREFIX.D*SYS ̲CALL ̲MON
CPS ̲PREFIX.D*CPS ̲ERROR ̲HAND
CPS ̲PREFIX.D*FMS ̲GENERAL
CPS ̲PREFIX.D*IOS ̲PARAMS
CPS ̲PREFIX.D*CPS ̲IO ̲PARAMS
CPS ̲PREFIX.D*SSC ̲GENERAL
CPS ̲PREFIX.D*SSC ̲IF
CPS ̲PREFIX.D*QUEUE ̲GENERAL
CPS ̲PREFIX.D*SSC ̲SYS ̲CONF
CPS ̲PREFIX.D*SITE ̲CONF
CPS ̲PREFIX.D*TRACE
CPS ̲PREFIX.D*CPS ̲AMOS ̲CONF
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
UMAM ̲PARAMS (m)
CMD ̲QEL (m)
UMAM ̲ACCOUNT
FILE ̲DIR (m)
OUTG ̲START
DELT ̲START
RELE ̲START
FILE ̲DIR ̲ACB
CURRENT ̲DIR (m)
UMAM ̲STOP (m)
UMAM ̲COLQ (m)
UMAM ̲ATTR (m)
UMAM ̲CMDQ
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
TYPE
UREF ̲TYPE = (CMD ̲REF, COL ̲REF)
VAR
SAVER6
SAVELINK
SYS ̲CMDREF
SYS ̲COLREF
LOOPEXIT: INTEGER
U ̲OBJECT: OBJECT ̲TYPE
CMD ̲QEL: QEL ̲REFERENCE
STORE: INTEGER
4.2.5.4.2.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
The QELs received in the Command and Collect queues
are analysed. If an error is found then it is reported
to the SSC.
E̲X̲E̲C̲U̲T̲E̲ ̲S̲T̲A̲R̲T̲ ̲(̲S̲T̲A̲R̲T̲ ̲U̲P̲ ̲A̲C̲T̲I̲V̲E̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲)
CASE INIT ̲RECEIVE ̲FIRST ̲QEL(WAIT, UMAM ̲CMDQ, UMAM
̲ATTR, CMDREF
(SYS ̲CMDREF, CC):
ERROR ̲OK
ERROR? ANALYZE ̲ERROR (CC,O)
OK?
END CASE
UMAM ̲COLQ.SUBQUEUE = U ̲MAINQ
CASE INIT ̲RECEIVE ̲FIRST ̲QEL (WAIT, UMAM ̲COLQ, UMAM
̲ATTR, COLREF
(SYS
̲COLREF, CC): ERROR
̲OK
ERROR? ANALYZE ̲ERROR (CC,O)
OK?
END CASE
UMAM ̲STOP = FALSE
WAIT ̲LOOP
WAIT ̲NEXT ̲OPERATION ( ) (UREF, SYSREF): OK
E̲X̲E̲C̲U̲T̲E̲ ̲P̲E̲N̲D̲I̲N̲G̲ ̲O̲P̲E̲R̲A̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲2̲-̲2̲)̲
UMAM ̲STOP EQ TRUE? EXIT WAIT ̲LOOP
END WAIT ̲LOOP
CLOSE LOOP
CASE RECEIVE ̲FIRST ̲QEL (WAIT, UMAM ̲CMDQ, UMAM
̲ATTR): ERROR ̲OK
ERROR ? ANALYZE ̲ERROR
(CC,0)
OK?
END CASE
U̲M̲A̲M̲ ̲Q̲E̲L̲ ̲D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲(̲C̲M̲D̲ ̲Q̲E̲L̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲)̲
END CLOSE LOOP
Figure 4.2.5.4.2-1
EXECUTE ̲PENDING ̲OPERATION
CASE UREF OF UREF ̲TYPE
CMDREF? CASE WAIT ̲SYSTEM ̲CALL(SYS ̲CMDREF)
(UMAM ̲ATTR, CMD ̲QEL,SUBQ,CC):
ERROR ̲OK
ERROR? ̲ ANALYZE ̲ERROR(CC,O)
OK?
END CASE
I̲N̲S̲P̲E̲C̲T̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲2̲-̲3̲)
U̲M̲A̲M̲ ̲D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲(̲C̲M̲D̲ ̲Q̲E̲L̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲)̲
UMAM ̲STOP EQ TRUE?
CASE INIT ̲RECEIVE ̲FIRST ̲QEL(WAIT,UMAM
̲CMDQ
UMAM ̲ATTR,CMDREF)(SYS ̲CMDREF,CC):
ERROR ̲OK
ERROR? ANALYZE ̲ERROR(CC,0)
OK?
END CASE
COLREF? CASE WAIT ̲SYSTEM ̲CALL(SYS ̲COLREF)
(UMAM ̲ATTR,QEL1,SUBQ,CC):
ERROR ̲OK
ERROR? ANALYZE ̲ERROR(CC,0)
OK?
END CASE
I̲N̲S̲P̲E̲C̲T̲ ̲C̲O̲L̲Q̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲2̲-̲4̲)
UMAM ̲COLQ.SUBQUEUE = U ̲MAINQ
CASE INIT ̲RECEIVE ̲FIRST ̲QEL(WAIT,UMAM
̲COLQ,
UMAM ̲ATTR, COLREF)(SYS
̲COLREF,CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR(CC,0)
OK?
END CASE
OTHERWISE? U̲I̲N̲T̲ ̲E̲R̲R̲O̲R̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲0̲)̲
END CASE
Fig. 4.2.5.4.2-2
INSPECT ̲CMD ̲QEL
CASE UMAM ̲ATTR.MAINTYPE OF QELEMENT ̲MAIN ̲TYPE
SSC ̲CMD? CASE UMAM ̲ATTR.SUBTYPE OF SSC ̲COMMAND
̲SUBTYPE
CLOSE ̲DOWN? C̲L̲O̲S̲E̲ ̲D̲O̲W̲N̲ ̲A̲C̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲2̲.̲3̲.̲4̲)̲
OTHERWISE? U̲Q̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
TIMEOUT? T̲I̲M̲E̲ ̲O̲U̲T̲ ̲A̲C̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲2̲.̲3̲.̲3̲)
OTHERWISE? U̲Q̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
OTHERWISE? U̲Q̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
Fig. 4.2.5.4.2-3
INSPECT ̲COLQ ̲QEL
CASE SUBQ OF UMAM ̲SUBQUEUE
U ̲REQUESTQ? R̲E̲Q̲U̲E̲S̲T̲ ̲A̲C̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲3̲)̲
U ̲PREPQ? P̲R̲E̲P̲ ̲A̲C̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲4̲)̲
U ̲VDU ̲PAGEQ? V̲D̲U̲ ̲P̲A̲G̲E̲ ̲S̲T̲O̲R̲A̲G̲E̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲5̲)̲
U ̲STATUS ̲REQQ? S̲T̲A̲T̲U̲S̲ ̲R̲E̲Q̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲6̲)̲
U ̲DELIVERYQ? D̲E̲L̲I̲V̲E̲R̲Y̲ ̲S̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲7̲)̲
U ̲APPENDQ? A̲P̲P̲E̲N̲D̲ ̲A̲C̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲8̲)̲
OTHERWISE? U̲I̲N̲T̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲0̲)̲
END CASE
Fig. 4.2.5.4.2-4
4.2.5.4.3 R̲E̲Q̲U̲E̲S̲T̲ ̲Q̲U̲E̲U̲E̲ ̲A̲C̲T̲I̲O̲N̲ ̲M̲o̲d̲u̲l̲e̲
4.2.5.4.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 procedure inspects the content of the
QEL's received in subqueue ̲one of the Collect
queue. The following requests are received:
- edit request
- delete request
- VDU ̲page retrieval.
If the requested CIF is found then it is sent
to the requestor. If the CIF can not be found
or the required function cannot be performed
then a response is returned.
This function is repeated until the subqueue
is empty.
4.2.5.4.3.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) REQUEST ̲ACTION
b) REQUEST ̲ACTION (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̲
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0-R7
(DEST)
4.2.5.4.3.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
a) C̲h̲e̲c̲k̲ ̲P̲r̲o̲f̲i̲l̲e̲
Two profiles are compared and the result tells
whether the User-Profile is contained in the profile
of the CIF referenced by CREATE ̲QEL or not. The
User-Profile is contained if and only if:
- The security classification of User-Profile
is higher than or equal to the security classification
of the CIF.
- If any of the bits 3-24 are set in the CIF-Profile
it is also set in the User-Profile.
b) C̲h̲e̲c̲k̲ ̲M̲s̲g̲ ̲T̲y̲p̲e̲
This procedure checks whether the EDIT ̲REQUEST
̲TYPE correspond to the MAINTYPE of the CIF, which
is to be subject for editing.
c) S̲e̲n̲d̲ ̲C̲o̲m̲p̲l̲e̲t̲i̲o̲n̲ ̲R̲e̲p̲o̲r̲t̲
Sends a completion report to the queue referenced
by QEL1. The report will contain information about
the Supervisor command which has been performed.
d) C̲h̲e̲c̲k̲ ̲S̲t̲a̲t̲u̲s̲
The procedure checks whether the CIF locked-up
is available for editing or not. The procedure
will use the OKAY-exit if editing is allowed.
e) S̲e̲a̲r̲c̲h̲ ̲Q̲u̲e̲u̲e̲s̲
The required file is read and placed in BIG ̲BUF.
Status of messages prepared at the referenced terminal
will be set to DELETED.
If the LTD is equal NULL then the status of the
referenced CIF will be set to DELETED.
The status record will be removed from the Preparation
File and inserted in the Intermediate File.
f) C̲a̲n̲c̲e̲l̲ ̲R̲e̲l̲ ̲Q̲
This procedure scans the prep file or the expand
file for items with status equal to SENT ̲RELS,
and changes status to DEFERRED ̲RELEASE.
g) C̲a̲n̲c̲e̲l̲ ̲S̲i̲n̲g̲l̲e̲ ̲R̲e̲l̲ ̲Q̲
This procedure scans the prep file or the expand
file for items prepared with a certain CIF ̲ID and
changes status to DEFERRED ̲RELEASE. If an item
is found in the PREP ̲AREA the procedure is exited.
h) C̲a̲n̲c̲e̲l̲ ̲Q̲u̲e̲u̲e̲s̲
This procedure inspects the subtype of the QEL1
and calls appropriate procedures.
i) C̲a̲l̲c̲u̲l̲a̲t̲e̲ ̲Q̲l̲e̲n̲g̲t̲h̲
The number of messages under preparation for each
terminal is counted. The result is delivered to
the requestor in the buffer or qel received.
4.2.5.4.3.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
CPS ̲PREFIX.D*GENERAL
CPS ̲PREFIX.D*DAMOS ̲GENERAL
CPS ̲PREFIX.D*CPS ̲CONF
CPS ̲PREFIX.D*CPS ̲GENERAL
CPS ̲PREFIX.D*CSF ̲GENERAL
CPS ̲PREFIX.D*UTILITY ̲FUNC
CPS ̲PREFIX.D*QUEUE ̲MON
CPS ̲PREFIX.D*MESSAGE ̲MON
CPS ̲PREFIX.D*SYS ̲CALL ̲MON
CPS ̲PREFIX.D*CPS ̲ERROR ̲HAND
CPS ̲PREFIX.D*FMS ̲GENERAL
CPS ̲PREFIX.D*IOS ̲PARAMS
CPS ̲PREFIX.D*SSC ̲GENERAL
CPS ̲PREFIX.D*SSC ̲SYS ̲CONF
CPS ̲PREFIX.D*SITE ̲CONF
CPS ̲PREFIX.D*CPS ̲APP ̲GENERAL
CPS ̲PREFIX.D*QUEUE ̲GENERAL
CPS ̲PREFIX.D*TRACE
CPS ̲PREFIX.D*CPS ̲AMOS ̲CONF
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
UMAM ̲VIEW ̲ATTR (m)
BIG ̲BUF (m)
UMAM ̲PARAMS (m)
LITTLE ̲BUF (m)
FILE ̲DIR ̲ACB
BIG ̲BUF ̲CONTENTS
UMAM ̲CMDQ (m)
PREP ̲FILE ̲LENGTH ̲W
UMAM ̲COLQ
SEND ̲PARAMS
UMAM ̲ATTR (m)
QEL1 (m)
CREATE ̲QEL
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲e̲
VAR PREP ̲FILE: P ̲FILE ̲TYPE;
PREP ̲REC: POINTER;
INTA ̲REC: POINTER;
TYPE
PREP ̲LENGTH = ARRAY (1..NO ̲OF ̲VDUS) OF BYTE
CONST
PREP ̲BUF ̲OFFSET = 1
SPH ̲WITH = 9
CLASS ̲WITH = 3
CLASS ̲MASK = 7
VAR
SAVER 0,
SAVER 1,
SAVER 2,
SAVER 3,
SAVER 4,
SAVER 5,
SAVER 6: INTEGER
4.2.5.4.3.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲ ̲
The SUBTYPE and EDIT ̲REQ ̲TYPE are inspected. The requested
CIF is looked up and made active. If the CIF is found
it is checked whether it is available for editing or
not. If the requested data cannot be found then a response
message is returned to the requestor.
REQUEST ̲ACTION
RECV ̲NEXT LOOP
R̲E̲Q̲U̲E̲S̲T̲ ̲I̲N̲S̲P̲E̲C̲T̲I̲O̲N̲(̲4̲.̲2̲.̲5̲.̲4̲.̲3̲-̲2̲)̲
U̲M̲A̲M̲ ̲D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲(̲Q̲E̲L̲ ̲1̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲)̲
UMAM ̲COLQ.SUBQUEUE = U ̲REQUESTQ
CASE RECEIVE ̲FIRST ̲QEL(WAIT=FALSE, UMAM ̲COLQ, UMAM
̲ATTR)
(UMAM ̲ATTR,QEL1,SUBQ,CC):ERROR
̲OK
ERROR? CASE ANALYZE ̲ERROR(CC,1, SUBQUEUE ̲EMPTY):(LA1)
LA1? EXIT RECV ̲NEXT LOOP
END CASE
OK?
END CASE
END RECV ̲NEXT LOOP
FIGURE 4.2.5.4.3-1
REQUEST ̲INSPECTION
CASE UMAM ̲ATTR.MAINTYPE OF QELEMENT ̲MAIN ̲TYPE
TEP ̲INTERNAL?
CASE UMAM ̲ATTR.SUBTYPE OF TEP ̲INTERNAL
̲SUBTYPE
EDIT ̲REQUEST?
CASE UMAM ̲ATTR.FLAG OF EDIT ̲REQ
̲TYPE
E
̲VDU
̲PAGE
̲PREP?
L̲O̲O̲K̲U̲P̲
̲D̲I̲S̲P̲L̲A̲Y̲
̲(̲-̲3̲)̲
E
̲VDU
̲PAGE
̲CONT,
E
̲ABB
̲PLAIN
̲SVC,
E
̲ABB
̲SVC,
E
̲PLAIN
̲SVC,
E
̲SC
̲COMMENT,
E
̲COMMENT,
E
̲MESSAGE
-
L̲O̲O̲K̲U̲P̲
̲C̲I̲F̲
̲(̲-̲4̲)̲
OTHERWISE?
U̲Q̲
̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
DELETE ̲REQUEST? - U̲M̲A̲M̲ ̲D̲E̲L̲E̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲4̲)̲
VDU ̲PAGE ̲RETRIEVAL ̲REQUEST? - V̲D̲U̲
̲P̲A̲G̲E̲ ̲R̲E̲Q̲U̲E̲S̲T̲(̲-̲7̲)̲
QUEUE ̲LENGTH ̲REQUEST? - C̲A̲L̲C̲U̲L̲A̲T̲E̲
̲Q̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲3̲.̲3̲.̲9̲)
OTHERWISE? - U̲Q̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
SUPERVISOR ̲UMAM ̲COMMAND? - C̲A̲N̲C̲E̲L̲ ̲Q̲U̲E̲U̲E̲S̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲3̲.̲3̲.̲8̲)
OTHERWISE? - U̲Q̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
FIGURE 4.2.5.4.3-2
LOOKUP ̲DISPLAY
CASE V̲D̲U̲ ̲P̲A̲G̲E̲ ̲L̲O̲O̲K̲U̲P̲(̲V̲I̲E̲W̲ ̲N̲A̲M̲E̲,̲A̲C̲C̲ ̲P̲R̲O̲F̲I̲L̲E̲:̲ ̲E̲R̲R̲O̲R̲
̲O̲K̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲)̲
ERROR? - S̲E̲N̲D̲ ̲R̲E̲S̲P̲ ̲(̲E̲D̲I̲T̲ ̲R̲E̲S̲P̲,̲ ̲E̲ ̲N̲O̲T̲ ̲F̲O̲U̲N̲D̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲)̲
OK? C̲A̲S̲E̲ ̲L̲O̲O̲K̲U̲P̲ ̲P̲A̲S̲S̲I̲V̲E̲ ̲C̲I̲F̲ ̲(̲V̲I̲E̲W̲N̲A̲M̲E̲)̲(̲C̲R̲E̲A̲T̲E̲
̲Q̲E̲L̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲3̲)̲
ERROR? - S̲E̲N̲D̲ ̲R̲E̲S̲P̲(̲E̲D̲I̲T̲ ̲R̲E̲S̲P̲,̲ ̲E̲ ̲N̲O̲T̲
̲F̲O̲U̲N̲D̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲)̲
OK? - CASE
C̲H̲E̲C̲K̲
̲P̲R̲O̲F̲I̲L̲E̲(̲A̲C̲C̲
̲P̲R̲O̲F̲I̲L̲E̲)̲
(̲4̲.̲2̲.̲5̲.̲4̲.̲3̲.̲3̲-̲1̲)̲:̲
̲E̲R̲R̲O̲R̲
̲O̲K̲
ERROR?
-
S̲E̲N̲D̲
̲R̲E̲S̲P̲(̲E̲D̲I̲T̲
̲R̲E̲S̲P̲,̲E̲
̲S̲E̲C̲
̲
P̲R̲O̲F̲I̲L̲E̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲)̲
OK?
-
S̲E̲N̲D̲
̲I̲T̲E̲M̲(̲S̲C̲
̲V̲D̲U̲
̲P̲A̲G̲E̲,̲
F̲O̲R̲
̲C̲O̲N̲T̲I̲N̲U̲E̲D̲
̲P̲R̲E̲P̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲)̲
END
CASE
U̲M̲A̲M̲
̲D̲I̲S̲M̲A̲N̲T̲L̲E̲(̲C̲R̲E̲A̲T̲E̲
̲Q̲E̲L̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲)̲
END CASE
END CASE
FIGURE 4.2.5.4.3-3
LOOKUP ̲CIF
EQUIVALENCE(UMAM ̲ATTR.HEADER.INF, PARAM: EDIT ̲PARAMETERS)
CASE L̲O̲O̲K̲U̲P̲ ̲S̲T̲A̲T̲U̲S̲ ̲R̲E̲C̲(̲P̲A̲R̲A̲M̲.̲I̲T̲E̲M̲R̲E̲F̲,̲ ̲P̲A̲R̲A̲M̲.̲L̲T̲D̲)̲
(̲P̲R̲E̲P̲ ̲R̲E̲C̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲1̲)̲:̲ ̲E̲R̲R̲O̲R̲ ̲O̲K̲
ERROR? S̲E̲N̲D̲ ̲R̲E̲S̲P̲(̲E̲D̲I̲T̲ ̲R̲E̲S̲P̲,̲ ̲E̲ ̲N̲O̲T̲ ̲F̲O̲U̲N̲D̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲)̲
OK? CASE C̲H̲E̲C̲K̲ ̲M̲S̲G̲ ̲T̲Y̲P̲E̲(̲P̲R̲E̲P̲ ̲R̲E̲C̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲3̲.̲3̲-̲2̲)̲:̲E̲R̲R̲O̲R̲
̲O̲K̲
ERROR? - S̲E̲N̲D̲ ̲R̲E̲S̲P̲(̲E̲D̲I̲T̲ ̲R̲E̲S̲P̲,̲
̲E̲ ̲I̲L̲L̲ ̲R̲E̲Q̲U̲E̲S̲T̲ ̲T̲Y̲P̲E̲)̲
(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲)̲
OK?
C̲H̲E̲C̲K̲
̲I̲T̲E̲M̲
̲(̲4̲.̲2̲.̲5̲.̲4̲.̲3̲-̲5̲)̲
END CASE
END CASE
FIGURE 4.2.5.4.3-4
CHECK ̲ITEM
CASE C̲H̲E̲C̲K̲ ̲S̲T̲A̲T̲U̲S̲(̲P̲R̲E̲P̲ ̲R̲E̲C̲)̲(̲S̲A̲V̲E̲ ̲A̲N̲S̲)̲:̲ ̲E̲R̲R̲O̲R̲ ̲O̲K̲
̲(̲4̲.̲2̲.̲5̲.̲4̲.̲3̲.̲3̲.̲4̲)
ERROR? - S̲E̲N̲D̲ ̲R̲E̲S̲P̲(̲E̲D̲I̲T̲ ̲R̲E̲S̲P̲,̲ ̲S̲A̲V̲E̲ ̲A̲N̲S̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲)̲
OK? - C̲A̲S̲E̲ ̲L̲O̲O̲K̲U̲P̲ ̲P̲A̲S̲S̲I̲V̲E̲ ̲C̲I̲F̲(̲P̲R̲E̲P̲ ̲R̲E̲C̲.̲V̲I̲E̲W̲N̲A̲M̲E̲)̲(̲C̲R̲E̲A̲T̲E̲
̲Q̲E̲L̲)̲
(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲3̲)̲:̲ ̲E̲R̲R̲O̲R̲ ̲O̲K̲
ERROR? - S̲E̲N̲D̲ ̲R̲E̲S̲P̲(̲E̲D̲I̲T̲ ̲R̲E̲S̲P̲,̲E̲
̲N̲O̲T̲ ̲F̲O̲U̲N̲D̲)̲
(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲)̲
C̲H̲A̲N̲G̲E̲ ̲S̲T̲A̲T̲U̲S̲ ̲T̲O̲ ̲D̲E̲L̲E̲T̲E̲D̲
̲(̲-̲6̲)̲
OK? - CASE C̲H̲E̲C̲K̲ ̲P̲R̲O̲F̲I̲L̲E̲(̲P̲A̲R̲A̲M̲.̲A̲C̲C̲)̲:̲E̲R̲R̲O̲R̲
̲O̲K̲
ERROR?
- S̲E̲N̲D̲
̲R̲E̲S̲P̲(̲E̲D̲I̲T̲
̲R̲E̲S̲P̲,̲
̲E̲ ̲SEC
P̲R̲O̲F̲I̲L̲E̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲)̲
U̲M̲A̲M̲
̲D̲I̲S̲M̲A̲N̲T̲L̲E̲
̲(̲C̲R̲E̲A̲T̲E̲
̲Q̲E̲L̲)̲
̲
(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲)
OK?
-
2.nd
COOR?
SET
SAVE
̲ANS
(BIT
̲14)
2.nd
RELS?
SET
SAVE
̲ANS
(BIT
̲15)
S̲E̲N̲D̲
̲I̲T̲E̲M̲(̲S̲A̲V̲E̲
̲A̲N̲S̲,̲P̲R̲E̲P̲
̲R̲E̲C̲.̲M̲A̲I̲N̲,̲
F̲O̲R̲
̲C̲O̲N̲T̲
̲P̲R̲E̲P̲)̲
̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲)̲
END CASE
END CASE
END CASE
FIGURE 4.2.5.4.3-5
CHANGE ̲STATUS ̲TO ̲DELETED
STATUS ̲REC.STATUS = S ̲DELETED
C̲O̲N̲V̲E̲R̲T̲ ̲O̲U̲T̲G̲ ̲T̲O̲ ̲I̲N̲T̲A̲(̲P̲R̲E̲P̲ ̲R̲E̲C̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲7̲)̲
I̲N̲C̲L̲U̲D̲E̲ ̲I̲N̲ ̲I̲N̲T̲A̲ ̲(̲I̲N̲T̲A̲ ̲R̲E̲C̲)̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲5̲)̲
P̲R̲E̲P̲ ̲R̲E̲C̲ ̲S̲T̲A̲T̲U̲S̲ ̲=̲ ̲S̲ ̲D̲U̲M̲M̲Y̲
BIG ̲BUF CONTENTS = EXPAND ? S̲T̲O̲R̲E̲ ̲E̲X̲P̲A̲N̲D̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲4̲)
S̲T̲O̲R̲E̲ ̲P̲R̲E̲P̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲8̲)
FIGURE 4.2.5.4.3-6
VDU ̲PAGE ̲REQUEST
CASE V̲D̲U̲ ̲P̲A̲G̲E̲ ̲L̲O̲O̲K̲U̲P̲(̲V̲I̲E̲W̲ ̲N̲A̲M̲E̲,̲A̲C̲C̲ ̲P̲R̲O̲F̲I̲L̲E̲:̲ ̲E̲R̲R̲O̲R̲
̲O̲K̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲)̲
ERROR? - S̲E̲N̲D̲ ̲R̲E̲S̲P̲ ̲(̲E̲D̲I̲T̲ ̲R̲E̲S̲P̲,̲ ̲E̲ ̲N̲O̲T̲ ̲F̲O̲U̲N̲D̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲)̲
OK? CASE L̲O̲O̲K̲U̲P̲ ̲P̲A̲S̲S̲I̲V̲E̲ ̲C̲I̲F̲ ̲(̲V̲I̲E̲W̲N̲A̲M̲E̲)̲(̲C̲R̲E̲A̲T̲E̲
̲Q̲E̲L̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲3̲)̲
ERROR? - S̲E̲N̲D̲ ̲R̲E̲S̲P̲(̲R̲E̲T̲R̲ ̲R̲E̲S̲P̲,̲ ̲R̲ ̲N̲O̲T̲
̲F̲O̲U̲N̲D̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲)̲
OK? - CASE C̲H̲E̲C̲K̲ ̲P̲R̲O̲F̲I̲L̲E̲(̲A̲C̲C̲ ̲P̲R̲O̲F̲I̲L̲E̲)̲
(̲4̲.̲2̲.̲5̲.̲4̲.̲3̲.̲3̲.̲1̲)̲:̲ ̲E̲R̲R̲O̲R̲
̲O̲K̲
ERROR? - S̲E̲N̲D̲ ̲R̲E̲S̲P̲(̲R̲E̲T̲R̲
̲R̲E̲S̲P̲,̲R̲ ̲S̲E̲C̲ ̲
P̲R̲O̲F̲I̲L̲E̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲)̲
OK? - S̲E̲N̲D̲ ̲I̲T̲E̲M̲(̲S̲C̲ ̲V̲D̲U̲
̲P̲A̲G̲E̲,̲
F̲O̲R̲ ̲C̲O̲N̲T̲I̲N̲U̲E̲D̲
̲P̲R̲E̲P̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲)̲
END CASE
U̲M̲A̲M̲ ̲D̲I̲S̲M̲A̲N̲T̲L̲E̲(̲C̲R̲E̲A̲T̲E̲ ̲Q̲E̲L̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲)̲
END CASE
END CASE
FIGURE 4.2.5.4.3-7