top - download
⟦cc5a2fcbc⟧ Wang Wps File
Length: 25718 (0x6476)
Types: Wang Wps File
Notes: CPS/SDS/039
Names: »1561A «
Derivation
└─⟦945185ab2⟧ Bits:30005808 8" Wang WCS floppy, CR 0113A
└─ ⟦this⟧ »1561A «
WangText
…1d……05……1d……06……1c……0c……1c……01……1c……06……1c……07……1b……0b……1b……00……1b……02……1b…
…1b… …1b……05……1b……06……86…1
…02…
…02…
…02…
…02…CPS/SDS/039
…02…820104…02……02…
USER VDU
DETAILED
DESIGN
SPECIFICATION CAMPS
4.2.3 D̲i̲a̲l̲o̲g̲u̲e̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲
The V̲DU D̲i̲a̲logue (VDIA) subpackage has the responsibility
for input of formats from the VDU and output of formats
to the VDU. Furthermore, VDIA performs the validation
of data entered in the VDU format area.
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̲
The following functions are included in this subpackage
(ref. figures 4.2.3.1-1 to 8):
- output of data
- input
of
data
- validation of data
FIG. 4.2.3.1-1 to FIG. 4.2.3.1-8
4.2.3.1.1 O̲u̲t̲p̲u̲t̲ ̲o̲f̲ ̲D̲a̲t̲a̲
When demanded by UFCO, VDIA will output data to the
VDU VIA THE FORMAT HANDLER: A command is received via
semaphore S3 telling which format is to be displayed.
If an empty format shall be displayed, then VDIA will
demand that the format handler outputs the requested
format.
If a message shall be displayed, then VDIA will demand
the format handler to output the requested format.
VDIA will then transfer the referenced message from
disk to memory and build up a field list and a buffer
list. Then the format handler will be asked to transfer
the data to the VDU. This procedure will be repeated
until all data are transferred to the VDU.
If, before a completion code is received from the format
handler, a stop output command is received from UFCO
via semaphore S3, then the System Call Monitor function
CANCEL will be called. Upon receipt of the completion
code, VDIA will clear local memory and send a clear
VDU command to the format handler. Thereby VDIA will
return the referenced CIF and a completion code to
UFCO via semaphore S2.
4.2.3.1.2. I̲n̲p̲u̲t̲ ̲o̲f̲ ̲D̲a̲t̲a̲
When commanded by UFCO, VDIA will input data from the
VDU via the format handler. A command telling which
format to be input from and a reference to the CIF
where the data shall be stored are received via semaphore
S3.
VDIA will then ask the format handler to transfer data
from the VDU to main memory.
Upon completion, VDIA will go through the field list
and buffer list and store the received data in the
referenced CIF. The data will be stored in the internal
message format (IMF). If input data are from a request
format, then the data will be put into a buffer. The
procedure will be repeated until all data are transferred
from the VDU.
If before a completion code is received from the format
handler, a stop input command is received from UFCO
via semaphore S3, then the system call monitor function
CANCEL will be called. Upon reception of a completion
code, VDIA will clear local memory and send a clear
VDU command to the format handler. Thereafter, VDIA
will return a completion code to UFCO via semaphore
S2.
4.2.3.1.3 V̲a̲l̲i̲d̲a̲t̲e̲ ̲D̲a̲t̲a̲
The validation performed by VDIA can be grouped in
the following events:
- Syntax validation
- Semantic validation
- display of error codes.
4.2.3.1.3.1 S̲y̲n̲t̲a̲x̲ ̲v̲a̲l̲i̲d̲a̲t̲i̲o̲n̲
The syntax validation concerns both the messages/comments
and the requests
Further discussion is TBD
4.2.3.1.3.2 S̲e̲m̲a̲n̲t̲i̲c̲ ̲v̲a̲l̲i̲d̲a̲t̲i̲o̲n̲
The semantic validation is performed when the hold
message/comments or request has been syntax validated.
Further discussion is TBD.
4.2.3.1.3.3 D̲i̲s̲p̲l̲a̲y̲ ̲o̲f̲ ̲E̲r̲r̲o̲r̲ ̲C̲o̲d̲e̲s̲
If, during validation of a format, errors are found,
then an error code is stored in an error list together
with an identification of the field in which the error
was found. After validation, the error list is sent
to the VDU via the format handler. These error codes
will be displayed in the left hand margin. Furthermore,
the fields in error will be highlighted.
4.2.3.2 S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲
The dialogue subpackage consists of one coroutine with
semaphore S3 as the main waiting point. The software
structure of VDIA is shown in figure 4.2.3.2-1.
The input from S3 will either be a command from UFCO
or a completion code from the format handler.
Each command will constitute a main function and is
implemented as a procedure.
A brief description of each procedure is given below:
…01…FIG.4.2.3.2-1…01…VDIA Software Structure
a) Initialization Of VDIA
The format handler is initialized and the VDU splits
are defined both for the header area and the format
area.
b) Stop input/output
Stop input/output, clear VDU and clear local memory.
c) Clear up
Clear VDU
d) Start insert lines
A specified number of lines are inserted in a format
e) Start delete lines. A specified number of lines
are deleted in a format
f) Start VDU input
- Messages are read from the VDU and stored in
a CIF
- Requests are read from the VDU
g) Start VDU output format
Outputs an empty format to the VDU
h) Start VDU output msg.
Output a msg. from CIF to VDU
i) Start append
A specified number of lines from a secondary CIF
are inserted behind the text field on the VDU
j) Insert
A completion code from the format handler is analysed
and a corresponding completion code is sent to
UFCO coroutine.
k) DELETE
As insert in (j)
l) VDU data output
Output a msg. from CIF to VDU in bites of 512 bytes
at the time.
m) VDU data input
- Messages are read from the VDU and stored in
a CIF
- Requests are read from the VDU and sent to
the UFCO coroutine.
n) Validation
The syntax validation is performed both for requests,
messages and comments.
o) Semantic validation
The semantic validation is performed both for requests,
messages and comments.
p) Message handling instruction
The message handling instruction codes and plaindress
descriptions are displayed on the VDU.
q) Display error-codes
Outputs error codes and inverse vidio the fields
in error.
r) Build M-MON Record
Calculates and creates the parameters to get a
msg. cut up in peaces to fit the CIF-buffers. Only
used to get the msg. from CIF to local memory.
s) Build field and buffer list.
Creates the parameters to get a msg. in peaces
sent in VDU-buffers from local memory to VDU.
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̲ ̲w̲i̲t̲h̲i̲n̲ ̲V̲D̲I̲A̲
4.2.3.3.1 D̲a̲t̲a̲ ̲F̲l̲o̲w̲
The HIPO diagrams overleaf shows the data flow caused
by the VDIA Subroutine.
4.2.3.3.2 C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲
The control logic of VDIA is shown in a Module-free
refer fig. 4.2.3.3.2-1.
Diag.Id: 4.2.3.3-1…01…START/STOP VDIA
Diag.ID: 4.2.3.3-2…01…OUTPUT MESSAGE
Diag.ID: 4.2.3.3-3…01…INPUT MESSAGE
Diag.ID: 4.2.3.3-4…01…INSERT/DELETE LINES
FIG. 4.2.3.3.2-1
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 V̲D̲U̲-̲M̲A̲I̲N̲-̲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̲
This module controls the distribution of incoming jobs
from UFCO and VDU ̲IO to the other modules in the subpackage.
4.2.3.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) VDIA ̲MAIN
b) VDIA ̲MAIN(R6)
The procedure is a submodule which is only called by
the Coroutine Monitor.
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̲
RO - R7 (DEST)
4.2.3.4.1.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
N/A
4.2.3.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̲
UFCO ̲VDIA ̲CMD ̲TYPE refer 4.1.4
IDENT ̲TYPE -"-
VDIA ̲UFCO ̲CC ̲TYPE -"-
VDU ̲CMD ̲TYPE -"-
USER ACTION TYPE refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
VDU ̲OP refer 4.1.4
UFCO ̲OP -"-
VDU ̲CMD ̲TYPE refer 4.2.3.5
VUS ̲S2 refer 4.1.4
VDIA ̲CC ̲OP -"-
CURSOR ̲RECORD ̲1 -"-
FORMAT ̲IFCB -"-
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
N/A
4.2.3.4.1.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
Commands and acknowledgement are received in semaphore
three. They are distinguished to be either UFCO cmd's
or VDU acknowledgement.
The structure for both input and output performance
on VDU is beginning with a UFCO-cmd and the following
module is the upstart and the first cmd to the VDU.
The modules activated after a VDU acknowledgement is
the rest to accomplish the UFCO cmd.
DIA ̲START ̲LOOP
START LOOP
WAIT ̲OPSEM (VUS-S3) (VUS ̲OP) : OK
CASE VUS ̲OP. IDENT OF
UFCO ̲IDENT? - U̲F̲C̲O̲ ̲C̲M̲D̲ ̲E̲X̲E̲C̲U̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲-̲2̲
VDU ̲IDENT? - V̲D̲U̲ ̲O̲P̲E̲R̲A̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲-̲3̲
OTHERWISE? - V̲U̲S̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
END START LOOP
FIG. 4.2.3.4.1-1
UFCO ̲CMD ̲EXECUTION
CASE UFCO ̲OP.CMD OF
VDIA ̲CLOSE ̲DOWN?
VDIA ̲CANCEL? S̲T̲O̲P̲ ̲I̲N̲P̲U̲T̲ ̲O̲U̲T̲P̲U̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲-̲4̲)̲
VDIA ̲CLEAR ̲VDU? C̲L̲E̲A̲R̲ ̲O̲P̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲-̲5̲)̲
VDIA ̲SUSPEND?
VDIA ̲INPUT ̲FORMAT? SET VALIDATION ̲REQ =
FALSE
SET MSG ̲INPUT ̲PENDING
̲TRUE
S̲T̲A̲R̲T̲ ̲V̲D̲U̲ ̲I̲N̲P̲U̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲8̲)̲
VIDA ̲INPUT ̲REQ? SET REQ ̲INPUT ̲PENDING
= TRUE
SET VALIDATION ̲REQ =
TRUE
S̲T̲A̲R̲T̲ ̲V̲D̲U̲ ̲I̲N̲P̲U̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲8̲)̲
VDIA ̲INPUT ̲MSG? SET MSG ̲INPUT ̲PENDING
= TRUE
SET VALIDATION ̲REQ =
TRUE
S̲T̲A̲R̲T̲ ̲V̲D̲U̲ ̲I̲N̲P̲U̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲8̲
VDIA ̲OUTPUT ̲FORMAT? S̲T̲A̲R̲T̲ ̲V̲D̲U̲ ̲O̲U̲T̲P̲U̲T̲ ̲F̲O̲R̲M̲A̲T̲
̲(̲4̲.̲2̲.̲3̲.̲4̲.̲2̲)̲
VDIA ̲OUTPUT ̲MSG? S̲T̲A̲R̲T̲ ̲V̲D̲U̲ ̲O̲U̲P̲U̲T̲ ̲M̲S̲G̲
̲(̲4̲.̲2̲.̲3̲.̲4̲.̲3̲)̲
VDIA ̲APPEND? S̲T̲A̲R̲T̲ ̲A̲P̲P̲E̲N̲D̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲4̲)̲
VDIA ̲INSERT? S̲T̲A̲R̲T̲ ̲I̲N̲S̲E̲R̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲-̲6̲
VDIA ̲DELETE? S̲T̲A̲R̲T̲ ̲D̲E̲L̲E̲T̲E̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲-̲7̲)̲
OTHERWISE? V̲U̲S̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
MOVE UFCO CMD TO VDU ̲OPERATION
END
FIG. 4.2.3.4.1-2
CASE VDU ̲OP.CMD OF
FORMAT ̲TO ̲VDU? V̲D̲U̲ ̲D̲A̲T̲A̲ ̲O̲U̲T̲P̲U̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲5̲)̲
FIELDS ̲TO ̲VDU? V̲D̲U̲ ̲D̲A̲T̲A̲ ̲O̲U̲T̲P̲U̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲5̲)̲
FIELDS ̲FROM ̲VDU? V̲D̲U̲ ̲D̲A̲T̲A̲ ̲I̲N̲P̲U̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲9̲)̲
LINES ̲INSERTED? I̲N̲S̲E̲R̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲-̲8̲)̲
LINES ̲DELETED? D̲E̲L̲E̲T̲E̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲-̲9̲)̲
OTHERWISE? V̲U̲S̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲4̲.̲1̲.̲5̲.̲2̲
END CASE
FIG. 4.2.3.4.1-3
STOP ̲INPUT ̲OUTPUT
PENDING TRANSACTION? - CASE SYS ̲CANCEL(VDU ̲OP)(CC):
ERROR OK
ERROR? ANALYSE ̲ERROR
(CC,0)
OK?
END CASE
CASE SYS ̲WAIT(VDU ̲OP)(CC):
ERROR ̲OK
ERROR? - ANALYSE ̲ERROR(CC,0)
OK?
END CASE
CLEAR (LOCAL MEMORY)
CASE SEND ̲CONTROL(FORMAT ̲IFCB, CLEAR SPLIT)(CC):
ERROR ̲OK
ERROR? - CASE ANALYSE ̲ERROR(CC, 1, VDU ̲SPLIT
̲FAILED):(L1)
L1? - MOVE SPLIT ̲FAILED ̲CC TO VDIA
̲CC ̲OP.CMD
END CASE
OK? - CASE UFCO ̲OP.CMD OF
VDIA ̲CLOSE ̲DOWN? - MOVE VDIA ̲CLOSE
̲DOWN ̲CC TO
VDIA ̲CC ̲OP.CMD
VDIA ̲CANCEL? - MOVE VDIA ̲CANDEL
CC TO ̲
VDIA ̲CC ̲OP.CMD
OTHERWISE? V̲U̲S̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲
̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
END CASE
SIGNAL ̲OPSEM(VUS ̲S2, VDIA ̲CC ̲OP) : OK
END
FIG. 4.2.3.4.1-4
CLEAN UP
CLEAR (BUFFER)
CASE SEND ̲CONTROL (FORMAT ̲IFCBS, CLEAR SPLIT)(CC):ERROR
̲OK
ERROR? ANALYSE ̲ERROR(CC,1,VDU ̲SPLIT ̲FAILED):(L1)
L1? - MOVE SPLIT ̲FAILED ̲CC TO VDIA
̲CC ̲OP.CMD
OK? VDIA ̲CLEAR ̲VDU ̲CC TO VDIA ̲CC ̲OP.CMD
END CASE
SIGNAL ̲OPSEM(VUS ̲S2, VDIA ̲CC ̲OP): OK
END
FIG. 4.2.3.4.1-5
START ̲INSERT
CASE INIT ̲INSERT ̲LINES (FORMAT ̲IFCB, LINE NO, INCAR,LINES,VDU
̲OP)
(CC): ERROR ̲OK
ERROR? - ANALYZE ̲ERROR(CC,0)
OK? - ASSOCIATE(VUS ̲S3, VDU ̲OP): OK
END CASE
FIG. 4.2.3.4.1-6
START DELETE
CASE INIT ̲DELETE ̲LINES (FORMAT ̲IFCB, LINE NO, INCAR,LINES,
VDU ̲OP)
(CC): ERROR OK
ERROR? - ANALYZE ̲ERROR(CC,0)
OK? - ASSOCIATE(VUS ̲S3, VDU-OP): OK
END CASE
FIG. 4.2.3.4.1-7
INSERT
CASE SYS ̲WAIT(VDU ̲OP)(CC): ERROR ̲OK
ERROR? CASE ANALYZE ERROR (CC,2, INSERT
NOT ALLOWED,
VDU ̲SPLIT
̲FAILED):(L1,L2)
L1 - MOVE INSERT ̲NOT ̲ALLOWED
̲CC TO
VDIA ̲CC ̲OP ̲CMD
L2 - MOVE SPLIT ̲FAILED ̲CC
TO
VDIA ̲CC ̲OR CMD
END CASE
OK? UPDATE FORMAT DESCRIPTOR
UPDATE VALIDATION ̲TABLE
MOVE LINES ̲INSERTED ̲CC ̲TO ̲VDIA
̲CC ̲UP ̲CMO
END CASE
SIGNAL ̲OPSEM(VUS ̲S2, VDIA ̲CC ̲OP) : OK
END
FIG. 4.2.3.4.1-8
DELETE
CASE SYS ̲WAIT(VDU ̲OP)(CC): ERROR ̲OK
ERROR? - CASE ANALYSE ̲ERROR(CC,2,DELETE
NOT ALLOWED;
VDU ̲SPLIT
̲FAILED):(L1,L2)
L1? - MOVE DELETE ̲NOT ̲ALLOWED ̲CC TO
VDIA ̲CC ̲OP.CMD
L2? - MOVE SPLIT ̲FAILED ̲CC TO VDIA
̲CC ̲OP.CMD
END CASE
OK? UPDATE FORMAT ̲DESCRIPTOR
UPDATE VALIDATION ̲TABLE
MOVE LINES ̲DELETED ̲CC TO VDIA ̲CC ̲OP.CMD
END CASE
SIGNAL ̲OPSEM(VUS ̲S2, VDIA ̲CC ̲OP): OK
END
FIG. 4.2.3.4.1-9
4.2.3.4.2 S̲T̲A̲R̲T̲ ̲V̲D̲U̲ ̲O̲U̲T̲P̲U̲T̲ ̲F̲O̲R̲M̲A̲T̲
4.2.3.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̲
The right format is fetched from the format handler
package and sent to the VDU with a transaction id.
4.2.3.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̲
a) START ̲VDU ̲OUTPUT ̲FORMAT
b) START ̲VDU ̲OUTPUT ̲FORMAT (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̲
R0 - R7 (DEST)
4.2.3.4.2.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
N/A
4.2.3.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̲
None
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
FORMAT-ID refer 4.1.4
TRANSACTION ̲ID -"-
VALIDATION ̲TABLE refer 4.2.3.5
FORMAT ̲DISPLAY ̲TABLE -"-
VDU ̲OP ̲IDENTIFIER ̲NAME -"-
FORMAT ̲IFCB refer 4.1.4
TMP ̲RECORD -"-
VDIA ̲IO ̲PARAMETER refer 4.2.3.5
FORMAT ̲OUTPUT ̲PENDING -"-
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.3.4.2.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
Usually the Format-display-table will be used to get
a msg. from Cif to VDU and the Validation table to
get the msg. from VDU to Cif, but when it only concerns
a Format to display the Validation-Table will be called
if the Table also is neaded to the input-transaction.
START ̲VDU ̲OUTPUT ̲FORMAT
CASE SEND ̲CONTROL (FORMAT ̲IFCB, CLEAR ̲SPLIT)(CC):
ERROR ̲OK
ERROR? - ANALYSE ̲ERROR(CC,1,VDU ̲SPLIT ̲FAILED):(L1)
LI? MOVE SPLIT ̲FAILED ̲CC TO VDIA ̲CC
̲OP.CMD
SIGNAL ̲OPSEM(VUS ̲S2, VDIA ̲CC ̲OP):
OK
OK? - M̲A̲I̲N̲ ̲S̲T̲A̲R̲T̲ ̲V̲D̲U̲ ̲O̲U̲T̲P̲U̲T̲ ̲F̲O̲R̲M̲A̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲2̲-̲2̲)̲
END CASE
END
FIG. 4.2.3.4.2-1
MAIN ̲START ̲VDU ̲OUTPUT ̲FORMAT
CASE GET ̲FORMAT (FORMAT ̲IFCB, FORMAT ̲ID)(CC):ERROR
̲OK
ERROR? - ANALYSE ̲ERROR(CC,0)
OK?
END CASE
BUILD TMP RECORD
CASE TMP ̲SEARCH (DISPLAY ̲TABLE)(CC):ERROR ̲OK
ERROR? - ANALYSE ̲ERROR(CC,0)
OK?
END CASE
B̲U̲I̲L̲D̲ ̲F̲I̲E̲L̲D̲ ̲A̲N̲D̲ ̲B̲U̲F̲F̲E̲R̲ ̲L̲I̲S̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲7̲)̲
CASE FIELDS ̲OUTPUT(FORMAT ̲IFCB,FIELD ̲LIST,BLE,
NO OF ̲FIELDS,
BYTE
LENGTH)
(CC): ERROR ̲OK
ERROR? - ANALYSE ̲ERROR(CC, 1, VDU ̲SPLIT ̲FAILED):(L1)
L1? - MOVE SPLIT ̲FAILED ̲CC TO VDIA
̲CC ̲OP.CMD
SIGNAL ̲OPSEM(VUS ̲S2, VDIA ̲CC
̲OP):OK
OK? - SET FORMAT ̲OUTPUT ̲PENDING = TRUE
MOVE FORMAT ̲TO ̲VDU TO VDU ̲OP.CMD
CASE INIT ̲OUTPUT ̲FORMAT(FORMAT ̲IFCB)(CC):ERROR
̲OK
ERROR? - ANALYZE ̲ERROR(CC,O)
OK? - ASSOCIATE (VUS ̲S3, VDU ̲OP): OK
END CASE
END
FIG. 4.2.3.4.2-2
4.2.3.4.3 S̲T̲A̲R̲T̲ ̲V̲D̲U̲ ̲O̲U̲T̲P̲U̲T̲ ̲M̲E̲S̲S̲A̲G̲E̲
4.2.3.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̲
The module calls the right format in where the message
shall stay. It finds out how many of the different
incarantions there shall be and modifies the format
to fit the msg. Then the message can be fetched and
be displayed on VDU.
4.2.3.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) START ̲VDU ̲OUTPUT ̲MSG
b) START ̲VDU ̲OUTPUT ̲MSG (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̲
R0 - R7 (DEST)
4.2.3.4.3.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
N/A
4.2.3.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̲
None
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
FORMAT ̲ID refer 4.1.4
TRANSACTION ̲ID -"-
FORMAT ̲IFCB -"-
TMP ̲RECORD -"-
FORMAT ̲DISPLAY ̲TABLE REFER 4.2.3.5
VDIA ̲M ̲MON ̲PARAMETER -"-
VDIA ̲IO ̲PARAMETER -"-
VDIA ̲ADMINISTRATION ̲LOCATION -"-
VOLUME ̲ARRAY(M) -"-
BEG ̲ADDR(M) -"-
END ̲ADDR(M) -"-
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR MSG ̲OUTPUT ̲PENDING: BOOLEAN
VAR LINE: INTEGER
VAR INCAR: INTEGER
VAR NO ̲OF ̲LINES: INTEGER
4.2.3.4.3.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
The structure of this module is based upon the Format
Display Table. The common package procedure Build TMP
is called to handle the Table. The Table contains pointers
to the administration field and addresses to the VDU:
Comparing the format with data from the administration
field the format is modified to fit the message for
display.
Only the corrected format is sent for display in this
start module.
START ̲VDU ̲OUTPUT ̲MSG
CASE SEND ̲CONTROL(FORMAT ̲IFCB,CLEAR ̲SPLIT)(CC):ERROR
̲OK
ERROR? - ANALYSE ̲ERROR(CC,1,VDU ̲SPLIT ̲FAILED):(L1)
L1? MOVE SPLIT ̲FAILED ̲CC TO VDIA
̲CC ̲OP.CMD
SIGNAL ̲OPSEM(VUS ̲S2, VDIA ̲CC
̲OP)
OK? - M̲A̲I̲N̲ ̲S̲T̲A̲R̲T̲ ̲V̲D̲U̲ ̲O̲U̲T̲P̲U̲T̲ ̲M̲S̲G̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲3̲-̲2̲
END CASE
END
FIG. 4.2.3.4.3-1
MAIN ̲START ̲VDU ̲OUTPUT ̲MSG
BUILD TMP RECORD
CASE TMP ̲SEARCH(FORMAT ̲DISPLAY TABLE)(CC): ERROR
̲OK
ERROR? - ANALYSE ̲ERROR(CC,0)
OK?
END CASE
G̲E̲T̲ ̲A̲N̲D̲ ̲S̲A̲V̲E̲ ̲A̲D̲M̲I̲N̲I̲S̲T̲R̲A̲T̲I̲O̲N̲ ̲F̲I̲E̲L̲D̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲3̲-̲3̲)̲
CASE GET ̲FORMAT(FORMAT ̲IFCB, FORMAT ̲ID)(CC): ERROR
̲OK
ERROR? - ANALYSE ̲ERROR (CC,0)
OK?
END CASE
E̲X̲T̲E̲N̲D̲ ̲F̲O̲R̲M̲A̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲3̲-̲4̲)̲
VDU ̲FAILED EQ TRUE?
B̲U̲I̲L̲D̲ ̲F̲I̲E̲L̲D̲ ̲A̲N̲D̲ ̲B̲U̲F̲F̲E̲R̲ ̲L̲I̲S̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲7̲)̲
CASE FIELDS ̲OUTPUT(FORMAT ̲IFCB, FIELD ̲LIST, BLE,
NO ̲OF ̲FIELDS, BYTE ̲LENGTH)(CC):
ERROR ̲OK
ERROR? - CASE ANALYSE ̲ERROR(CC,1,VDU ̲SPLIT
̲FAILED):(L1)
L1? - MOVE SPLIT ̲FAILED ̲CC TO VDIA
̲CC.OP.CMD
SIGNAL ̲OPSEM(VUS ̲S2, VDIA
̲CC ̲OP): OK
END CASE
OK? SET MSG ̲OUTPUT ̲PENDING = TRUE
MOVE FIELDS ̲TO ̲VDU TO VDU ̲OP.CMD
CASE ̲INIT ̲OUTPUT ̲FORMAT(FORMAT ̲IFCB,VDU
̲OP)
(CC):ERROR ̲OK
ERROR? - ANALYSE ̲ERROR (CC,0)
OK? - ASSOCIATE (VUS ̲S3, VDU ̲OP)
: OK
END CASE
END CASE
FIG. 4.2.3.4.3-2
GET AND SAVE ADMINISTRATION ̲FIELD
CASE GET ̲VIEW ̲ATTRIBUTES(VIEW ̲ATTRIBUTES, VIEW
̲REF)(CC):
ERROR
̲OK
ERROR? - ANALYSE ̲ERROR(CC,0)
OK?
END CASE
CIF FIELDS NEEDED, SEE FORMAT ̲DISPLAY ̲TABLE
SET FLAG = TRUE IN VOLUME ̲ARRAY(F1,F2,F3,F4,F5,F6,F7,F8,
F9, F10)
BEG ̲ADDR (0, F1)
END ̲ADDR (300, F1)
BUILD VDIA ̲M ̲MON ̲PARAMETERS((V ̲SIZE,V ̲VIEW,V ̲LIST,V
̲BUFFER)
CASE READ ̲VIEW ("ADMINISTRATION FIELD"
SIZE,LIST,VIEW,BUFFER)
(CC) ERROR ̲OK
ERROR? - ANALYSE ̲ERROR(CC,0)
OK?
END CASE
SAVE ADMINISTRATION FIELD
END
FIG. 4.2.3.4.3-3
EXTEND FORMAT
LOOP
PARAMETER SIZE IN FORMAT ̲DISPLAY ̲TABLE
POINTER COUNTER IN FORMAT ̲DISPLAY ̲TABLE
COMPARE EQUAL ELEMENT IN CIF WITH FORMAT
EQ?
CIF GT FORMAT? ̲CASE INSERT ̲LINES(FORMAT ̲IFCB,NO,INCAR,LINES)
(CC): ERROR ̲OK
ERROR? - CASE ANALYSE ̲ERROR(CC,2,INSERT
̲NOT ̲ALLOWED
VDU ̲SPLIT ̲FAILED)(L1,
L2)
L1? - MOVE INSERT ̲NOT ALLOWED ̲CC TO
VDIA ̲CC ̲OP.CMD
L2? - MOVE SPLIT ̲FAILED ̲CC TO VDIA
̲CC ̲OP.CMD
END CASE
SET VDU ̲FAILED = TRUE
SIGNAL ̲OPSEM(VUS ̲S2, VDIA ̲CC ̲OP):
OK
OK?
END CASE
CASE DELETE ̲LINES(FORMAT,IFCB,N0,INCR,LINES)(CC):ERROR
̲OK
ERROR? - CASE ANALYSE ̲ERROR(CC,2,DELETE NOT
ALLOWED
VDU ̲SPLIT ̲FAILED):(L1,L2)
L1? - MOVE DELETE ̲NOT ALLOWED ̲CC
TO VDIA ̲CC ̲OP.CMD
L2? - MOVE SPLIT ̲FAILED ̲CC TO VDIA
̲CC ̲OP.CMD
END CASE
SET VDU ̲FAILED = TRUE
SIGNAL ̲OPSEM(VUS ̲S2, VDIH ̲CC ̲OP)
OK?
END CASE
TABLE FINISH? EXIT LOOP
END LOOP
FIG. 4.2.3.4.3-4
4.2.3.4.4 S̲T̲A̲R̲T̲ ̲A̲P̲P̲E̲N̲D̲
4.2.3.4.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 append cmd causes the lines or hold messages from
another CIF to be displayed in the text field after
the message displayed on the VDU.
4.2.3.4.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) START ̲APPEND
b) START ̲APPEND(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̲
R0 - R7 destroyed
4.2.3.4.4.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
N/A
4.2.3.4.4.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̲
None
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
APPEND ̲CIF ̲REF refer 4.1.4
FORMAT ̲IFCB -"-
VDU ̲OP ̲IDENTIFIER ̲NAME -"-
VALIDATION TABLE (M) refer 4.2.3.5
VDIA ̲M ̲MON ̲PARAMETER (M) -"-
VDIA ̲ID ̲PARAMETER -"-
END ̲ADDR (M) -"-
VOLUME ARRAY (M) -"-
MSG ̲OUTPUT ̲PENDING -"-
VDIA ̲CIF ̲LOCATION -"-
c) L̲O̲C̲A̲L̲ ̲D̲A̲T̲A̲
VAR:
LINE NO, INCAR, LINES: INTEGER
LINE, TO ̲LINE ̲NO INTEGER
OFFSET ̲OF ̲TEXT FIELD: INTEGER; ADDRESS
LINE ̲COUNTER: INTEGER
4.2.3.4.4.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
From the first CIF. the line and line numbers that
shall be appended are fetched. From the append-Cif
the Text line no is checked to set if the lines exist
or the hold message shall be appended to the first
text on VDU.
The reading process from CIF. is starting with the
first line in Text field and only when the right line
not has been read it will be displayed on VDU.
If more than one CIF. buffer-transport is neaded to
fetch the text lines the VDU ̲DATA ̲OUTPUT ̲MODULE will
take over, read from CIF. and display on VDU.
START APPEND
CASE READ ̲VIEW"LINE NO,LINES"(SIZE,LIST,VIEW,BUFFER)(CC):ERROR
̲OK
ERROR? - ANALYSE ̲ERROR(CC,0)
OK?
END CASE
CASE READ ̲VIEW"TEXT LINES,TEXT OFFSET"(SIZE,LIST,VIEW,BUFFER)(CC):
ERROR
̲OK
ERROR? - ANALYSE ERROR(CC,0)
OK?
END CASE
CHECK AND CALCULATE NO OF LINES
CASE INSERT ̲LINES(FORMAT ̲IFCB,LINE ̲NO,INCAR,LINES)(CC)
̲ERROR ̲OK
ERROR? - CASE ANALYSE ̲ERROR(CC,2,INSERT ̲NOT ALLOWED,
VDU ̲SPLIT ̲FAILED): (L1,
L2)
L1? - MOVE INSERT ̲NOT ̲ALLOWED ̲CC TO
VDIA CC ̲OP.CMD
L2? - SPLIT ̲FAILED ̲CC TO VDIA CC ̲OP.CMD
END CASE
SIGNAL ̲OPSEM(VUS ̲S2, VDIA ̲CC ̲OP)(CC):
OK
OK? UPDATE VALIDATION TABLE (TEXT ̲(LINE,INCAR,FIELD)
S̲T̲A̲R̲T̲ ̲A̲P̲P̲E̲N̲D̲ ̲R̲E̲A̲D̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲4̲-̲2̲
B̲U̲I̲L̲D̲ ̲F̲I̲E̲L̲D̲ ̲A̲N̲D̲ ̲B̲U̲F̲F̲E̲R̲ ̲L̲I̲S̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲7̲)̲
MOVE FIELDS ̲TO ̲VDU TO VDU ̲OP.CMD
CASE INIT ̲FIELDS ̲OUTPUT(FORMAT ̲IFCB,FIELD
LIST,BLE,
NO ̲OF FIELDS, BYTE LENGTH, VDU ̲OP)(CC):
ERROR ̲OK
ERROR? - ANALYZE ̲ERROR(CC,0)
OK? - ASSOCIATE(VUS ̲S3, VDU ̲OP):
OK
END CASE
SET MSG ̲OUTPUT ̲PENDING = TRUE
END CASE
END…01…FIG. 4.2.3.4.4-1…86…1 …02… …02… …02… …02… …02… …02…
…02…
START APPEND READING
VOLUME ̲ARRAY = (0,0,0,0,1,0,0,0,0,0) "TEXT FIELD"
END ̲ADDR = (0, F5)
LOOP
B̲U̲I̲L̲D̲ ̲M̲ ̲M̲O̲N̲ ̲R̲E̲C̲O̲R̲D̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲6̲)̲
CASE READ ̲VIEW (SIZE, LIST, APPEND ̲CIF ̲REF,BUFFER)
(CC): ERROR ̲OK
ERROR? - ANALYZE ̲ERROR(CC,0)
OK?
…02…END CASE
COUNT INCOMING LINES
LINE ̲COUNT GE START ̲APPEND ̲LINE ̲NO? EXIT
LOOP
END LOOP
END
FIG. 4.2.3.4.4-2
4.2.3.4.5 V̲D̲U̲ ̲D̲A̲T̲A̲ ̲O̲U̲T̲P̲U̲T̲
4.2.3.4.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̲
A completion code from the VDU will activate this module
when either a format or a part from a message has been
sent for display on the VDU.
When it only concerns a Format a completion will be
sent to the UFCO coroutine. When it concerns a msg.
from cif the module will either terminate the displaying
procedure if all the contents of Cif is displayed or
continue the displaying procedure..
4.2.3.4.5.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) VDU ̲DATA ̲OUTPUT
b) VDU ̲DATA ̲OUTPUT (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̲
R0 - R7 (DEST)