top - download
⟦6f3c26fd7⟧ Wang Wps File
Length: 29074 (0x7192)
Types: Wang Wps File
Notes: USER VDU, CPS/SDS/039
Names: »1564A «
Derivation
└─⟦945185ab2⟧ Bits:30005808 8" Wang WCS floppy, CR 0113A
└─ ⟦this⟧ »1564A «
WangText
%…08…%…0b…%…0e…%…01…% $…09…$…0d…$…00…$ $…07…#…0a…#…86…1
…02…
…02…
…02…
…02…CPS/SDS/039
…02…820104…02……02…
USER VDU
DETAILED
DESIGN
SPECIFICATION…02……02…CAMPS
4.2.3.4.5.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
N/A.
4.2.3.4.5.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 ̲IFCB refer 4.1.4
FORMAT ̲OUTPUT ̲PENDING (m) refer 4.2.3.4.3
MSG ̲OUTPUT ̲PENDING (m) refer 4.2.3.4.2
READ ̲END refer 4.2.3.5
CIF ̲ID refer 4.1.4
END ̲ADDR refer 4.2.3.4.6
FORMAT ̲DISPLAY ̲TABLE refer 4.2.3.5
VDIA ̲CIF ̲LOCATION (m) refer 4.2.3.5
VDIA ̲ADMINISTRATION ̲LOCATION refer 4.2.3.5
VDU ̲OP ̲NAME refer 4.2.3.5
VDIA ̲M ̲MON ̲PARAMETER refer 4.2.3.5
VDIA ̲I0 ̲PARAMETRE refer 4.2.3.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.3.4.5.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
Depending on how much of the CIF has been displayed
on the VDU the transaction of displaying a message
is continued or ended. The procedure of displaying
a CIF is based upon the two other modules "Build MMON
̲Record" and "Build Field and Buffer List". The first
module calculates the amount of CIF data we can transport
in a CIF buffer and "Build Buffer and Field List" module
takes care of the method to send the incomming part
to te VDU. If it only concerns a format to display
a completion code is send to UFCO.
VDU ̲DATA ̲OUTPUT
CASE SYS ̲WAIT (VDU ̲OP) (CC) : ERROR ̲OK
OK ? MSG ̲PENDING ? READ ̲END EQ FALSE ? G̲E̲T̲
̲A̲N̲D̲ ̲D̲I̲S̲P̲L̲A̲Y̲ ̲C̲I̲F̲
(̲4̲.̲2̲.̲3̲.̲4̲.̲5̲-̲2̲
MSG ̲OUTPUT ̲PENDING = FALSE
MOVE OUTPUT ̲MSG ̲CC TO VDIA
̲CC ̲OP.CMD
SIGNAL ̲OPSEM (VUS ̲S2, VDIA
̲CC ̲OP):OK
FORMAT PENDING ? FORMAT OUTPUT ̲FORMAT
̲CC TO VDIA ̲CC ̲OP
MOVE OUTPUT ̲FORMAT ̲CC
TO VDIA ̲CC ̲OP.CMD
SIGNAL ̲OPSEM (VUS
̲S2, VDIA ̲CC ̲OP):OK
ERROR ? CASE ANALYSE ̲ERROR (CC,1,VDU ̲SPLIT
̲FAILED) : (L1)
L1 ? MOVE SPLIT ̲FAILED ̲CC TO VOIA
̲CC ̲OP ̲CMD
SIGNAL ̲OPSEM (VVS ̲S2, VDIA
̲CC ̲OP) : OK
END CASE
END CASE
END
Figure 4.2.3.4.5-1
GET AND DISPLAY CIF
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, VIEW, BUFFER)
(CC):ERROR ̲OK
ERROR? ANALYSE ̲ERROR (CC,O)
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̲)̲
SET MSG ̲OUTPUT ̲PENDING = TRUE
MOVE FIELDS ̲TO ̲VDU TO VDU ̲OF.CMO
CASE INIT ̲FIELDS ̲OUTPUT (FORMAT ̲IFCB, FIELD
̲LIST, BLE,
NO ̲OF ̲ FIELDS, BYTE ̲LENGTH,
VDU ̲OP)
(CC) : ERROR ̲OK
ERROR ? ANALYZE ̲ERROR (CC,C)
OK ? ASSOCIATE (VUS ̲S3, VDU ̲OP) : OK
END CASE
Figure 4.2.3.4.5-2
4.2.3.4.6 B̲U̲I̲L̲D̲ ̲M̲ ̲M̲O̲N̲ ̲R̲E̲C̲O̲R̲D̲
4.2.3.4.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 module calculates the begin-address and the end-address
in the CIF that have to be contained in a CIF-Buffer-Transport.
The problem is to get a CIF cut up in so few CIF-Buffers
as possible.
4.2.3.4.6.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) BUILD ̲MMON ̲RECORD
b) BUILD ̲MMON ̲RECORD (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̲
R0 ̲R7 (DEST)
4.2.3.4.6.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
N/A
4.2.3.4.6.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 ̲DISPLAY ̲TABLE refer 4.2.3.5
BEG ̲ADDR (m) refer 4.2.3.5
END ̲ADDR (m) refer 4.2.3.5
VDIA ̲M ̲MON ̲PARAMETER (m) refer 4.2.3.5
READ ̲END (m) refer 4.2.3.5
VOLUME ̲ARRAY (m) refer 4.2.3.5
VDIA ̲CIF ̲LOCATION refer 4.2.3.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR TRANS ̲SIZE : INTEGER
PRESENT ̲FIELD : INTEGER
4.2.3.4.6.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
A CIF-Buffer can contain 512 bytes of a msg, but the
last transport will contain the rest of the message
and can be less than 512 bytes.
BUILD M MON RECORD
BEG ̲ADDR.CIF ̲ADDR=END ̲ADDR.CIF ̲ADDR + 1
BEG ̲ADDR.FIELD ̲NO=END ̲ADDR.FIELD ̲NO
TRANS ̲SIZE=512
TRANS ̲SIZE LE REST OF PRESENT FIELD SIZE ?
NEW
̲ADDR=ADDR
+ 512
END
(NEW
̲ADDR,
FIELD)
PRESENT FIELD EQ LAST FIELD? NEW ̲ADDR=LAST
FIELD SIZE=ADDR
SET
READ
̲END=TRUE
END
̲ADDR=(NEW
̲ADDR,
FIELD)
TRANS ̲SIZE = (TRANS ̲SIZE - REST OF PRESENT
FIELD SIZE)
LOOP
NEXT ̲FIELD ̲EQ ̲LAST ̲FIELD AND TRANS ̲SIZE
GE LAST ̲FIELD ̲SIZE ?
NEW
̲ADDR=LAST
̲FIELD
̲SIZE
END
̲ADDR=(NEW
̲ADDR,
NEXT
FIELD)
SET
READ
̲END
= TRUE
EXIT
LOOP
TRANS ̲SIZE LE NEXT ̲FIELD ̲SIZE ?
NEW
̲ADDR=512
BYTES
- TRANS
̲SIZE
END
̲ADDR=(NEW
̲ADDR,
NEXT
FIELD)
EXIT
LOOP
TRANS ̲SIZE=(TRANS ̲SIZE - NEXT TRUE FLAG
FIELD SIZE)
PRESENT FIELD = NEXT TRUE FLAG FIELD
END LOOP
BUILD VDIA ̲M ̲MON PARAMETERS (V ̲SIZE, V ̲VIEW, V
̲LIST, V ̲BUFFER)
END
Figure 4.2.3.4.6-1
4.2.3.4.7 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.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 gets messages data from the CIF buffer
and makes the modifications so the msg fits the format
on VDU. The modifications will be done by some small
procedures. To illustrate one takes care of displaying
SCD's another procedure takes care of displaying the
text-fields.
4.2.3.4.7.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) BUILD ̲FIELD ̲AND ̲BUFFER ̲LIST
b) BUILD ̲FIELD ̲AND ̲BUFFER ̲LIST (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲r̲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.7.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
4.2.3.4.7.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̲
BEG ̲ADDR refer 4.2.3.5
END ̲ADDR (m) refer 4.2.3.5
VALIDATION ̲TABLE refer 4.2.3.5
FORMAT DISPLAY ̲TABLE refer 4.2.3.5
VDIA ̲I0 ̲PARAMETER refer 4.2.3.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR LINE ̲NO: INTEGER
DISPLAY ̲MODIFICATION ̲PROCEDURES ̲DATA (TBD)
4.2.3.4.7.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
Going down the format display table field by field,
a total format will be specified. Each field indicates
pointer to where in the CIF the wanted text can be
found and in the same field the address on the VDU
is indicated. Before sending the text to VDU it will
be noticed if the incoming line text from CIF-Buffer
has been cutted true, then it will be necessary to
begin the next CIF-Buffer from te beginning of the
text line.
BUILD FIELD AND BUFFER LIST
LOOP
NEXT FIELD IN TABLE
CALCULATE ADDRESS (CIF FIELD, POINTER ADD, POINTER
COUNT)
CASE MODIFY DISPLAY PROCEDURE OF:
SCD ̲S:
CASE CC OF
OK?
NOT OK (SPLIT ̲DATA)?-CALCULATE
START ADDRRESS
OF SPLITTED
DATA
UPDATE
END
̲ADDR.CIF
̲ADDR
EXIT
LOOP
END CASE
TEXT:
CASE CC OF
OK ?
NOT OK ? (SPLIT DATA) - CALCULATE
START ADDRESS
OF
SPLITTED
DATA
UPDATE
END
̲ADDR.CIF
̲ADDR
EXIT
LOOP
END CASE
END MODIFICATION
BUILD VDIA ̲IO ̲PARAMETERS
WRITE IN FIELD ̲LIST AND BUFFER ̲LIST
INCREMENT LINE ̲ON
LINE NO EQ END ̲ADDR ? EXIT LOOP
END LOOP
END Figure 4.2.3.4.7-1…86…1
…02… …02… …02… …02… …02… …02…
4.2.3.4.8 S̲T̲A̲R̲T̲ ̲V̲D̲U̲ ̲I̲N̲P̲U̲T̲
4.2.3.4.8.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 upstart to the input procedure
from VDU. It is used of both request formats and
messages that shall be sent on CIF.
4.2.3.4.8.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̲s̲
a) START ̲VDU ̲INPUT
b) START ̲VDU ̲INPUT (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.8.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
N/A
4.2.3.4.8.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̲
IDENT ̲TYPE refer 4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
TMP ̲RECORD refer 4.1.4
FORMAT ̲IFCB refer 4.1.4
START ̲ADDR (m) refer 4.2.3.5
FINISH ̲ADDR (m) refer 4.2.3.5
VALIDATION ̲TABLE refer 4.2.3.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
TBD
4.2.3.4.85 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
If the preceding CMD from UFCO was the Format-output
cmd the right Validationtable can be found in the local
data area. With the information of the size of the
fields and how many incarnations are presented on VDU,
it can be calculated how much of the VDU can be fetched
in one VDU-Buffer.
START ̲VDU ̲INPUT
DO THE FORMAT ID CORRESPOND TO THE TABLE IN
LOCAL DATA ?
BUILD TMP RECORD
CASE TMP ̲SEARCH (VALIDATION ̲TABLE) (CC) :
ERROR ̲OK
ERROR ? ANALYZE ERROR (CC, O)
OK?
END CASE
GET VALIDATION KEY
GET PARAMETER SIZE
CALCULATE START ̲ADDR
CALCULATE FINISH ̲ADDR
CALCULATE (VDIA ̲BLE, VDIA ̲FIELD, VDIA ̲NO)
MOVE FIELDS ̲FROM ̲VDU TO VDU OP.CMO
CASE INIT ̲FIELDS ̲INPUT (FORMAT ̲IFCB, BLE,
FIRST ̲FIELD,
NO ̲OF ̲FIELDS,
VDU ̲OP) (CC):ERROR
̲OK
ERROR ? ANALYZE ERROR (CC, O)
OK? ASSOCIATE (VUS ̲S3, VDU ̲OP) : OK
END CASE
END
Figure 4.2.3.4.8-1
4.2.3.4.9 V̲D̲U̲ ̲D̲A̲T̲A̲ ̲I̲N̲P̲U̲T̲
4.2.3.4.9.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 takes care of the input from a VDU buffer
called by "START ̲VDU ̲INPUT" module or itself. If it
concerns a msg it is validated and sent for storage
on CIF, but a request-input is only validated. When
all the message have been fetched the administration
field is sent on CIF as the last CIF-transaction. If
any errors have been detected the module "Display error
codes" is called. It is also checked how many times
a message has been validated.
4.2.3.4.9 M̲o̲d̲u̲l̲e̲d̲ ̲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 ̲INPUT
b) VDU ̲DATA ̲INPUT (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.9.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
N/A
4.2.3.4.9.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̲
IDENT ̲TYPE refer 4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
FORMAT ̲IFCB refer 4.1.4
MSG ̲INPUT ̲PENDING (m) refer 4.2.3.5
REQ ̲INPUT ̲PENDING (m) refer 4.2.3.5
VALIDATION ̲REQ refer 4.2.3.5
MHI ̲FLAG refer 4.2.3.5
START ̲ADDR (m) refer 4.2.3.5
FINISH ̲ADDR (m) refer 4.2.3.5
VALIDATION ̲TABLE refer 4.2.3.5
VALIDATION COUNT (m) refer 4.2.3.5
MHI ̲COMPLETION refer 4.2.3.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR TABLE ̲ON ̲CIF: BOOLEAN
INIT TABLE ̲ON ̲CIF= FALSE
4.2.3.4.9.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
Two major parts are found in this module. Either it
is a request or a msg input. The request inputs are
terminated at once but the msg input is cut op in VDU-Buffer-size.
Each time a VDU-Buffer arrives the content is syntax-validated
only when all the msg has been read the semantic validation
will take place.
VDU DATA INPUT
CASE SYS ̲WAIT (VDU ̲OP) (BYTE ̲TRANSFERRED, FIELD
̲LIST, CC):
ERROR ̲OK
ERROR? CASE ANALYZE ̲ERROR (CC, 1, VDU ̲SPLIT
̲FAILED): (L1)
L1 ? MOVE SPLIT ̲FAILED ̲CC to
VDIA ̲CC ̲OP.CMO
SIGNAL ̲OPSEM (VUS
̲S2) (VDIA ̲CC ̲OP):OK
END CASE
OK ? I̲N̲V̲E̲S̲T̲ ̲P̲E̲N̲D̲I̲N̲G̲ ̲F̲U̲N̲C̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲9̲-̲2̲)̲
END CASE
Figure 4.2.3.4.9-1
MSG ̲PENDING EQ TRUE?
V̲A̲L̲I̲D̲A̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲3̲.̲5̲.̲1̲0̲)̲
CASE WRITE ̲VIEW (SIZE,LIST,VIEW,BUFFER)
(CC):ERROR
̲OK
ERROR? ANALYZE ̲ERROR (CC,O)
OK?
END CASE
TABLE ̲ON ̲CIF EQ TRUE? -D̲A̲T̲A̲ ̲I̲N̲P̲U̲T̲ ̲E̲N̲D̲
̲(̲4̲.̲2̲.̲3̲.̲4̲.̲9̲-̲3̲)̲
START ̲ADDR=FINISH ̲ADDR + 1
CALCULATE FINISH ̲ADDR
LAST ADDR? - SET TABLE ̲ON ̲CIF = TRUE
CALCULATE (VDIA ̲BLE,VDIA ̲FIELD,VDIA ̲NO)
MOVE FIELDS ̲FROM ̲VDU TO VDU ̲OP.CMD
CASE INIT ̲FIELDS ̲INPUT (FORMAT ̲IFCB,BLE,FIRST
FIELD,
BLE,NO ̲OF ̲FIELDS,VDU ̲OP)
(CC):ERROR ̲OK
ERROR? - ANALYZE ̲ERROR (CC,O)
OK? - ASSOCIATE (VUS ̲S3,VDU ̲OP):OK
END CASE
REQ ̲PENDING TRUE? - V̲A̲L̲I̲D̲A̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲0̲)̲
ERROR? - D̲I̲S̲P̲L̲A̲Y̲
̲E̲R̲R̲O̲R̲ ̲C̲O̲D̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲1̲)̲
SET REQ ̲INPUT ̲PENDING=FALSE
MOVE INPUT ̲REQ ̲CC
TO VDIA ̲CC ̲OP.CMD
SIGNAL ̲OPSEM (VUS
̲S2,VDIA ̲CC ̲OP):OK
V̲U̲S̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
Figure 4.2.3.4.9-2
DATA ̲INPUT ̲END
CASE WRITE ̲VIEW "ADMINISTRATION FIELD" (SIZE,LIST,VIEW,BUFFER)(CC):
ERROR
̲OK
ERROR? ANALYZE ̲ERROR (CC,O)
OK? SET TABLE ̲ON ̲CIF=FALSE
END CASE
VAL REQ EQ FALSE MOVE INPUT ̲FORMAT ̲CC
TO VDIA ̲CC ̲OP.CMD
SIGNAL ̲OPSEM
(VUS ̲S2,VDIA ̲CC
̲OP):OK
S̲E̲M̲A̲N̲T̲I̲C̲ ̲V̲A̲L̲I̲D̲A̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲2̲-̲1̲4̲
NO ERROR? MHI ̲FLAG EQ FALSE?
MHI ̲COMPLETION EQ
TRUE?
M̲E̲S̲S̲A̲G̲E̲ ̲H̲A̲N̲D̲L̲I̲N̲G̲
̲I̲N̲S̲T̲R̲U̲C̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲1̲)̲
VDU FAILED EQ TRUE?
MOVE INPUT ̲MSG ̲CC
TO VDIA ̲CC ̲OP.CMD
SIGNAL ̲OPSEM (VUS
̲S2.VDIH ̲CC ̲OP) :OK
VAL ̲COUNT ̲EXCEEDED? - MOVE EXCEEDED ̲CC ̲TO
VDIA ̲CC ̲OP.CMD
SIGNAL ̲OPSEM
(VUS ̲S2,VDIA ̲CC
̲OP): OK
INCREMENT VAL ̲COUNT
D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲C̲O̲D̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲1̲)̲
VDU ̲FIELD EQ TRUE?
MOVE VAL ̲ERROR ̲CC TO VDIA ̲CC ̲OP.CMD
SIGNAL OPSEM (VUS ̲S2,VDIA ̲CC ̲OP) :OK
SET MSG ̲INPUT ̲PENDING = FALSE
END
Figure 4.2.3.4.9-3
4.2.3.4.10 V̲A̲L̲I̲D̲A̲T̲I̲O̲N̲
4.2.3.4.10.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 has two tasks, one which checks each field
in a format for syntax validation and updates semantic
validation. The other task is to build up the administration
field, some offset addresses and number of items.
4.2.3.4.10.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) VALIDATION
b) VALIDATION (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.10.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
The Validation module contains the main Validation
procedure and some syntax validation procedures.
4.2.3.4.10.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̲
VALIDATION REQ refer 4.2.3.5
VALIDATION ̲TABLE (m) refer 4.2.3.5
START ̲ADDR refer 4.2.3.5
FINISH ̲ADDR refer 4.2.3.5
NEW ̲VAL ̲ERROR ̲CODE ̲TABLE (m) refer 4.2.3.5
MHI ̲FLAG (m) refer 4.2.3.5
SEMANTIC RECORD (m) refer 4.2.3.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.3.4.10.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
Each field in a format can find its corresponding field
in a validation table. Going through the fields in
the validation table each format-field finds its syntax
validation procedure and it can set its semantic flags,
so that a semantic overview can be taken at the end
of the validation procedure of a format.
VALIDATION
VALIDATION LOOP
GET NEXT FIELD IN VALIDATION TABLE STARTING
WITH START ̲ADDR
SYNTAX LOOP
VALIDATION ̲REQ EQ FALSE?
CASE SYNTAX VALIDATION PROCEDURE OF:
CLASSIFICATION:
CASE CC OF
OK?
NOT ̲OK UPDATE NEW
̲VAL ̲ERROR ̲CODE ̲TABLE
END CASE
END CASE
VALIDATION ERROR? - BUILD NEW ̲VAL ̲ERROR
̲CODE TABLE
UPDATE SEMANTIC VALIDATION
CALCULATE STOP ADDRESS IN TABLE
CALCULATE NUMBER OF ITEMS
NO MORE EQUAL ITEMS EXIT SYNTAX LOOP
END SYNTAX LOOP
CALCULATE NEXT START ADDRESS
FINISH ̲ADDR? EXIT VALIDATION LOOP
END VALIDATION LOOP
END
Figure 4.2.3.4.10.1
4.2.3.4.11 D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲C̲O̲D̲E̲ ̲T̲A̲B̲L̲E̲
4.2.3.4.11.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
After this module the error codes will be displayed
in the margin area in front of the field in error and
the field will be invertet. If earlier an error code
have been displayed and the error has been corrected
in between the error code will have disappeared.
4.2.3.4.11.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) DISPLAY ̲ERROR ̲CODES
b) DISPLAY ̲ERROR ̲CODES (R6)
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.11.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
N/A
4.2.3.4.11.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 ̲IFCD refer 4.1.4
VALIDATION ̲COUNT refer 4.2.3.5
SEMANTIC ̲VAL ̲ERROR ̲CODE ̲TABLE refer 4.2.3.5
NEW ̲VAL ̲ERROR ̲CODE ̲TABLE refer 4.2.3.5
ERROR ̲LIST ̲TYPE refer 4.2.3.5
MHI ̲FLAG refer 4.2.3.5
MHI ̲COMPLETION refer 4.2.3.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR OLD ̲VAL ̲ERROR ̲CODE ̲TABLE,
MIX ̲VAL ̲ERROR ̲CODE ̲TABLE ARRAY (1.. MAX ̲ERRORS)
OF ERROR ̲LIST ̲TYPE
4.2.3.4.11.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
If it is first time validation there will be no old
validation table in the Mix ̲Val ̲Error ̲Code ̲Table. This
table is a mixture of th Old ̲Val ̲Error ̲Code ̲Table,
the New ̲Val ̲Table and the Semantic ̲Error ̲Code-Table.
They are ordered in line number.
DISPLAY ̲ERROR ̲CODE ̲TABLE
M̲I̲X̲ ̲V̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲C̲O̲D̲E̲ ̲T̲A̲B̲L̲E̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲1̲-̲2̲)̲
VALIDATION ̲COUNT EQ 1 ? D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲T̲A̲B̲L̲E̲
̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲1̲-̲3̲)̲
CASE CHANGE ̲FIELD ̲ATTR (FORMAT ̲IFIB,FIELD
̲TYPE,NON DISPLAY)
(CC):ERROR
̲OK
ERROR? CASE ANALYZE ̲ERROR (CC,1,VDU ̲SPLIT
̲FAILED):(L1)
L1? - SET VDU ̲FAILED = TRUE
MOVE SPLIT ̲FAILED
̲CC TO VDIA ̲CC ̲OP.CMD
SIGNAL ̲OPSEM (VUS
̲S2,VDIA ̲CC ̲OP):OK
END CASE
OK? D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲T̲A̲B̲L̲E̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲1̲-̲3̲)̲
END CASE
…01…Figure 4.2.3.4.11-1
MIX ̲VALIDATION ̲ERROR ̲CODE ̲TABLE
GET NEW ̲VAL ̲ERROR ̲CODE ̲TABLE
GET SEMANTIC ̲VAL ̲ERROR ̲CODE ̲TABLE
GET OLD ̲VAL ̲ERROR ̲CODE ̲TABLE
COMPARE LINE NO IN THE TREE TABLES ONE BY
ONE
LOOP
ONE WITH LOWEST LINE NO? - TAKE LINE NO
AND ERROR CODE
OLD ̲VAL ̲LINE EQ ONE OF THE OTHERS? - TAKE
OLD ̲VAL ̲ERROR ̲CODE
FORGET
THE
OTHERS
NEW ̲VAL ̲LINE EQ SEMANTIC ̲VAL ̲LINE? - TAKE
̲NEW ̲VAL ̲ERROR ̲CODE
FORGET
THE
OTHER
BUILD MIX ̲VALIDATION ̲ERROR ̲CODE ̲TABLE
TABLES END? - EXIT LOOP
END LOOP
END
Figure 4.2.3.4.11-2
BUILD FIELD AND BUFFER LIST (VDU ̲FIELD ̲ADD,ERROR
̲CODE)
CASE FIELDS ̲OUTPUT(FORMAT ̲IFCB,FIELD ̲LIST,BLE,NO,LENGTH)(CC):
ERROR
̲OK
ERROR? - ANALYZE ̲ERROR (CC,1,VDU ̲SPLIT
̲FAILED):(L1)
L1? SET VDU ̲FAILED=TRUE
MOVE SPLIT ̲FAILED
̲CC TO VDIA ̲CC ̲OP.CMD
SIGNAL ̲OPSEM (VUS
̲S2,VDIA ̲CC ̲OP):
OK
OK? CASE CHANGE ̲FIELD ̲ATA(FORMAT ̲IFCB,FIELDTYPE,
REVERSE ̲VIDIO)(CC):ERROR ̲OK
ERROR? - ANALYZE ̲ERROR(CC,1,VDU ̲SPLIT
̲FAILED):(L1)
L1? SET VDU ̲FAILED=TRUE
MOVE SPLIT ̲FAILED
̲CC TO VDIA ̲CC ̲OP.CMD
SIGNAL ̲OPSEM (VUS
̲S2,VDIA ̲CC.OP)
OK? - MHI ̲FLAG EQ FALSE?
MHI ̲COMPLETION EQ TRUE?
M̲E̲S̲S̲A̲G̲E̲ ̲H̲A̲N̲D̲L̲I̲N̲G̲ ̲I̲N̲S̲T̲R̲U̲C̲T̲I̲O̲N̲
̲(̲4̲.̲2̲.̲3̲.̲6̲.̲1̲)̲
END CASE
END CASE
Figure 4.2.3.4.11-3
4.2.3.4.12 S̲e̲m̲a̲n̲t̲i̲c̲ ̲V̲a̲l̲i̲d̲a̲t̲i̲o̲n̲ ̲o̲f̲ ̲F̲o̲r̲m̲a̲t̲s̲ ̲A̲ ̲a̲n̲d̲ ̲C̲
4.2.3.4.12.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
From the Validation Module, the semantic records are
updated with the incoming relevant data and their addresses
on the VDU.
The semantic validation will be performed and if any
errors occur, a semantic error-code table will be created.
4.2.3.4.12.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) SEMANTIC ̲VALIDATION
b) SEMANTIC ̲VALIDATION (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.12.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
N/A
4.2.3.4.12.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̲
SEMANTIC ̲RECORD refer 4.2.3.5
SEMANTIC ̲ERROR ̲CODE TABLE (m) refer 4.2.3.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.3.4.12.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
TBD
4.2.3.4.13 S̲e̲m̲a̲n̲t̲i̲c̲ ̲V̲a̲l̲i̲d̲a̲t̲i̲o̲n̲ ̲o̲f̲ ̲F̲o̲r̲m̲a̲t̲ ̲G̲
4.2.3.4.13.1 See 4.2.3.4.12.1
4.2.3.4.13.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) SEMANTIC ̲VALIDATION
b) SEMANTIC ̲VALIDATION (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
See 4.2.3.4.12.2
4.2.3.4.13.3 See 4.2.3.4.12.3
4.2.3.4.13.4 See 4.2.3.4.12.4
4.2.3.4.13.5 See 4.2.3.4.12.5
4.2.3.4.14 S̲e̲m̲a̲n̲t̲i̲c̲ ̲V̲a̲l̲i̲d̲a̲t̲i̲o̲n̲ ̲o̲f̲ ̲F̲o̲r̲m̲a̲t̲ ̲H̲
4.2.3.4.14.1 See 4.2.3.4.12.1
4.2.3.4.14.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
Semantic Validation
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
See 4.2.3.4.12.2
4.2.3.4.14.3 See 4.2.3.4.12.3
4.2.3.4.14.4 See 4.2.3.4.12.4
4.2.3.4.14.5 See 4.2.3.4.12.5
4.2.3.5 C̲o̲m̲m̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲D̲a̲t̲a̲
a) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
a1) The validation table is kept by the TMP package.
Each format that needs to be validated before
the storing on CIF has its own validation table.
VAR VALIDATION TABLE:
RECORD
LINE: INTEGER
INCARNATION: INTEGER
FIELD: INTEGER
PARAMETER SIZE: INTEGER
SYNTAX VALIDATION: VAR-NAME
SEMANTIC VALIDATION: INTEGER
ERROR ̲CODE: INTEGER
CIF FIELD NO: INTEGER
FLAG: BOOLEAN
START ̲ADD: INTEGER
STOP ̲ADD: INTEGER
NUMBER ̲(POINTER): INTEGER
END;
VALIDATION-TABLE
- The Validation key (line, incarnation, field) indicates
where to get some specified text in a format on
VDU.
- The parameter size tells how long each field is
in a format so that the input requests can get
an unbroken field.
- The syntax validation tells which validation to
perform.
- The semantic validation only tells which flag to
set in the semantic validation record.
- The error code tells which error-code to display
for errors in the syntax-validation.
- The CIF field no indicates in which field in a
CIF to store the VDU-field text.
- The flag is true if the following start addr is
flexible.
- Start addr is fix if the text or data shall be
stored in the administration field in the CIF or
is the first item in a field in the CIF. If the
flag is set, the storing addr in the CIF is the
previously Stop-addr.
- The Stop-addr is updated during the input from
the VDU, each time the same kind of item is received
from the VDU.
- Each time the same kind of items is detected, the
field in the administration field is incremented
by one.
a2) The format-display-tables of the TMP package are
kept. They are primarily used to display msg.
on CIF to VDU.
VAR FORMAT ̲DISPLAY ̲TABLE
RECORD
LINE INTEGER
INCARNATION INTEGER
FIELD ̲NO INTEGER
CIF ̲FIELD INTEGER
POINTER ADDR INTEGER
POINTER ̲COUNT INTEGER
VDU ̲FIELD ̲SIZE INTEGER
DISPLAY ̲MODIFICATION ̲
PROCEDURE VAR NAME
END;
b) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR: FORMAT ̲OUTPUT ̲PENDING,
MSG ̲OUTPUT ̲PENDING,
REQ ̲INPUT ̲PENDING,
MSG ̲INPUT ̲PENDING,
VALIDATION ̲REQ,
READ ̲END,
MHI ̲FLAG,
MHI ̲COMPLETION,
VDU ̲FAILED: BOOLEAN
FORMAT ̲DISPLAY ̲TABLE
- VDU field address indicates where in the format
to insert items stored on CIF.
- The CIF field tells in which CIF field the data
can be fetched.
- The administration field column contains pointers
to fields in the administration field of the CIF
where in the CIF data can be fetched and how many
of same kinds of data i.e. SCDs.
- VDU field size is the size of VDU fields.
- Display modifications are procedures to change
data to fit the format on VDU.
1b) The Beg-addr and End-addr is used to indicate the
content of the CIF buffers. They are used in the
reading process from CIF and the sending process
to the VDU.
VAR BEG ̲ADDR,END ̲ADDR: CIF ̲ADDRESS TYPE
TYPE CIF ̲ADDRESS = RECORD
CIF ̲ADDR: INTEGER
FIELD ̲NO: INTEGER
END;
2) The Start-addr and Finish-addr indicate the amount
of input data of the VDU which has been sent on
VDU-buffer.
VAR START ̲ADDR,FINISH ̲ADDR: VDU ̲ADDRESS
̲TYPE
TYPE VDU ̲ADDRESS = RECORD
LINE ̲NO: INTEGER
INCARNATION: INTEGER
FIELD ̲NO: INTEGER
END;
3b) Volume-array is used to the reading process from
CIF, it will indicate which of the fields need
to be fetched
VAR VOLUME ̲ARRAY ARRAY (1..10) OF BOOLEAN
4b) VDIA ̲CIF ̲Location is the data area where the CIF
buffer and the VDU buffer have data in TEP.
VAR VDIA ̲CIF ̲LOCATION ARRAY (1..256) OF INTEGER
VDIA ̲VDU ̲LOCATION: ARRAY (1..256) OF INTEGER
5b) VDIA ̲ADMINISTRATION ̲LOCATION is the data area where
the administration field of the CIF is saved in
TEP.
VAR VDIA ̲ADMINISTRATION ̲LOCATION (1.256) OF INTEGER
6b) The VDU ̲OP.IDENTIFIER ̲NAMES show which of the modules
have been sending same thing to the VDU.
TYPE VDU ̲CMD = (FORMAT ̲TO ̲VDU,
FIELDS ̲TO ̲VDU,
FIELDS ̲FROM ̲VDU,
LINES ̲INSERTED,
LINES ̲DELETED)
7b) Each time VDIA corresponds with the VDU ̲ID predefined
variable parameters are used.
VDIA ̲IO ̲PARAMETER = TBD
8b) VDIA corresponds with the M-MON package by predefined
variable parameters.
VAR ̲M ̲MON ̲PARAMETERS = TBD
9b) Both the semantic and the syntax validation procedures
make a val error-code table .
VAR NEW ̲VAL-̲ERROR ̲CODE ̲TABLE,
SEMANTIC ̲VAL ̲ERROR ̲CODE ̲TABLE ARRAY(1..MAX
̲ERRORS)
OF ERROR ̲LIST ̲TYPE
TYPE ERROR ̲LIST = RECORD
LINE: INTEGER
INCARNATION: INTEGER
FIELD ̲NO: INTEGER
ERROR ̲NO: INTEGER
END;
10b) Through the validation of a msg. coming from
VDU, some semantic flags will be set in the
Semantic record, which will be analyzed at
the end of the validation.
Semantic record
TBD.
4.2.3.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.3.6.1 M̲e̲s̲s̲a̲g̲e̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲ ̲I̲n̲s̲t̲r̲u̲c̲t̲i̲o̲n̲
4.2.3.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̲
When a user cannot remember the predefined message
handling instructions, he calls a table. It will appear
on the VDU after the text lines. If the validation
procedure has found some errors, they will appear on
the VDU at the same time as the MHI-Table.
4.2.3.6.1.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) MESSAGE ̲HANDLING ̲INSTRUCTION
b) MESSAGE ̲HANDLING ̲INSTRUCTION(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.6.1.3 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̲
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
FORMAT ̲IFCB refer 4.1.4
BUILD TMP RECORD refer 4.1.4
MHI ̲FLAG (m) refer 4.2.3.5
MHI ̲COMPLETION (m) refer 4.2.3.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
LINE: INTEGER
INCARNATION: INTEGER
FIELD: INTEGER
FIELD ̲LIST: ARRAY OF FIELD ̲DESCRIPTOR
̲TYPE
BLE: ARRAY OF BUFFER ̲LIST ̲ELEMENT
BYTE ̲LENGTH: INTEGER
4.2.3.6.1.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
MESSAGE HANDLING INSTRUCTION
CASE INSERT ̲LINES(FORMAT ̲IFCB,LINE NO,INCAR,LINES)(CC):
ERROR ̲OK
ERROR?-CASE ANALYZE ̲ERROR(CC, 1,VDU
̲SPLIT FAILED):(L1)
L1? MOVE SPLIT ̲FAILED ̲CC TO VDIA
̲CC ̲OP.CMD
END CASE
SET VDU ̲FAILED =TRUE
OK?- B̲U̲I̲L̲D̲ ̲T̲M̲P̲ ̲R̲E̲C̲O̲R̲D̲
CASE TMP ̲SEARCH (MHI ̲TABLE)(CC):ERROR
̲OK
ERROR? V̲U̲S̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
OK?
END CASE
INSERT IN FIELD AND BUFFER LIST
CASE FIELDS ̲OUTPUT (FORMAT ̲IFCB,LIST,BLE,NO,LENGTH)
(CC):ERROR
̲OK
ERROR? CASE ANALYZE ̲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
SET VDU ̲FAILED
= TRUE
END CASE
OK? SET MHI ̲FLAG = FALSE
SET MHI ̲COMPLETION
= TRUE
END CASE
END CASE
Fig. 4.2.3.6-1
4.2.3.7 S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
4.2.3.7.1 U̲F̲C̲O̲-̲V̲D̲I̲A̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
UFCO CMDs: (INITIALIZE ̲VDIA, RESTART ̲VDIA, CLOSE ̲DOWN,
CANCEL, CLEAR ̲VDU- SUSPEND, INPUT ̲FORMAT,
INPUT ̲MSG, INPUT ̲REQ, OUTPUT ̲FORMAT, OUTPUT
̲MSG, APPEND, INSERT ̲LINES, DELETE ̲LINES)
4.2.3.7.2 V̲D̲I̲A̲-̲U̲F̲C̲O̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
COMPLETION CODES: (STOP ̲CC, CLEAR ̲CC,
INSERT ̲NOT ̲ALLOWED ̲CC
LINES ̲INSERTED ̲CC, LINES
DELETED ̲CC, OUTPUT ̲FORMAT
̲CC, OUTPUT ̲MSG ̲CC, INPUT
̲REQ ̲CC, INPUT ̲MSG ̲CC, EXCEEDED
̲CC, VAL ̲ERROR ̲CODES ̲CC,
SPLIT ̲FAILED ̲CC)
REQUEST: COORDINATION
RELEASE
DEFER
APPEND
SEND