top - download
⟦3b690fdff⟧ Wang Wps File
Length: 46229 (0xb495)
Types: Wang Wps File
Notes: CPS/SDS/039
Names: »2171A «
Derivation
└─⟦83a6a53dc⟧ Bits:30006111 8" Wang WCS floppy, CR 0176A
└─ ⟦this⟧ »2171A «
WangText
…08……00……00……00……00…%…0a……00……00…%…0b…%…0e…%…02…% …11……08……11……0c……11……01……11… …11……07……10……0b……10……0e……10……01……10……05……0f……09……0f……0b……0f……0f……0f……02……0f……07……0e……0a……0e……0d……0e……00……0e…
…0e……06……0d……09……0d……0c……0d……00……0d… …0d……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.5.4.15 I̲N̲C̲L̲U̲D̲E̲ ̲I̲N̲ ̲I̲N̲T̲A̲ ̲M̲o̲d̲u̲l̲e̲
4.2.5.4.15.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The following function is contained in the module:
- Move data from INTA ̲REC to the Intermediate Buffer
area.
When the area gets full, or five changes has occured,
then the records are stored. If the complete Intermediate
File gets full, then the status records will be sorted
and written into the Outgoing File, Release File or
the Delivery File.
4.2.5.4.15.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) INCLUDE ̲INTA
b) INCLUDE ̲INTA (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.15.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
N/A.
4.2.5.4.15.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̲
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*TRACE
CPS ̲PREFIX.D*CPS ̲AMOS ̲CONF
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲e̲
FILE ̲DIR (m)
CURRENT ̲INTA ̲NO (m)
INT ̲CHANGES (m)
INTA ̲REC ̲NO (m)
INTA ̲REC
INT ̲AREA ̲ACB
FILE ̲DIR ̲ACB
BIG ̲BUF (m)
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
CONST
MAX ̲INT ̲CHANGES = 5
VAR
SAVELINK:INTEGER
4.2.5.4.15.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
The contents of INTA ̲REC ̲is included in the Preparation
File. If five changes has occurred, then the file
will be stored. If the current INTA area get full,
then the file will be stored too. If the complete
intermediate buffer gets full, then the status records
will be sorted and written in the Outgoing, Release,
and Delivery Files.
INCLUDE ̲IN ̲INTA
EQUIVALENCE(BIG ̲BUFFER(PREP ̲AREA ̲SIZE +1),
INT ̲AREA ̲BUF: INT ̲AREA ̲BUF ̲TYPE)
I̲N̲P̲U̲T̲ ̲C̲U̲R̲R̲E̲N̲T̲ ̲I̲N̲T̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲2̲)̲
INCREMENT INTA ̲REC ̲NO
INCREMENT INT ̲CHANGES
INT ̲AREA ̲BUF(INTA ̲REC ̲NO) = INTA ̲REC
INTA ̲REC.LTD ̲PREP GT NO ̲OF ̲VDUS?
INTA ̲REC.LTD ̲PREG LT 1?
INC FILE ̲DIR.TER ̲COUNT.(LTD).INTA
INTA ̲REC.LTD ̲RELS EQ 0?
INC FILE ̲DIR.TER ̲COUNT(LTD).INTA
INTA ̲REC ̲NO LT MAX ̲INT ̲AREA ̲BUF ̲RECS INT ̲CHANGES
LT 5?
S̲T̲O̲R̲E̲ ̲I̲N̲T̲ ̲A̲R̲E̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲0̲)̲ S̲T̲O̲R̲E̲ ̲I̲N̲T̲
̲A̲R̲E̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲0̲)̲
CURRENT ̲INTA ̲NO GE MAX ̲NO ̲OF ̲INTAS S̲O̲R̲T̲
̲I̲N̲T̲
̲A̲R̲E̲A̲
̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲6̲
INCREMENT CURRENT ̲INTA CURRENT
̲INTA ̲NO
= 1
INT ̲REC ̲NO = 0
LOOP
INTA ̲REC.LTD ̲RELS = 0
INTA ̲REC.LTD ̲PREP = 0
INCREMENT INT ̲AREA ̲BUF ̲RECS
INT ̲AREA ̲BUF ̲RECS EQ MAX ̲INT ̲AREA ̲BUF ̲RECS?
(EXIT LOOP
END LOOP
Fig. 4.2.5.4.15-1
4.2.5.4.16 S̲O̲R̲T̲ ̲I̲N̲T̲ ̲A̲R̲E̲A̲ ̲M̲o̲d̲u̲l̲e̲
4.2.5.4.16.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The task of this module is to sort the status records
which are stored in the Intermediate File. The search
keys used are an LTD and a status interval. The sorted
data will be stored in either the Release File, the
Outgoing File or the Delivery File.
4.2.5.4.16.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) SORT ̲INT ̲AREA
b) SORT ̲INT ̲AREA (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.16.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
a) S̲O̲R̲T̲ ̲I̲N̲T̲A̲
Records fulfilling the search criteria are searched
in BIG ̲BUF. Refer figure 4.2.5.4.16.3-1
b) F̲I̲L̲E̲ ̲F̲U̲L̲L̲ ̲R̲E̲P̲O̲R̲T̲
This procedure sets report text reference and time
into a buffer and calls upon procedure "SEND REPORT"
4.2.5.4.16.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*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 ̲REPORTS
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̲
UMAM ̲CMDQ
UMAM ̲FILE ̲ADDR (m)
FILE ̲START (m)
LITTLE ̲BUF (m)
SORT ̲COUNT (m)
DEST ̲BUF (m)
BIG ̲BUF
SEARCH ̲ONE (m)
SEARCH ̲TWO (m)
INT ̲CHANGES
CURRENT ̲INTA ̲NO (m)
INTA ̲REC ̲NO (m)
SEARCH ̲LTD (m)
FILE ̲DIR ̲ACB
RELE ̲START (m)
DELI ̲START (m)
OUTG ̲START (m)
FILE ̲DIR (m)
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR
MULT: LONG
SAVELINK
START ̲SAVE
INTA ̲START ̲PTR
LITTLE ̲BUF ̲PTR
SAVER6
QEL ̲SAVE: INTEGER
REP ̲DATA: REPORT ̲BUFFER ̲TYPE
INIT
REP ̲DATA.REPORT ̲DATA ̲FIELD = 21 x SPACE
4.2.5.4.16.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
The status records which fulfil the search parameters
(LTD, status interval) are moved from the source buffer
to the destination buffer and the data are reorganized.
When the destination buffer get full or the search
is completed, the content of the destination buffer
will be stored in the Delivery, Release or Outgoing
File.
SORT ̲INT ̲AREA
INT ̲CHANGES NE 0? S̲T̲O̲R̲E̲
̲I̲N̲T̲
̲A̲R̲E̲A̲
̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲0̲)
I̲N̲P̲U̲T̲ ̲C̲O̲M̲P̲L̲E̲T̲E̲ ̲I̲N̲T̲ ̲(̲I̲N̲T̲A̲ ̲S̲T̲A̲R̲T̲ ̲P̲T̲R̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲9̲)
SET SEARCH PARAMETRES FOR RELEASE STATUS
FILE ̲START = RELE ̲START
S̲O̲R̲T̲ ̲I̲N̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲6̲.̲3̲-̲1̲)̲
SET SEARCH PARAMETRES FOR OUTGOING STATUS
FILE ̲START = OUTG ̲START
S̲O̲R̲T̲ ̲I̲N̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲6̲.̲3̲-̲1̲)
SET SEARCH PARAMETRES FOR DELIVERY STATUS
FILE ̲START = DELI ̲START
LOOP
S̲O̲R̲T̲ ̲I̲N̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲6̲.̲3̲-̲1̲)
INCREMENT SEARCH ̲LTD
UNTIL SEARCH ̲LTD GT NO ̲OF ̲VDUS + NO ̲OF ̲SADS+1
S̲T̲O̲R̲E̲ ̲D̲I̲R̲ ̲(̲N̲E̲W̲ ̲D̲I̲R̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲8̲)
C̲L̲E̲A̲R̲ ̲B̲I̲G̲ ̲B̲U̲F̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲4̲)
R̲E̲S̲E̲T̲ ̲C̲O̲L̲L̲E̲C̲T̲ ̲A̲R̲E̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲4̲.̲6̲)̲
FIGURE 4.2.5.4.16-1
MOVE ̲RECORD
CASE DEST ̲BUF OF DEST ̲BUF ̲TYPE
RELE,
OUTG? EQUIVALENCE(LITTLE ̲BUF(1),REL ̲BUF: REL
̲BUF ̲TYPE)
MOVE INT ̲BUF(START ̲REC)TO REL ̲BUF(SORT
̲COUNT)
DELI? EQUIVALENCE (LITTLE ̲BUF(1), DELI ̲BUF:
DELI ̲BUF ̲TYPE)
MOVE INT ̲BUF (START ̲REC) TO DELI ̲BUF(SORT
̲COUNT)
END CASE
LTD GT MAX ̲NO ̲OF ̲VDU? INCREMENT FILE ̲DIR.DEV ̲INF(LTD)
DECREMENT FILE ̲DIR(LTD).TER ̲COUNT.INTA
CASE DEST ̲BUFFER OF DEST ̲BUF ̲TYPE
RELE? INCREMENT FILE ̲DIR(LTD).TER ̲COUNT.RELS
OUTG? INCREMENT FILE ̲DIR(LTD).TER ̲COUNT.OUTG
DELI? INCREMENT FILE ̲DIR(LTD).TER ̲COUNT.DELI
END CASE
SORT ̲COUNT NE MAX ̲SORT ̲REC? - INCREMENT SORT ̲COUNT
S̲T̲O̲R̲E̲ ̲D̲A̲T̲A̲ ̲I̲N̲ ̲F̲I̲L̲E̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲6̲-̲3̲)̲
SET SORT ̲COUNT = 0
Fig. 4.2.5.4.16-2
STORE ̲DATA ̲IN ̲FILE
UMAM ̲FILE ̲ADDR.FIRST ̲BYTE = FILE ̲START
UMAM ̲FILE ̲ADDR.BYTE ̲COUNT = SORT ̲COUNT*SIZE (DEST
̲BUF)
UMAM ̲BLE.ADDRESS = LITTLE ̲BUF(1)
UMAM ̲BLE.BYTE ̲SIZE = SORT ̲COUNT*SIZE(DEST ̲BUF)
CASE DEST ̲BUF OF ̲DEST ̲BUF ̲TYPE
RELE? UPDATE FILE ̲NAME AND FILE ̲START
OUTG? UPDATE FILE ̲NAME AND FILE ̲START
DELI? UPDATE FILE ̲NAME AND FILE ̲START
END CASE
CASE MODIFYBYTES(FILE ̲NAME,UMAM ̲FILE ̲ADDR,UMAM ̲BLE)
(UMAM ̲FILE ̲ADDR,CC): ERROR ̲OK
ERROR? CASE ANALYZE ̲ERROR(CC,FILE
̲FULL): EXIT ̲1 TO
F̲I̲L̲E̲ ̲F̲U̲L̲L̲
̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲6̲.̲3̲-̲2̲)
END CASE
OK?
END CASE
UPDATE FILE ̲START
Fig. 4.2.5.4.16-3
SORT INTA
EQUIVALENCE(BIG ̲BUFFER(1), INT ̲BUF: INT ̲AREA ̲TYPE)
SORT ̲COUNT = START ̲REC = 1
LOOP
GET INT ̲BUF(START ̲REC)
SEARCH ̲LTD EQ NULL?
SEARCH ̲LTD EQ LTD ̲PREP? M̲O̲V̲E̲ ̲R̲E̲C̲O̲R̲D̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲6̲-̲2̲)̲
INCREMENT START ̲REC
UNTIL START ̲REC GT TOTAL ̲NO ̲OF ̲INTA? (EXIT LOOP
END LOOP
SORT ̲COUNT EQ 0?
S̲T̲O̲R̲E̲ ̲D̲A̲T̲A̲ ̲I̲N̲ ̲F̲I̲L̲E̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲6̲-̲3̲)̲
Fig. 4.2.5.4.16.3-1
4.2.5.4.17 I̲N̲C̲L̲U̲D̲E̲ ̲I̲N̲ ̲P̲R̲E̲P̲ ̲M̲o̲d̲u̲l̲e̲
4.2.5.4.17.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The purpose of this module is to insert status records
in the Preparation File. If no empty record can be
found in the Preparation File, then the Expand File
is inspected. If the Expand File is full or nearly
full, a threshold warning will be sent to the Supervisor
Printer.
When the status record is included, the referenced
CIF will be made passive.
4.2.5.4.17.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) INCLUDE ̲IN ̲PREP
b) INCLUDE ̲IN ̲PREP (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.5.4.17.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
N/A
4.2.5.4.17.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*QUEUE ̲MON
CPS ̲PREFIX.D*MESSAGE ̲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)
FILE ̲DIR ̲ACB
BIG ̲BUF ̲CONTENTS
FILE ̲DIR (m)
BIG ̲BUF (m)
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR
SAVELINK
SAVEPTR : INTEGER
4.2.5.4.17.4 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
An empty PREP ̲REC is looked up in the Preparation or
Expand File.
The CIF is made passive and the view name is stored
in the Preparation/Expand File.
INCLUDE ̲IN ̲PREP
I̲N̲P̲U̲T̲ ̲P̲R̲E̲P̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲2̲)̲
C̲A̲S̲E̲ ̲L̲O̲O̲K̲U̲P̲ ̲E̲M̲P̲T̲Y̲ ̲P̲R̲E̲P̲ ̲R̲E̲C̲(̲P̲R̲E̲P̲ ̲R̲E̲C̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲6̲)̲:̲E̲R̲R̲O̲R̲
̲O̲K̲
ERROR? I̲N̲P̲U̲T̲ ̲E̲X̲P̲A̲N̲D̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲3̲)
CASE L̲O̲O̲K̲U̲P̲ ̲E̲M̲P̲T̲Y̲ ̲P̲R̲E̲P̲ ̲R̲E̲C̲(̲P̲R̲E̲P̲ ̲R̲E̲C̲)̲:̲E̲R̲R̲O̲R̲ ̲O̲K̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲6̲)̲
ERROR? T̲H̲R̲E̲S̲H̲O̲L̲D̲ ̲W̲A̲R̲N̲I̲N̲G̲(̲T̲H̲R̲E̲S̲ ̲1̲0̲0̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲5̲)
OK? I̲N̲C̲L̲U̲D̲E̲ ̲R̲E̲C̲O̲R̲D̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲7̲-̲2̲)̲
END CASE
OK? I̲N̲C̲L̲U̲D̲E̲ ̲R̲E̲C̲O̲R̲D̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲7̲-̲2̲)̲
END CASE
Fig. 4.2.5.4.17-1
INCLUDE ̲RECORD
EQUIVALENCE(UMAM ̲ATTR.HEADER.INF, OUTG ̲PARAM: OUTG
̲PARAM ̲TYPE)
U̲M̲A̲M̲ ̲L̲O̲C̲K̲ ̲C̲I̲F̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲9̲)
PREP ̲REC.NAME = UMAM ̲VIEW ̲ATTR.NAME
PREP ̲REC.LTD ̲PREP = OUTG ̲PARAM(LTD ̲PREP)
PREP ̲REC.STATUS = OUTG.PARAM.SCD ̲STA(STA)
PREP ̲REC.LTD ̲RELS = 0
PREP ̲REC.ORIG = OUT ̲PARAM.SCD ̲STA
PREP ̲REC MAINTYPE = UMAM ̲ATTR.HEADER.MAINTYPE
PREP ̲REC.REL ̲NO ̲ITEM ̲REF = 0
G̲E̲T̲ ̲T̲I̲M̲E̲ ̲(̲P̲R̲E̲P̲ ̲R̲E̲C̲.̲P̲R̲E̲P̲ ̲T̲I̲M̲E̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲3̲)
PREP ̲REC.RELS = 0
PREP ̲REC.COOR = 0
PREP ̲REC.STATUS EQ S ̲SENT ̲COOR? PREP ̲REC.COOR = TRUE
PREP ̲REC.STATUS EQ S ̲SENT ̲RELS? PREP ̲REC.RELS = TRUE
BIG ̲BUF ̲CONTENTS EQ PREP ̲CONTENTS?
INCREMENT FILE ̲DIR.TER ̲COUNT(LTD).PREP
S̲T̲O̲R̲E̲ ̲P̲R̲E̲P̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲8̲)
INCREMENT FILE ̲DIR.TER ̲COUNT(LTD).EXPAND
S̲T̲O̲R̲E̲ ̲E̲X̲P̲A̲N̲D̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲2̲4̲)̲
END
FIGURE 4.2.5.4.17-2
4.2.5.4.18 S̲O̲R̲T̲ ̲R̲E̲C̲O̲R̲D̲S̲ ̲M̲o̲d̲u̲l̲e̲
4.2.5.4.18.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The purpose of this module is to sort the data read
from the status files.
The records which fulfil the search criteria are moved
to a buffer area. When the buffer gets full then the
status records are stored in a CIF.
4.2.5.4.18.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) SORT RECORDS
b) SORT ̲RECORDS (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.18.3 ̲M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
a) C̲O̲M̲P̲A̲R̲E̲
This procedure compares: the LTD of register 0
with the LTD from the record, the maintype with
legal subtypes, and the status with STATUS ̲INFO.
SEARCH ̲
TWO.
4.2.5.4.18.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*QUEUE ̲MON
CPS ̲PREFIX.D*MESSAGE ̲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*QUEUE ̲GENERAL
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
CREATE ̲QEL
STATUS ̲INFO (m)
LITTLE ̲BUF (m)
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR
SAVER6
SAVELINK : INTEGER
CONST
MAX ̲DEST ̲SIZE =
MAX (SIZE (MSG ̲ABEY ̲TYPE), SIZE (REL ̲MSG ̲TYPE),
SIZE (DEL ̲STA ̲TYPE))
4.2.5.4.18.3 ̲M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
The status records read are sorted by this module.
Depending of the status type a data description is
impressed the source- and destination buffer area.
The reason for having two search keys are:
The ADM ̲FIELD.MSG ̲PREP shall contain the number of
messages prepared since midnight, i.e. messages retrievable
in either draft or released version. Records which
fulfil the search criteria are moved to the destination
buffer i.e. LITTLE ̲BUF. When the destination area gets
full the contents will be stored in the status-CIF.
SORT ̲RECORD
ADDR = ADDRESS (BIG ̲BUF)
LOOP
CASE STATUS ̲INFO.SOURCE ̲BUFFER OF
INT ̲REL ̲BUF,
INT ̲PREP ̲BUF?
EQUIVALENCE (ADDR, SORT ̲REC: INTA ̲REC ̲TYPE)
SOURCE ̲BUF EQ INT ̲REL ̲BUF? LTD = SORT ̲REC.LTD
̲RELS
LTD = SORT ̲REC.LTD ̲PREP
STATUS = SORT ̲REC.STATUS
MAINTYPE = SORT ̲REC.MAINTYPE
CASE C̲O̲M̲P̲A̲R̲E̲ ̲(̲L̲T̲D̲,̲ ̲S̲T̲A̲T̲U̲S̲,̲ ̲M̲A̲I̲N̲T̲Y̲P̲E̲)̲:̲ ̲E̲R̲R̲O̲R̲
̲O̲K̲
(4̲.̲2̲.̲5̲.̲4̲.̲1̲8̲.̲3̲-̲1̲)
ERROR?
OK? M̲O̲V̲E̲ ̲R̲E̲C̲O̲R̲D̲(̲A̲D̲D̲R̲)̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲8̲-̲5̲)
END CASE
ADDR + SIZE (INTA ̲REC ̲TYPE)
OTHERWISE? P̲R̲E̲P̲(̲-̲2̲)̲
END CASE
FIGURE 4.2.5.4.18-1
PREP
CASE STATUS ̲INFO.SOURCE ̲BUFFER
PREP ̲BUF?
EQUIVALENCE (ADDR, PREP ̲REC : PREP ̲REC ̲TYPE)
LTD = PREP ̲REC.LTD ̲PREP
STATUS = PREP ̲REC.STATUS
MAINTYPE = PREP ̲REC.MAINTYPE
CASE C̲O̲M̲P̲A̲R̲E̲(̲L̲T̲D̲,̲ ̲S̲T̲A̲T̲U̲S̲,̲ ̲M̲A̲I̲N̲T̲Y̲P̲E̲)̲ ̲:̲ ̲E̲R̲R̲O̲R̲
̲O̲K̲
(4̲.̲2̲.̲5̲.̲4̲.̲1̲8̲.̲3̲-̲1̲)̲
ERROR?
OK? M̲O̲V̲E̲ ̲R̲E̲C̲O̲R̲D̲(̲A̲D̲D̲R̲)̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲8̲-̲5̲)
END CASE
ADDR + SIZE (PREP ̲REC ̲TYPE)
OTHERWISE? R̲E̲L̲S̲ ̲D̲E̲L̲ ̲(̲-̲3̲)̲
ADDR GE ADDRESS(BIG ̲BUF) + STATUS ̲INFO.WORD ̲COUNT?
-
(EXIT LOOP
END LOOP
FIGURE 4.2.5.4.18-2
RELS ̲DEL
CASE STATUS ̲INFO.SOURCE ̲BUFFER OF
REL ̲BUF?
EQUIVALENCE (ADDR, SORT ̲REC : REC ̲STA ̲BUF)
LTD = SORT ̲REC.LTD
STATUS = SORT ̲REC.STATUS
MAINTYPE = SORT ̲REC.MAINTYPE
CASE C̲O̲M̲P̲A̲R̲E̲ ̲(̲L̲T̲D̲,̲ ̲S̲T̲A̲T̲U̲S̲,̲ ̲M̲A̲I̲N̲T̲Y̲P̲E̲)̲ ̲:̲
̲E̲R̲R̲O̲R̲ ̲O̲K̲
(4̲.̲2̲.̲5̲.̲4̲.̲1̲8̲.̲3̲-̲1̲)
ERROR?
OK? M̲O̲V̲E̲ ̲R̲E̲C̲O̲R̲D̲(̲A̲D̲D̲R̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲8̲-̲3̲)
END CASE
ADDR + SIZE(REL ̲STA ̲BUF)
OTHERWISE? D̲E̲L̲V̲ ̲(̲-̲4̲)̲
END CASE
FIGURE 4.2.5.4.18-3
DELV
CASE STATUS ̲INFO.SOURCE ̲BUFFER OF
DELV ̲BUF?
EQUIVALENCE (ADDR, SORT ̲REC : DEL ̲BUF ̲TYPE)
LTD = SORT ̲REC.LTD
STATUS = S ̲DELIVERY
MAINTYPE = 0
CASE C̲O̲M̲P̲A̲R̲E̲ ̲(̲L̲T̲D̲,̲ ̲S̲T̲A̲T̲U̲S̲,̲ ̲M̲A̲I̲N̲T̲Y̲P̲E̲)̲:̲ ̲E̲R̲R̲O̲R̲
̲O̲K̲
(4̲.̲2̲.̲5̲.̲4̲.̲1̲8̲.̲3̲-̲1̲)
ERROR?
OK? M̲O̲V̲E̲ ̲R̲E̲C̲O̲R̲D̲ ̲(̲A̲D̲D̲R̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲4̲.̲1̲8̲-̲3̲)̲
END CASE
ADDR + SIZE (DEL ̲BUF ̲TYPE)
OTHERWISE? - U̲I̲N̲T̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲0̲)̲
END CASE
FIGURE 4.2.5.4.18-4
MOVE ̲RECORD
CASE STATUS ̲INFO.SOURCE ̲BUFFER OF
INT ̲PREP ̲BUF,
INT ̲REC ̲BUF? - C̲O̲N̲V̲ ̲I̲N̲T̲ ̲ ̲(̲-̲6̲)̲
PREP ̲BUF? - C̲O̲N̲V̲ ̲P̲R̲E̲P̲ ̲(̲-̲8̲)̲
REC ̲BUF? - C̲O̲N̲V̲ ̲R̲E̲C̲S̲ ̲(̲-̲1̲0̲)̲
DELV ̲BUF? - C̲O̲N̲V̲ ̲D̲E̲L̲V̲ ̲(̲-̲1̲1̲)̲
END CASE
STATUS ̲INFO.LITTLE ̲BUF ̲PTR + DEST ̲SIZE
EQUIVALENCE (STATUS ̲INFO.IIF ̲FIELD ̲LIST ̲PTR, F ̲LIST:
FIELD ̲LIST
̲ELEMENT)
F ̲LIST.RECORD ̲LENGTH + (DEST ̲SIZE * 2)
LOOP ̲CONTROL = ADDRESS(LITTLE ̲BUF) + SIZE(LITTLE ̲BUF)-
MAX ̲DEST
̲SIZE
STATUS ̲INFO.LITTLE ̲BUF ̲PTR LT LOOP ̲CONTROL?
S̲T̲O̲R̲E̲ ̲S̲O̲R̲T̲E̲D̲ ̲D̲A̲T̲A̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲4̲)
END
FIGURE 4.2.5.4.18-5
CONV ̲INTA
CASE STATUS ̲INFO.DEST ̲BUFFER OF
RELE? EQUIVALENCE(ADDR, SOURCE ̲REC : INTA ̲REC ̲TYPE)
EQUIVALENCE(STATUS ̲INFO.LITTLE ̲BUF ̲PTR, DEST
̲REC:
REL ̲MSG
̲TYPE)
DEST ̲REC = SOURCE ̲REC.DATA
DEST ̲SIZE = SIZE(REL ̲MSG ̲TYPE)
DELV? EQUIVALENCE(ADDR, SOURCE ̲REC : INTA ̲REC ̲TYPE)
EQUIVALENCE(STATUS ̲INFO.LITTLE ̲BUF ̲PTR, DEST
̲REL:
DEL ̲STA
̲TYPE)
DEST ̲REC = SOURCE ̲REC.DATA
DEST ̲SIZE = SIZE(DEL ̲STA ̲TYPE)
OTHERWISE: C̲O̲N̲T̲ ̲C̲O̲N̲V̲ ̲I̲N̲T̲A̲ ̲(̲-̲7̲)̲
END CASE
FIGURE 4.2.5.4.18-6
CONT ̲CONV ̲INTA
CASE STATUS ̲INFO.DEST ̲BUFFER OF
ABEY? EQUIVALENCE(ADDR, SOURCE : INTA ̲REC ̲TYPE)
EQUIVALENCE(SOURCE.DATA, SOURCE ̲PTR : REL
̲MSG ̲TYPE)
EQUIVALENCE(STATUS ̲INFO.LITTLE ̲BUF ̲PTR, DEST
̲REC:
MSG ̲ABEY ̲TYPE)
DEST ̲REC.TIME = SOURCE ̲PTR.TIME
DEST ̲REC.ITEM ̲REF = SOURCE ̲PTR.CIF ̲REF
DEST ̲REC.ORIG = SOURCE ̲PTR.ORIG
DEST ̲SIZE = SIZE(MSG ̲ABEY ̲TYPE)
SVC? EQUIVALENCE(ADDR, SOURCE : INTA ̲REC ̲TYPE)
EQUIVALENCE(SOURCE.DATA, SOURCE ̲PTR : REL
̲MSG ̲TYPE)
EQUIVALENCE(STATUS ̲INFO.LITTLE ̲BUF ̲PTR, DEST
̲REL:
REL ̲MSG ̲TYPE)
DEST ̲REC.TIME = SOURCE ̲PTR.TIME
DEST ̲REC.ITEM ̲REF = SOURCE ̲PTR.CIF ̲REF
DEST ̲SIZE = SIZE (SVC ̲STA ̲TYPE)
OTHERWISE? U̲I̲N̲T̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲0̲)
END CASE
FIGURE 4.2.5.4.18-7
CONV ̲PREP
CASE STATUS ̲INFO.DEST ̲BUFFER OF
ABEY? EQUIVALENCE(ADDR, SOURCE ̲REC : PREP ̲REC ̲TYPE)
EQUIVALENCE(STATUS ̲INFO.LITTLE ̲BUF ̲PTR, DEST
̲REC : REL ̲
MSG ̲TYPE)
DEST ̲REC.TIME = SOURCE ̲REC.STATUS ̲TIME
DEST ̲REC.ITEM ̲REF = SOURCE ̲REC.NAME.CIF ̲ID.LEAST
DEST ̲REC.ORIG = SOURCE ̲REC.ORIG
DEST ̲SIZE = SIZE(MSG ̲ABEY ̲TYPE)
RELE? EQUIVALENCE(ADDR, SOURCE ̲REC : PREP ̲REC ̲TYPE)
EQUIVALENCE(STATUS ̲INFO.LITTLE ̲BUF ̲PTR : DEST
̲REC.
REL ̲MSG
̲TYPE)
DEST ̲REC.TIME = SOURCE ̲REC.STATUS ̲TIME
DEST ̲REC.CIF ̲REF = SOURCE ̲REC.NAME.CIF ̲ID.LEAST
DEST ̲REC.ORIG = SOURCE.REC.ORIG
DEST ̲REC.SSN = 0
DEST ̲REC.NOT ̲REF = SOURCE ̲REC.REL ̲NO ̲ITEM
̲REF
DEST ̲SIZE = SIZE (REL ̲MSG ̲TYPE)
OTHERWISE: C̲O̲N̲T̲ ̲C̲O̲N̲V̲ ̲P̲R̲E̲P̲ ̲(̲-̲9̲)̲
END CASE
FIGURE 4.2.5.4.18-8
SVC? EQUIVALENCE(ADDR, SOURCE ̲REC : PREP ̲REC ̲TYPE)
EQUIVALENCE(STATUS ̲INFO.LITTLE ̲BUF ̲PTR, DEST
̲BUF : REL ̲
MSG ̲TYPE)
DEST ̲REC.TIME = SOURCE ̲REC.STATUS ̲TIME
DEST ̲REC.CIF ̲REF = SOURCE ̲REC.NAME.CIF ̲ID.LEAST
DEST ̲SIZE = SIZE(REL ̲MSG ̲TYPE)
OTHERWISE: U̲I̲N̲T̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲0̲)
END CASE
FIGURE 4.2.5.4.18-9
CONV ̲RELS
CASE STATUS ̲INFO.DEST ̲BUFFER OF
RELE? EQUIVALENCE(ADDR, SOURCE ̲REC : REL ̲STA ̲BUF)
EQUIVALENCE(STATUS ̲INFO.LITTLE ̲BUF ̲PTR, DEST
̲BUF :
REL ̲MSG
̲TYPE)
DEST ̲REC = SOURCE ̲REC.DATA
DEST ̲SIZE = SIZE(REL ̲MSG ̲TYPE)
ABEY? EQUIVALENCE(ADDR, SOURCE ̲REC : REL ̲STA ̲BUF)
EQUIVALENCE(SOURCE ̲DATA, SOURCE ̲REC : REL
̲MSG ̲TYPE)
EQUIVALENCE(STATUS ̲INFO.LITTLE ̲BUF ̲PTR, DEST
̲REC :
MSG ̲ABEY
̲TYPE)
DEST ̲REC. TIME = SOURCE ̲REC.TIME
DEST ̲REC.ITEM ̲REF = SOURCE ̲REC.CIF ̲REF
DEST ̲REC.ORIG = SOURCE ̲REC.ORIG
DEST ̲SIZE = SIZE (MSG ̲ABEY ̲TYPE)
SVC? EQUIVALENCE(ADDR, SOURCE ̲REC : REL ̲STA ̲BUF)
EQUIVALENCE(SOURCE.DATA, SOURCE ̲PTR : REL
̲MSG ̲TYPE)
EQUIVALENCE(STATUS ̲INFO.LITTLE ̲BUF ̲PTR, DEST
̲REC : SVC ̲
STA ̲TYPE)
DEST ̲REC.TIME = SOURCE ̲REC.TIME
DEST ̲REC.ITEM ̲REF = SOURCE ̲REC.CIF ̲REF
DEST ̲SIZE = SIZE(SVC ̲STA ̲TYPE)
OTHERWISE: U̲I̲N̲T̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲0̲)
END CASE
FIGURE 4.2.5.4.18-10
CONV ̲DELV
EQUIVALENCE (ADDR, SOURCE ̲REC : DEL ̲BUF ̲TYPE)
EQUIVALENCE (STATUS ̲INFO.LITTLE ̲BUF ̲PTR, DEST ̲REC
: DEL ̲STA ̲TYPE)
DEST ̲REC = SOURCE ̲REC.DATA
DEST ̲SIZE = SIZE (DEL ̲STA ̲TYPE)
FIGURE 4.2.5.4.18-11
4.2.5.5 C̲o̲m̲m̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲D̲a̲t̲a̲
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*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*SSC ̲APP ̲CONF
UMAM ̲SCALAR.S
UMAM ̲PREFIX.S
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
NONE
c) C̲o̲m̲m̲o̲n̲ ̲D̲a̲t̲a̲
1) U̲M̲A̲M̲ ̲C̲O̲M̲M̲O̲N̲ ̲T̲Y̲P̲E̲S̲
DEL ̲BUF ̲TYPE = RECORD
LTD: LOGICAL ̲TERMINAL ̲NO ̲TYPE
DATA: DEL ̲STA ̲TYPE
END
REL ̲STA ̲BUF = RECORD
LTD: LOGICAL ̲TERMINAL ̲NO ̲TYPE
STATUS: STATUS ̲TYPE
MAINTYPE: INTEGER
DATA: REL ̲MSG ̲TYPE
END
STATUS ̲FILE ̲NAMES = (UMAM
̲ACCOUNT,
UMAM
̲OLD
̲ACCOUNT,
PREPARATION
̲AREA,
EXPAND
̲AREA,
COLLECT
̲AREA,
OUT
̲AREA,
OLD
̲OUT
̲
AREA,
RELEASE
̲AREA,
OLD
̲RELEASE
̲
AREA,
DELIVER
̲AREA,
OLD
̲DELIVER
̲
AREA)
P ̲FILE ̲TYPE = (PREP
̲F,
EXPAND
̲F)
DIR ̲TYPE = (NO
̲DIR,
OLD
̲DIR,
NEW
̲DIR)
REQ ̲STA ̲TYPE = (NORMAL,
MIDNIGHT)
MESS ̲TYP = (M
̲DUMMY,
M
̲MSG,
M
̲COM,
M
̲SVC)
REP ̲TYPE = (WARNING,
DELETION)
THRESHOLD ̲TYPE = (THRES
̲100,
THRES
̲90,
THRES
̲75)
SOURCE ̲BUF ̲TYPE = (INT
̲REL
̲BUF,
INT
̲PREP
̲BUF,
PREP
̲
BUF,
REL
̲BUF,
DELV
̲BUF)
DEST ̲BUF ̲TYPE = (RELE,
OUTG,
DELI,
ABEY,
SVC)
BUF ̲CONTENTS ̲TYPE = (NO
̲CONTENTS,
PREP
̲CONTENTS,
EXPAND,
INT)
U ̲EXIT = (LA1,
LA2,
LA3,
LA4,)
EXIT1 = LA1..LA1
EXIT2 = LA1..LA2
EXIT3 = LA1..LA3
UMAM ̲MODULE ̲ID = (UM0,UM1,UM2,UM3,UM4,UM5,UM6,UM7,
UM8,UM9,UM10,UM11,UM12,UM13,UM14,
UM15,UM16,UM17,UM18)
UMAM ̲PROCEDURE ̲ID = (UP0,UP1,UP2,UP3,UP4,UP5,UP6,UP7,
UP8,UP9,UP10,UP11,UP12,UP13,
UP14,UP15,UP16,UP17,UP18,UP19,UP20
UP21,UP22,UP23,UP24,UP25,UP26,
UP27,UP28,UP29,UP30,UP31,UP32,
UP33,UP34,UP35,UP36,UP37,UP38,
UP39,UP40,UP41,UP42,UP43,UP44,
UP45,UP46)
UMAM ̲ERROR ̲ID = (ERROR0,ERROR1,ERROR2,ERROR3)
EDIT ̲PARAMETRES = RECORD
ITEM ̲REF : ITEM ̲REF ̲ID ̲TYPE
LTD : LOGICAL ̲TERMINAL ̲NO ̲TYPE
ACC : ACCESS ̲PROFILE
END
DELETION ̲PARAMETRES = RECORD
ITEM ̲REF : ITEM ̲REF ̲ID ̲TYPE
LTD : LOGICAL ̲TERMINAL ̲NO ̲TYPE
TIME ̲STAMP : TIME ̲TYPE
END
SUPV ̲DELETION ̲PARAM = RECORD
ITEM ̲REF : ITEM ̲REF ̲ID ̲TYPE
WINDOW : COUNTER
TIME ̲STAMP : TIME ̲TYPE
END
APPEND ̲PARAM = RECORD
APP ̲ITEM ̲REF : ITEM ̲REF ̲ID ̲TYPE
LTD : LOGICAL ̲TERMINAL ̲NO ̲TYPE
END
VDU ̲PAGE ̲PARAM = RECORD
DISPLAY ̲NAME : ARRAY(1..8) OF CHAR DISPLAY
̲LENGTH = 8
ACC : ACCESS ̲PROFILE
END
APPEND ̲NOTI ̲PARAM = RECORD
APP ̲ITEM ̲REF : ITEM ̲REF ̲ID ̲TYPE
TIME ̲STAMP : TIME ̲TYPE
END
UMAM ̲LTD = (LTD ̲PREP, LTD ̲RELS)
PREP ̲RELS ̲LTD = ARRAY (UMAM ̲LTD) OF CHAR
SCD ̲STA ̲TYPE = (SCD1, SCD2, SCD3, STA)
STATUS ̲SCD ̲STA = ARRAY (SCD ̲STA ̲TYPE) OF CHAR
OUTG ̲PARAM ̲TYPE = RECORD
LTD : PREP ̲RELS ̲LTD
SCD ̲STA : STATUS ̲SCD ̲STA
REL ̲NO ̲ITEM ̲REF : ITEM ̲REF ̲ID ̲TYPE" FOR
SVC =ITEM ̲REF OF CIF
END
REL ̲BUF ̲TYPE = RECORD
LTD : PREP ̲RELS ̲LTD
SCD ̲STA : STATUS ̲SCD ̲STA
REL ̲NO ̲ITEM ̲REF : ITEM ̲REF ̲ID ̲TYPE
ITEM ̲REF : ITEM ̲REF ̲ID ̲TYPE
REL ̲SER ̲NO : STATION ̲SERIAL ̲NO ̲TYPE
END
UMAM ̲ACKNOWLEDGE = RECORD
SUPERVISOR ̲COMMAND : QEL ̲SUBTYPE
TIME ̲STAMP : TIME ̲TYPE
LTD : LOGICAL ̲TERMINAL ̲NO ̲TYPE
END
UMAM ̲COUNTER = INTEGER
TER ̲COUNT = RECORD
PREP,
EXPAND,
INTA,
OUTG,
RELS,
DELI : UMAM ̲COUNTER
END
TER ̲INF ̲TYPE = ARRAY (1..NO ̲OF ̲VDUS) OF TER ̲COUNT
DEV ̲INF ̲TYPE = ARRAY(1..NO ̲OF ̲SADS) OF UMAM ̲COUNTER
FILE ̲DIR ̲TYPE = RECORD
START ̲TIME : TIME ̲TYPE
NEXT ̲LTD : LOGICAL ̲DESIGNATOR ̲TYPE
TER ̲INF : TER ̲INF ̲TYPE
DEV ̲INF : DEV ̲INF ̲TYPE
END
PREP ̲REC ̲TYPE = RECORD
LTD ̲PREP : LOGICAL ̲TERMINAL ̲NO ̲TYPE
STATUS : STATUS ̲TYPE
MAINTYPE : INTEGER
ORIG : SCD ̲TYPE
COOR : NO ̲YES
RELS : NO ̲YES
STATUS ̲TIME : TIME ̲TYPE
PREP ̲TIME : TIME ̲TYPE
NAME : VIEW ̲NAME
REL ̲NO ̲ITEM ̲REF : INTEGER
DUMMY : INTEGER
END
STATUS ̲ATTRIBUTES = RECORD
LTD
FIRST ̲STATUS ̲COUNT,
LAST ̲STATUS ̲COUNT,
FDCB,
FILE ̲COUNT,
FILE ̲EMPTY,
SEARCH ̲ONE,
SEARCH ̲TWO,
IIF ̲FIELD ̲LIST ̲PTR,
IIF ̲ADM ̲COUNT ̲PTR,
LITTLE ̲BUF ̲PTR,
SOURCE ̲BUFFER,
DEST ̲BUFFER,
SUBTYPE,
WORD ̲COUNT : INTEGER
MESS ̲TYPE : MESS ̲TYP
STATUS ̲TYPE : REQ ̲STA ̲TYPE
END ̲FILE ̲PT : INTEGER
END
INTA ̲REC ̲TYPE = RECORD
LTD ̲PREP:LOGICAL ̲TERMINAL ̲NO ̲TYPE
LTD ̲RELS:LOGICAL ̲TERMINAL ̲NO ̲TYPE
STATUS :STATUS ̲TYPE
MAINTYPE:INTEGER
TIME :TIME ̲TYPE
DATA :ARRAY(1..10) OF INTEGER REL ̲MSG ̲TYPE
OR DEL ̲STA ̲TYPE
END
INT ̲AREA ̲BUF ̲TYPE=ARRAY(1..MAX ̲INT ̲AREA ̲BUF ̲RECS)OF
INTA ̲REC ̲TYPE
UMAM ̲SUBQUEUE = (U
̲MAINQ,U
̲REQUESTQ,U
̲PREPQ,U
̲VDU
̲PAGEQ,
U
̲STATUS
̲REQQ,U
̲DELIVERYQ,U
̲APPENDQ)
UMAM ̲RESP = (EDIT
̲RESP,DELETE
̲RESP,VDU
̲RETR
̲RESP)
EDIT ̲ANS = (E
̲OKAY,E
̲NOT
̲AVAIB,E
̲SEC
̲PROFILE,
E
̲NOT
̲FOUND,E
̲APP
̲COMP,E
̲APP
̲NOT
̲COMP,
E
̲ILL
̲REQUEST
̲TYPE,E
̲APP
̲ABNORM,E
̲VDUP
̲
NO
̲CIF)
DELETE ̲ANS = (D
̲NOT
̲FOUND,D
̲DELETED,D
̲AWAITING
̲APPEND,
D
̲APPEND
̲COMP,D
̲AWAITING
̲RELEASE,D
̲SEC
̲
PROFILE)
RETR ̲ANS = (R
̲NOT
̲FOUND,R
̲SEC
̲PROFILE,R
̲VDUP
̲NO
̲CIF)
EDIT ̲REQ ̲TYPE = (E
̲DUMMY,E
̲MESSAGE,E
̲COMMENT,E
̲VDU
̲PAGE
̲
PAGE
̲PREP,E
̲VDU
̲PAGE
̲CONT,E
̲SC
̲COMMENT,
E
̲PLAIN
̲SVC,E
̲ABB
̲SVC,E
̲ABB
̲PLAIN
̲SVC)
STATUS ̲IDENT ̲TYPE = (OUTGOING
̲ID,RELEASE
̲ID,DELIVERY
̲ID,
SERVICE
̲ID,PERIODIC
̲ID)
STATUS ̲STATE ̲TYPE = (FIRST
̲FINAL,FIRST
̲NOTFINAL,NOTFIRST
̲
FINAL,NOTFIRST
̲NOTFINAL)
DELETE ̲REQ ̲TYPE = (USER
̲DEL,SUPV
̲SVC,MDCO
̲SVC,MSO
̲SVC,
SUPV
̲SPECIFIED
̲CIF)
STATUS ̲TYPE = (S.DELIVERY,S
̲DUMMY,S
̲SENT,S
̲RELEASED,
S
̲REJECTED
̲RELEASE,
S
̲DEFERRED
̲RELEASE,
S
̲SENT
̲RELS,S
̲SENT
̲COOR,S
̲DEFERRED,S
̲
DELETED,S
̲SUSP
̲CONT,S
̲SUSP
̲DRAFT,S
̲
APPEND
̲ABANDON,S
̲AWAITING
̲APP
̲CONT,
S
̲AWAITING
̲APP
̲DRAFT,S
̲APP
̲COMPLETE,
S
̲APP
̲ABNORMALLY)
DISPLAY ̲LIST ̲TYPE = RECORD
INFO : UMAM ̲COUNTER
LINK : POINTER
KEY : ARRAY (1..DISPLAY ̲LENGTH) OF CHAR
END
PROFILE ̲LIST ̲TYPE = RECORD
INFO : UMAM ̲COUNTER
LINK : POINTER
KEY : LOGICAL ̲DESIGNATOR ̲TYPE
END
UMAM ̲FDCB ̲TYPE = ARRAY(STATUS ̲FILE ̲NAMES) OF FDCB
̲INDEX
UMAM ̲FILE ̲TYPE = ARRAY(STATUS ̲FILE ̲NAMES) OF FILE
̲NAME
BIG ̲BUF ̲TYPE = ARRAY(1..PREP ̲FILE ̲LENGTH ̲W+INTA
̲LENGTH ̲W) OF
INTEGER
LITTLE ̲BUF ̲TYPE = ARRAY(1..LITTLE ̲BUF ̲LENGTH ̲W)
OF INTEGER
U ̲FIELD ̲LIST = RECORD
NO ̲OF ̲ELEMENTS : NO ̲OF ̲FIELDS
ELEMENTS : FIELD
̲LIST
̲ELEMENT
END
STA ̲CIF ̲FIELD ̲LIST ̲TYPE = RECORD
NO ̲OF ̲ELEMENTS : INTEGER"INIT = 8
ELEMENTS : ARRAY(1..NO
̲OF
̲EL)
OF
FIELD
̲LIST
̲
ELEMENT
END
2) U̲M̲A̲M̲ ̲C̲O̲M̲M̲O̲N̲ ̲C̲O̲N̲S̲T̲A̲N̲T̲S̲
PREP ̲FILE ̲LENGTH ̲W = 4096
EXPAND ̲FILE ̲LENGTH ̲W = 4096
PREP ̲FILE ̲LENGTH ̲B = 4096*2
EXPAND ̲FILE ̲LENGTH ̲B = 4096*2
RELS ̲FILE ̲LENGTH = 4096*2
OUTG ̲FILE ̲LENGTH ̲B = 4096*2
INTA ̲FILE ̲LENGTH ̲B = 4096*2
LITTLE ̲BUF ̲LENGTH ̲W 512
INTA ̲LENGTH ̲W = 256
INTA ̲LENGTH ̲B = 256*2
UMAM ̲DIR ̲LENGTH ̲B = SIZE(FILE ̲DIR ̲TYPE)*2
MAX ̲ADM ̲COUNT = 10
MAX ̲REL ̲REC = 32
MAX ̲DEL ̲REC = 32
MAX ̲OUT ̲REC = 32
MAX ̲NO ̲OF ̲INTAS = 16
MAX ̲INT ̲AREA ̲BUF ̲RECS = 16
MAX ̲NO ̲OF ̲INTA ̲REC = MAX ̲NO ̲OF ̲INTAS*MAX
̲INT ̲AREA ̲
BUF ̲RECS
MAX ̲SORT ̲REC = 32
DISPLAY ̲LENGTH = 8
UMAM ̲SUB = 5
RESET ̲THR ̲75 = 170
RESET ̲THR ̲90 = 215
NO ̲OF ̲EL = 8
SECOND ̲RELS = BIT ̲0
SECOND ̲COOR = BIT ̲1
3) U̲M̲A̲M̲ ̲C̲O̲M̲M̲O̲N̲ ̲V̲A̲R̲I̲A̲B̲L̲E̲S̲
CREATE ̲QEL,
QEL1 : QEL ̲REFERENCE
FILE ̲DIR : FILE ̲DIR ̲TYPE
UMAM ̲PARAMS : SEND ̲PARAMS
UMAM ̲ATTR : QEL ̲ATTRIBUTES
STATUS ̲INFO : STATUS ̲ATTRIBUTES
UMAM ̲VIEW ̲NAME : VIEW ̲NAME
UMAM ̲TIME : TIME ̲TYPE
DISPLAY ̲KEY ̲LIST : DISPLAY ̲LIST ̲TYPE
PROFILE ̲KEY ̲LIST : PROFILE ̲LIST ̲TYPE
DISPLAY ̲PARAM : VIEW ̲NAME
CURRENT ̲DIR : DIR ̲TYPE
UMAM ̲FDCB : UMAM ̲FDCB ̲TYPE
UMAM ̲FILE ̲ADDR : FILE ̲ADDRESS
UMAM ̲BLE : BUFFER ̲LIST ̲ELEMENT
SEARCH ̲LTD : LOGICAL ̲DESIGNATOR ̲TYPE
cont.
SEARCH ̲ONE,
SEARCH ̲TWO,
OLD ̲REST,
NEW ̲REST,
SORT ̲COUNT,
TRANS ̲COUNT,
NO ̲OF ̲INTA ̲REC,
INT ̲CHANGES,
CURRENT ̲INTA ̲NO,
INTA ̲REC ̲NO,
EXPAND ̲NO : UMAM ̲COUNTER
PREP ̲REC : POINTER
INTA ̲CONTENTS
BIG ̲BUF ̲CONTENTS : BUF ̲CONTENTS ̲TYPE
STA ̲ITEM : INTEGER
INT ̲ERROR : GARBLE ̲PARAMS
UMAM ̲STOP : BOOLEAN
THR ̲75
THR ̲90 : BOOLEAN
INT ̲AREA ̲ACB,
STATUS ̲ACB,
FILE ̲DIR ̲ACB : ARRAY ̲CONTROL ̲BLOCK
INTA ̲REC : INTA ̲REC ̲TYPE
FILE ̲START,
OLD ̲OUTG ̲START,
OLD ̲RELE ̲START,
OLD ̲DELI ̲START,
OUTG ̲START,
RELE ̲START,
DELI ̲START : LONG
DEST ̲BUF : DEST ̲BUF ̲TYPE
IMF ̲MAINTYPE : INTEGER
IMF ̲ORIG ̲SCD : SCD ̲TYPE
UMAM ̲DIR ̲FDCB : FDCB ̲INDEX
UMAM ̲VIEW ̲ATTR : VIEW ̲ATTRIBUTES
UMAM ̲FILE ̲NAME ̲PT : ARRAY(STATUS ̲FILE ̲NAMES) OF POINTER
CC ̲SAVE : ARRAY(1..8) OF INTEGER
UCIF ̲LIST : U ̲FIELD ̲LIST
STA ̲CIF ̲FIELD ̲LIST : STA ̲CIF ̲FIELD ̲LIST ̲TYPE
UMAM ̲FILES : UMAM ̲FILE ̲TYPE
REPORT ̲QUEUE,
STATISTICS ̲QUEUE,
MDCO ̲QUEUE,
SEND ̲QUEUE,
UMAM ̲COLQ,
UMAM ̲CMDQ : QUEUE ̲REFERENCE
LITTLE ̲BUF : LITTLE ̲BUF ̲TYPE
BIG ̲BUF : BIG ̲BUF ̲TYPE
4.2.5.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.5.6.1 U̲M̲A̲M̲ ̲Q̲E̲L̲ ̲D̲I̲S̲M̲A̲N̲T̲L̲E
4.2.5.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̲
The purpose of this procedure is to dismantle an object
referenced by a QEL.
The referenced view will be checkpointed if the CHECKPOINT
STATUS is true.
The referenced QEL with be set to NIL.
4.2.5.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) UMAM ̲DISMANTLE (QEL: QEL ̲REFERENCE ̲TYPE
CP ̲STATUS: BOOLEAN
OBJECT: OBJECT ̲TYPE)
b) UMAM ̲DISMANTLE (R2,R4,R5,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̲
R2 pointer to QEL (DEST)
R4 CP ̲STATUS (DEST)
R5 OBJECT (DEST)
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.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̲
OBJECT ̲TYPE
QEL ̲REFERENCE
USER ̲ACTION ̲TYPE
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
None
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR
SAVELINK
QEL ̲SAVE: INTEGER
4.2.5.6.1.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
Refer figure 4.2.5.6.1-1
UMAM ̲QEL ̲DISMANTLE
QEL EQ NIL?
CASE OBJECT OF OBJECT ̲TYPE
TIMER,
QEL? DISMANTLE (QEL) (CC): OK
BUFFER? CASE DISMANTLE ̲BUFFER (QEL) (CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR (CC,0)
OK?
END CASE
VIEW?-CP ̲STATUS EQ FALSE?-U̲M̲A̲M̲ ̲C̲I̲F̲ ̲D̲I̲S̲M̲A̲N̲T̲L̲E̲(̲-̲2̲)̲
CASE SAVE ̲VIEW (DISMANTLE, QEL (CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR(CC,0)
OK?
END CASE
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.6.1-1
UMAM CIF DISMANTLE (CREATE QEL)
CASE DISMANTLE ̲VIEW(QEL) (CC) : ERROR ̲OK
ERROR? ANALYZE ̲ERROR(CC, 0)
OK?
END CASE
Fig. 4.2.5.6.1-2
4.2.5.6.2 V̲D̲U̲ ̲P̲A̲G̲E̲ ̲L̲O̲O̲K̲U̲P̲
4.2.5.6.2.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The purpose of this procedure is to "retrieve" a VDU-page.
If the requested VDU-page can be found, then the procedure
will use the OK EXIT otherwise the ERROR EXIT is used.
4.2.5.6.2.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) VDU ̲PAGE ̲LOOKUP (BUFFER : NO ̲YES)
(VIEW ̲NAME : VIEW ̲NAME ̲TYPE)
ERROR ̲OK
b) VDU ̲PAGE ̲LOOKUP (R0, R1, R6) : ERROR ̲OK
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 BUFFER (DEST)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 pointer to VIEW ̲NAME
R0, R2-R7 (DEST)
4.2.5.6.2.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̲
DISPLAY ̲TABLE
DISP ̲NAME ̲TYPE
VIEW ̲NAME ̲TYPE
VDU ̲PAGE ̲PARAM
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
DISPLAY ̲KEY ̲LIST (m)
QEL1
LITTLE ̲BUF (m)
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR
SAVELINK : INTEGER
DISPLAY ̲REQUEST ̲PARAM : TMP ̲PARAM
CONST
DISP ̲MASK = 2
DISP ̲COUNT = 1
VDU ̲PAGE ̲OFFSET = 1
INIT
DISPLAY ̲REQUEST ̲PARAM.TABLE ̲ID = DISPLAY ̲TABLE
DISPLAY ̲REQUEST ̲PARAM.COUNT = DISP ̲COUNT
DISPLAY ̲REQUEST ̲PARAM.BUFFER2 = ADDRESS(DISPLAY
̲PARAM)
DISPLAY ̲REQUEST ̲PARAM.BUFFER2
LENGTH = SIZE(DISPLAY ̲PARAM)
DISPLAY ̲REQUEST ̲PARAM.MASK2 = DISP ̲MASK
DISPLAY ̲REQUEST ̲PARAM.MASK1 = DISP ̲MASK
DISPLAY ̲REQUEST ̲PARAM.ENTRY = ADDRESS(DISPLAY
̲KEY ̲
LIST.KEY)
4.2.5.6.2.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
Refer figure 4.2.5.6.2-1
VDU ̲PAGE ̲LOOKUP
EQUIVALENCE(LITTLE ̲BUF(1), DISP ̲NAME: VDU ̲PAGE ̲PARAM)
BUFFER EQ NO?
CASE READ ̲BUFFER(QEL1, SIZE (VDU ̲PAGE ̲PARAM),
VDU ̲PAGE ̲OFFSET)
(SIZE, CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR (CC,0)
OK?
END CASE
DISPLAY ̲KEY ̲LIST.KEY = DISP ̲NAME.DISPLAY ̲NAME
DISPLAY ̲KEY ̲LIST.INFO = NULL
DISPLAY ̲KEY ̲LIST.LINK = NIL
CASE SEARCH ̲PRIMARY ̲KEY (DISPLAY ̲TABLE,DISPLAY ̲KEY ̲LIST,
DISP ̲COUNT,SIZE(DISPLAY ̲PARAM),
DISP ̲READ ̲MASK)
(DISPLAY ̲PARAM,CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR(CC,0)
OK?
END CASE
DISPLAY ̲KEY ̲LIST.INFO EQ NULL? RETURN (ERROR)
VIEW ̲NAME = DISPLAY ̲PARAM.VIEW ̲NAME
RETURN (OK)
Fig. 4.2.5.6.2-1
4.2.5.6.3 S̲E̲N̲D̲ ̲I̲T̲E̲M̲
4.2.5.6.3.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
A generated CIF is sent to the requestor and the view
is dismantled.
4.2.5.6.3.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) SEND ̲ITEM (INFORMATION : INTEGER
MAINTYPE : QELEMENT ̲MAINTYPE
SUBTYPE : MESSAGE ̲SUBTYPE
CP ̲STATUS : BOOLEAN
OBJECT : OBJECT ̲TYPE)
b) SEND ̲ITEM (R0, R2, R3, R4,R5,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 QEL ̲INFORMATION (DEST)
R2 MAINTYPE (DEST)
R3 SUBTYPE (DEST)
R4 CP ̲STATUS (DEST)
R5 OBJECT (DEST)
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.6.3.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̲
SEND ̲PARAMS
USER ̲ACTION ̲TYPE
QELEMENT ̲MAIN ̲TYPE
QEL ̲REFERENCE
OBJECT ̲TYPE
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
UMAM ̲PARAMS (m)
CREATE ̲QEL
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR
SAVELINK : INTEGER
U ̲OBJECT : OBJECT ̲TYPE
4.2.5.6.3.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
Refer figure 4.2.5.6.3-1
SEND ̲ITEM
UMAM ̲PARAMS.INF = INFORMATION
U ̲OBJECT = OBJECT
UMAM ̲PARAMS.MAINTYPE = MAINTYPE
UMAM ̲PARAMS.SUBTYPE = SUBTYPE
UMAM ̲PARAMS.PROFILE = NULL
UMAM ̲PARAMS.INFORMATION ̲TYPE = FALSE
UMAM ̲PARAMS.FLAG = CAMPS ̲ORIG
CASE SEND ̲REPLY(UMAM ̲PARAMS,CREATE ̲QEL, QEL1)
(UMAM ̲PARAMS,CC) : ERROR ̲OK
ERROR?-CASE ANALYZE ̲ERROR(CC,2,QEL ̲PROFILE ̲CHECK,BLOCKED
̲QUEUE)
(LA1,LA2)
LA1?
LA2? U̲Q̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
OK?
END CASE
U̲M̲A̲M̲ ̲Q̲E̲L̲ ̲D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲(̲C̲R̲E̲A̲T̲E̲ ̲Q̲E̲L̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲)̲
Fig. 4.2.5.6.3-1
4.2.5.6.4 S̲E̲N̲D̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲
4.2.5.6.4.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The purpose of this procedure is to send a response
QEL.
4.2.5.6.4.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) SEND ̲RESPONSE (RESPONSE : UMAM ̲RESP
COMPLETION: UMAM ̲ANSWER)
b) SEND ̲RESPONSE (R0, R1, 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 RESPONSE (DEST)
R1 COMPLETION ̲CODE (DEST)
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.6.4.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̲
SEND ̲PARAMS
QELEMENT ̲MAINTYPE
TEP ̲INTERNAL ̲SUBTYPE
UMAM ̲RESP
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
UMAM ̲PARAMS (m)
QEL1
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲ ̲
VAR
SAVELINK : INTEGER
4.2.5.6.4.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
Refer figure 4.2.5.6.4-1
SEND ̲RESPONSE
UMAM ̲PARAMS.MAINTYPE = TEP ̲INTERNAL
UMAM ̲PARAMS.SUBTYPE = UMAM ̲ERROR ̲RESPONSE
UMAM ̲PARAMS.FLAG = RESPONSE
UMAM ̲PARAMS.INF = COMPLETION ̲CODE
CASE SEND ̲REPLY (UMAM ̲PARAMS,NIL,QEL1)
(UMAM ̲PARAMS,CC) : ERROR ̲OK
ERROR? CASE ANALYZE ̲ERROR(CC,2,QEL ̲PROFILE ̲CHECK,
BLOCKED ̲QUEUE) : (LA3,LA4)
LA3
LA4? U̲Q̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
OK?
END CASE
Fig. 4.2.5.6.4-1
4.2.5.6.5 C̲R̲E̲A̲T̲E̲ ̲O̲P̲E̲N̲ ̲S̲T̲A̲T̲U̲S̲ ̲C̲I̲F̲
4.2.5.6.5.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The following functions are included in this procedure:
- status CIF creation
- status CIF opening.
4.2.5.6.5.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) CREATE ̲OPEN ̲STATUS ̲CIF
b) CREATE ̲OPEN ̲STATUS ̲CIF (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.5.6.5.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̲
VIEW ̲ATTRIBUTES ̲TYPE
VIEW ̲REFERENCE ̲TYPE
MAX ̲NO ̲FIELDS
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
UMAM ̲CMDQ
CREATE ̲QEL (m)
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR:
STA ̲CREATE ̲ATTR: VIEW ̲ATTRIBUTES
SAVERG : INTEGER
CONST:
STATUS ̲PROFILE = UNCLASSIFIED
STA ̲FIELD ̲LENGTH = 52
4.2.5.6.5.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
Refer figure 4.2.5.6.5-1
CREATE ̲OPEN ̲STATUS ̲CIF
CASE CREATE ̲CIF(STA ̲CREATE ̲ATTR, UMAM ̲CMDQ)
(CREATE ̲QEL, CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR(CC, 0)
OK? CASE OPEN ̲VIEW (CREATE ̲QEL)(CC): ERROR
̲OK
ERROR? ANALYZE ̲ERROR(CC, 0)
OK?
END CASE
END CASE
Fig. 4.2.5.6.5-2
4.2.5.6.6 C̲L̲O̲S̲E̲/̲S̲E̲N̲D̲ ̲R̲E̲P̲L̲Y̲
4.2.5.6.6.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The following functions are executed:
- close status CIF
- send CIF to requestor
4.2.5.6.6.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) CLOSE ̲SEND ̲REPLY
b) CLOSE ̲SEND ̲REPLY(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.6.6.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̲
QEL ̲REFERENCE
OBJECT ̲TYPE
SEND ̲PARAMAS ̲TYPE
QELEMENT ̲MAIN ̲TYPE
STATUS ̲SUBTYPE
USER ̲ACTION ̲TYPE
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
UMAM ̲COLQ (m)
UMAM ̲PARAMS (m)
CREATE ̲QEL
QEL1
STATISTIC ̲QUEUE
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR
SAVER6 : INTEGER
4.2.5.6.6.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
Refer figure 4.2.5.6.6-1
CLOSE ̲SEND ̲REPLY
CASE CLOSE ̲VIEW (CREATE ̲QEL) (CC) : ERROR
̲OK
ERROR? ANALYZE ̲ERROR (CC,0)
OK?
END CASE
UMAM ̲PARAMS.MAINTYPE = STATUS
UMAM ̲PARAMS.SUBTYPE = STATUS ̲INFO.SUBTYPE
UMAM ̲PARAMS.PROFILE = 0
STATUS ̲INFO.STATUS ̲TYPE EQ NORMAL? S̲E̲N̲D̲
̲S̲T̲A̲T̲U̲S̲
̲C̲I̲F̲
̲(̲-̲2̲)
STATUS ̲INFO.SUBTYPE EQ DELIVERY MIDNIGHT ̲STATUS?
UMAM ̲COLQ.SUBQUEUE = U
̲STATUS ̲REQ Q
CASE SEND ̲REQUEST(UMAM
̲PARAMS,CREATE ̲QEL,
SPIP
̲STAQ,UMAM
̲COLQ)
(UMAM
̲PARAMS,CC):ERROR
̲OK
ERROR? ANALYZE ̲ERROR
(CC,0)
OK?
END CASE
CASE SEND ̲QEL (UMAM ̲PARAMS, CREATE ̲QEL, SPIP
̲STAQ)
(UMAM ̲PARAMS, CC) : ERROR
̲OK
ERROR? ANALYZE ̲ERROR (CC,0)
OK?
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̲)
FIGURE 4.2.5.6.6-1
SEND ̲STATUS ̲CIF
CASE SEND ̲REPLY(UMAM ̲PARAMS, CREATE ̲QEL, QEL1)
(UMAM ̲PARAMS, CC): ERROR ̲OK
ERROR? CASE ANALYZE ̲ERROR(CC, 2 QEL
̲PROFILE ̲CHECK,
BLOCKED
̲QUEUE)(EXIT-2)
LA1?
LA2? U̲Q̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲)̲(̲4̲.̲2̲.̲5̲.̲6̲.̲1̲1̲)̲
END CASE
OK?
END CASE
Fig. 4.2.5.6.6-2
4.2.5.6.7 C̲O̲N̲V̲E̲R̲T̲ ̲O̲U̲T̲G̲ ̲T̲O̲ ̲I̲N̲T̲A̲
4.2.5.6.7.1 F̲u̲n̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
This procedure moves the contents of a record
in the EXPAND or PREP ̲AREA into the INTA ̲REC.
4.2.5.6.7.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) CONVERT ̲OUTG ̲TO ̲INTA(PREP ̲REC: PREP ̲REC
̲TYPE)
b) CONVERT ̲OUTG ̲TO ̲INTA (R5, 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̲
R5 POINTER TO PREP ̲REC (DEST)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0-R7 (DEST)
4.2.5.6.7.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̲
PREP ̲REC ̲TYPE
INTA ̲REC ̲TYPE
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
INTA ̲REC (m)
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR
SAVELINK : INTEGER
4.2.5.6.7.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
The contents of PREP ̲REC is moved to INTA
̲REC
CONVERT ̲OUTG ̲TO ̲INTA
INTA ̲REC.LTD ̲PREP = PREP ̲REC.LTD.PREP
INTA ̲REC.STATUS = PREP ̲REC.STATUS
INTA ̲REC.MAINTYPE = PREP ̲REC.MAINTYPE
REL ̲MSG ̲TYPE.ORIG = PREP ̲REC.ORIG
REL ̲MSG ̲TYPE.CIF ̲REF = PREP ̲REC.NAME.CIF
̲ID.LEAST
REL ̲MSG ̲TYPE.NOT ̲REF = PREP ̲REC.REL ̲NO
̲ITEM ̲REF
INTA ̲REC.LTD ̲RELS = 0
REL ̲MSG ̲TYPE.SSN = 0
G̲E̲T̲ ̲T̲I̲M̲E̲(̲A̲D̲D̲R̲(̲I̲N̲T̲A̲ ̲R̲E̲C̲+̲S̲I̲Z̲E̲(̲I̲N̲T̲A̲ ̲R̲E̲C̲ ̲T̲Y̲P̲E̲.̲D̲A̲T̲A̲)̲)̲.̲R̲E̲L̲
̲M̲S̲G̲ ̲
T̲Y̲P̲E̲.̲T̲I̲M̲E̲)̲)̲
̲(̲4̲.̲2̲.̲5̲.̲6̲.̲3̲3̲)
INTA ̲REC.TIME = REL ̲MSG ̲TYPE.TIME
END CONVERT ̲OUTG ̲TO ̲INTA
FIGURE 4.2.5.6.7.4-1
4.2.5.6.8 S̲T̲O̲R̲E̲ ̲P̲R̲E̲P̲
4.2.5.6.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̲
The purpose of this procedure is to write
the contents of BIG ̲BUF (PREPARATION ̲AREA)
onto the Preparation-file
4.2.5.6.8.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) STORE ̲PREP
b) STORE ̲PREP(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.6.8.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̲
BUFFER ̲LIST ̲ELEMENT
FDCB ̲INDEX
PREP ̲REC ̲TYPE
STATUS ̲FILE ̲NAMES
FILE ̲ADDRESS
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
UMAM ̲FILE ̲ADDR (m)
UMAM ̲BLE (m)
UMAM ̲FDCB
PREP ̲FILE ̲LENGTH ̲B
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR
SAVELINK : INTEGER
MULT : LONG
4.2.5.6.8.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
Refer figure 4.2.5.6.8-1
STORE ̲PREP
BUFFER ̲ADDRESS = BIG ̲BUFFER(1)
BUFFER ̲SIZE = PREP ̲FILE ̲LENGTH ̲B
UMAM ̲FILE ̲ADDR.FIRST ̲BYTE = 0
UMAM ̲FILE ̲ADDR.BYTE ̲COUNT = BUFFER ̲SIZE
UMAM ̲BLE.ADDRESS = BUFFER ̲ADDRESS
UMAM ̲BLE.BYTE ̲SIZE = BUFFER ̲SIZE
FILE ̲ID = UMAM ̲FDCB (PREPARATION ̲AREA)
CASE MODIFYBYTES(FILE ̲ID,UMAM ̲FILE ̲ADDR,UMAM
̲BLE)
(UMAM ̲FILE ̲ADDR, CC): ERROR
̲OK
ERROR? ANALYZE ̲ERROR(CC, 0)
OK?
END CASE
Fig. 4.2.5.6.8-1
4.2.5.6.9 I̲N̲P̲U̲T̲ ̲C̲O̲M̲P̲L̲E̲T̲E̲ ̲I̲N̲T̲
4.2.5.6.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 procedure reads the contents of the file COLLECT
̲
AREA. The data are placed in BIG ̲BUF.
The address of CURRENT ̲INTA is BIG ̲BUF (PREP ̲FILE ̲
LENGTH + 1)
4.2.5.6.9.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) INPUT ̲COMPLETE ̲INT (INT ̲AREA: INTA ̲AREA ̲TYPE)
b) INPUT ̲COMPLETE ̲INT (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̲
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 pointer to INT ̲AREA
R1-R7 (DEST)
4.2.5.6.9.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̲
INTA ̲REC ̲TYPE
STATUS ̲FILE ̲NAMES
BUFFER ̲LIST ̲ELEMENT
FILE ̲ADDRESS
FDCB ̲INDEX
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
BIF ̲BUF ̲CONTENTS (m)
UMAM ̲BLE (m)
UMAM ̲FILE ̲ADDR (m)
MAX ̲NO ̲OF ̲INTAS
CURRENT ̲INTA ̲NO
UMAM ̲FDCB
INTA ̲LENGTH ̲B
INTA ̲LENGTH ̲W
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR
SAVELINK : INTEGER
MULT : LONG
4.2.5.6.9.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
Refer figure 4.2.5.6.9-1
INPUT ̲COMPLETE ̲INT
BUFFER ̲ADDRESS = BIG ̲BUFFER(1+(MAX ̲NO ̲OF ̲INTAS-CURRENT
̲INTA ̲NO)
* INTA ̲LENGTH ̲B)
BUFFER ̲SIZE = (CURRENT ̲INTA ̲NO * INTA ̲LENGTH ̲B)
UMAM ̲FILE ̲ADDR.FIRST ̲BYTE = 0
UMAM ̲FILE ADDR.BYTE ̲COUNT = BUFFER ̲SIZE
UMAM ̲BLE.ADDRESS = BUFFER ̲ADDRESS…02…
UMAM ̲BLE.BYTE ̲SIZE = BUFFER ̲SIZE
FILE ̲ID = UMAM ̲FDCB (COLLECT ̲AREA)
CASE READBYTES (FILE ̲ID, UMAM ̲FILE ̲ADDR, UMAM ̲BLE)
(UMAM ̲FILE ̲ADDR, CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR(CC, 0)
OK? BIG ̲BUF ̲CONTENTS=INT
END CASE
INT ̲AREA = UMAM ̲BLE.ADDRESS
Fig. 4.2.5.6.9-1