top - download
⟦0a9d5f531⟧ Wang Wps File
Length: 45573 (0xb205)
Types: Wang Wps File
Notes: CPS/SDS/041
Names: »2103A «
Derivation
└─⟦9270f92d5⟧ Bits:30006106 8" Wang WCS floppy, CR 0167A
└─ ⟦this⟧ »2103A «
WangText
#
…02…CPS/SDS/041
…02…841210…02……02…
PRINTER
DETAILED DESIGN SPECIFICATION…02…ISSUE
1…02…CAMPS
4.2.1.6.9.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲:̲
Ref. PRT ̲DATA
4.2.1.6.9.4 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲D̲e̲s̲i̲g̲n̲
Ref. code
4.2.1.6.10 C̲H̲E̲C̲K̲ ̲V̲I̲E̲W̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
4.2.1.6.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̲
The procedure checks if an open view exists pertinent
to the current item. In case there is, it will be
closed. If FILE ̲IN ̲PROGRESS is true, then SYIB ̲TAB
̲FILE is closed.
4.2.1.6.10.2 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) CHECK ̲VIEW
b) CHECK ̲VIEW (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
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R0 - R7 DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
NONE
4.2.1.6.10.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
Ref. PRT ̲DATA
4.2.1.6.10.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
Ref. Code
4.2.1.6.11 R̲E̲P̲L̲Y̲ ̲T̲O̲ ̲S̲S̲C̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
4.2.1.6.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̲
The procedure sends a reply to SSC with the specified
completion value. It is used upon completion of SSC-commands.
4.2.1.6.11.2 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) REPLY TO SSC (COMPLETION VALUE: SSC COMPL: TYPE)
b) REPLY TO SSC (R0, R6)
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 COMPLETION ̲VALUE (DEST)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
NONE
4.2.1.6.11.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
Ref. PRT ̲DATA
4.2.1.6.11.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
Ref. Code
4.2.1.6.12 C̲A̲N̲C̲E̲L̲ ̲P̲R̲I̲N̲T̲Q̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
4.2.1.6.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̲
If an INIT ̲RECEIVE ̲FIRST ̲QEL from PRIS ̲PRINTQ is pending
then it will be cancelled.
4.2.1.6.12.2 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) CANCEL ̲PRINTQ ̲RECEIVE
b) CANCEL ̲PRINTQ ̲RECEIVE(R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.6.12.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲s̲
D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
Ref. PNT ̲DATA
4.2.1.6.12.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
Ref. Code
4.2.1.7 S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
4.2.1.7.1 U̲P̲C̲O̲ ̲P̲R̲O̲P̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
Ref. sec. 4.1.7.3.2.1
4.2.1.7.2 P̲R̲O̲P̲ ̲U̲P̲C̲O̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
Ref. sec. 4.1.7.3.2.2
4.2.2 P̲r̲i̲n̲t̲e̲r̲ ̲O̲u̲t̲p̲u̲t̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲
The P̲r̲inter O̲utp̲ut (PROP) coroutine is performing the
actions in connection with formattting and output of
the text to be printed.
PROP is controlled by the other coroutine (UPCO).
4.2.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 following functions are performed by this sub-package
(ref.fig.4.2.2-1):
UPCO Control Functions
Command Completion and Error Report functions
Format Control
Printout
FIGURE 4.2.2-1
4.2.2.1.1 U̲P̲C̲O̲ ̲C̲o̲m̲m̲a̲n̲d̲ ̲E̲x̲e̲c̲u̲t̲i̲o̲n̲ ̲(̲1̲.̲0̲)̲
The UPCO Command Execution functions carry out execution
of the commands issued by UPCO.
a) I̲n̲i̲t̲i̲a̲l̲i̲z̲e̲ ̲(̲1̲.̲1̲)̲
The Initialize command is issued for initialisation
of PROP,s working area, i.e. variables and buffers.
A CC-Report is to be sent to UPCO, ref. sec. 4.2.2.1.2.c.
b) C̲o̲m̲m̲e̲n̲c̲e̲ ̲(̲1̲.̲2̲)̲
Upon receipt of a Commence-CMD, PROP will start
printing the current item.
c) A̲b̲a̲n̲d̲o̲n̲ ̲(̲1̲.̲3̲)̲
The Abondon Print Command will cause the printing
actions to be stopped immediately. All outstanding
I/O requests will be canncelled and the working
area will be cleared.
Completion will be reported to UPCO, ref. sec.
4.2.2.1.2.c.
d) R̲E̲P̲E̲A̲T̲ ̲(̲1̲.̲4̲)̲
The Repeat Command causes the printout of the current
item to be repeate
e) P̲r̲e̲e̲m̲p̲t̲ ̲(̲1̲.̲5̲)̲
Printout of the current item will be stopped.
Completion will be reported to UPCO, ref. sec.
4.2.2.1.2.c.
4.2.2.1.2. C̲o̲m̲m̲a̲n̲d̲ ̲C̲o̲m̲p̲l̲e̲t̲i̲o̲n̲ ̲a̲n̲d̲ ̲E̲r̲r̲o̲r̲ ̲R̲e̲p̲o̲r̲t̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲ ̲(̲2̲.̲0̲)̲
These functions handle the reception and sending of
completion and error report.
a) P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲o̲f̲ ̲I̲O̲C̲ ̲C̲o̲m̲p̲l̲e̲t̲i̲o̲n̲ ̲C̲o̲d̲e̲s̲ ̲(̲2̲.̲1̲)̲
When printout data is delivered to the Printer
Handler it will respond with a Completion Code.
The Completion Code will contain information about
possible printer errors. Two kinds of printer errors
can occur:
1) Paper Low
2) Connection Error.
b) S̲e̲n̲d̲ ̲E̲r̲r̲o̲r̲ ̲R̲e̲p̲o̲r̲t̲ ̲t̲o̲ ̲U̲P̲C̲O̲ ̲(̲2̲.̲2̲)̲
Upon detection of an I/O error, a report will be
sent to UPCO.
c) S̲e̲n̲d̲ ̲C̲o̲m̲m̲a̲n̲d̲ ̲C̲o̲m̲p̲l̲e̲t̲i̲o̲n̲ ̲R̲e̲p̲o̲r̲t̲ ̲t̲o̲ ̲U̲P̲C̲O̲ ̲(̲2̲.̲3̲)̲
Completion of some of the UPCO commands is to be
reported back, ref. sec. 4.2.2.1.1.a,c,f.
d) S̲e̲n̲d̲ ̲P̲r̲i̲n̲t̲ ̲C̲o̲m̲p̲l̲e̲t̲e̲ ̲R̲e̲p̲o̲r̲t̲ ̲t̲o̲ ̲U̲P̲C̲O̲ ̲(̲2̲.̲4̲)̲
On completion of item printout, UPCO will be notified.
4.2.2.1.3 F̲o̲r̲m̲a̲t̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲3̲)̲
Format Control takes care of the interface to the PRINTER
Format Handler.
4.2.2.1.4 P̲r̲i̲n̲t̲o̲u̲t̲ ̲(̲4̲.̲0̲)̲
The printout functions carries out the actual Text-conversion,-formatting
and -output by using the PRINTER FORMAT HANDLER.
a) C̲o̲n̲v̲e̲r̲t̲ ̲D̲a̲t̲a̲ ̲F̲o̲r̲ ̲O̲u̲t̲p̲u̲t̲ ̲(̲4̲.̲1̲)̲
This function is responsible for converting the
data so that it can be printed.
b) L̲o̲a̲d̲ ̲C̲o̲n̲v̲e̲r̲t̲e̲d̲ ̲D̲a̲t̲a̲ ̲I̲n̲t̲o̲ ̲O̲u̲t̲p̲u̲t̲ ̲B̲u̲f̲f̲e̲r̲ ̲(̲4̲.̲2̲)̲
When the data has been converted this function
loads it into a buffer for Output.
c) P̲R̲E̲P̲A̲R̲E̲ ̲H̲e̲a̲d̲e̲r̲/̲T̲r̲a̲i̲l̲e̲r̲ ̲I̲n̲f̲o̲.̲ ̲(̲4̲.̲3̲)̲
The Page Header/Trailer information, which is partly
produced by UPCO is prepared and handed over to
the PRINTER FORMAT HANDLER.
d) O̲u̲t̲p̲u̲t̲ ̲B̲u̲f̲f̲e̲r̲ ̲(̲4̲.̲4̲)̲
This function delivers the Output buffer to The
Printer Handler for output.
4.2.2.2 P̲R̲O̲P̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲.̲
The software structure of PROP is shown in Fig 4.2.2.2-1
(call structure).
A functional description of each module is given in
sec. 4.2.2.4.
PROP consists of four main parts:
1) VPCO command processing - down by ANALYSE ̲UPCO
̲
CMD,
2) Cansellation of outstanding IO calls - done by
CANCEL ̲OUTSTANDING ̲IO ̲S,
3) IO completion processing - done by PROC ̲IO ̲CC,
4) Fetching, conversion, formatting and output of
data - done by DATA ̲CONVERSION ̲OUTPUT and underlying
modules.
Fig. 4.2.2.2-1 P̲R̲O̲P̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲
4.2.2.3 D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲
Fig 4.2.2.3-1 - 3
4.2.2.4 P̲R̲O̲P̲ ̲M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲
4.2.2.4.1 P̲R̲O̲P̲ ̲M̲A̲I̲N̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
4.2.2.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̲ ̲
PROP ̲MAIN contains the PROP ̲MAIN ̲LOOP. It waits at
Semaphore PRIS ̲S2, and takes appropriate actions upon
reception of input items.
The module is only called by the Coroutine Monitor.
4.2.2.4.1.2 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) PROP ̲MAIN
b) PROP ̲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̲
R0 - R7 (DEST)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲ ̲
None
4.2.2.4.1.3 ̲M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
N/A
4.2.2.4.1.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲s̲
D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
Ref. PRT ̲DATA
4.2.2.4.1.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
In the MAIN ̲LOOP, it is checked whether the arrived
items are legal or not.
All legal UPCO Commands are executed by the ANALYZE
̲UPCO ̲CMD module while IO Completions are processed
by PROC ̲IO ̲CC.
4.2.2.4.2 ̲A̲N̲A̲L̲Y̲S̲E̲ ̲U̲P̲C̲O̲ ̲C̲M̲D̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲t̲a̲i̲o̲n̲
4.2.2.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 Module analyses UPCO-Commands received via PRIS-S2
and executes them.
4.2.2.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) ANALYZE ̲UPCO ̲CMD
b) ANALYZE ̲UPCO ̲CMD (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̲ ̲
R7 LINK (Dest.)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
All Registers are Destroyed
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.2.4.2.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
N/A.
4.2.2.4.2.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲s̲
D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
Ref. PRT ̲DATA
4.2.2.4.2.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
The Commands are distinguished by the ITEM ̲NAME field
of the actual operation.
The Module mainly operates on data shared with UPCO.
4.2.2.4.3 C̲A̲N̲C̲E̲L̲ ̲O̲U̲T̲S̲T̲A̲N̲D̲I̲N̲G̲ ̲I̲O̲ ̲S̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
4.2.2.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 cancels pending system calls initiated by
PROP.
4.2.2.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) CANCEL ̲OUTSTANDING IO ̲S
b) CANCEL ̲OUTSTANDING ̲IO ̲S (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 (Destr.)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
All register are Destroyed.
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲ ̲
None
4.2.2.4.3.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
N/A
4.2.2.4.3.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
Ref. PRT ̲DATA
4.2.2.4.3.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
The module checks OUTSTANDING ̲IO ̲S in order to determine
whether a System IO Call is pending or not. If there
is, it will be cancelled by using the coroutine Monitor
Procedure
C ̲CANCEL ̲SYSTEM ̲CALL.
4.2.2.4.4 D̲A̲T̲A̲ ̲C̲O̲N̲V̲E̲R̲S̲I̲O̲N̲ ̲O̲U̲T̲P̲U̲T̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
4.2.2.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 module controls and executes the conversion, formatting
and output of data.
4.2.2.4.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) DATA ̲CONVERSION ̲OUTPUT
b) DATA ̲CONVERSION ̲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 (Destr.)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
All registers are Destroyed.
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲ ̲
None
4.2.2.4.4.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
4.2.2.4.4.3.1 R̲E̲A̲D̲ ̲M̲M̲I̲ ̲C̲T̲R̲L̲ ̲T̲A̲B̲L̲E̲ ̲
Reads in (from TMP) the section of the table corresponding
to CURRENT ̲FORMAT.
4.2.2.4.4.3.2 S̲E̲T̲ ̲B̲U̲F̲F̲E̲R̲ ̲S̲T̲R̲U̲C̲T̲U̲R̲E̲
Set buffer structure corresponding to MMI ̲CTRL ̲TABLE
section.
4.2.2.4.4.3.3 ̲R̲E̲A̲D̲ ̲C̲I̲F̲ ̲F̲I̲E̲L̲D̲S̲
Reads in the fields (from CIF) corresponding to buffer
structure.
4.2.2.4.4.3.4 I̲N̲S̲E̲R̲T̲ ̲R̲E̲P̲E̲A̲T̲E̲D̲ ̲L̲I̲N̲E̲S̲
Informs the Printer Handler about lines to be repeated.
4.2.2.4.4.3.5 O̲U̲T̲P̲U̲T̲ ̲B̲U̲F̲F̲E̲R̲
Calls Printer Format Handler (IOC) in order to format
and output the data collected in I0C buffer.
2.2.4.4.3.6 R̲E̲A̲D̲ ̲S̲I̲N̲G̲L̲E̲ ̲C̲I̲F̲ ̲F̲I̲E̲L̲D̲
Reads in a field from CIF (field currently referenced
by I ̲PT ̲BASE).
4.2.2.4.4.3.7 C̲H̲E̲C̲K̲ ̲O̲U̲T̲P̲U̲T̲ ̲C̲O̲N̲D̲I̲T̲I̲O̲N̲
If convenient the procedure will take care off reading
in new data from view or file while the Printer Handler
is outputting data.
4.2.2.4.4.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
Ref. PRT ̲DATA
4.2.2.4.4.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
The processing of print items is split into two mainparts:
A̲p̲l̲i̲c̲a̲t̲i̲o̲n̲ ̲R̲e̲p̲o̲r̲t̲ ̲P̲r̲i̲n̲t̲ is performed by the module
APPL ̲
REP ̲OUTP. The principle of this is that the first arriving
report causes reservation of a whole page for report
print by GET ̲FORMAT and INSERT ̲LINE ̲GROUP calls. Then
the first report is printed by FIELDS ̲OUTPUT calls
without issuing an OUTPUT ̲FORMAT call afterwards (which
would cause the page to be shipped). Instead the next
print item is awaited. If the next item is a report
it will be printed on the same page etc. (until the
page is full). If the next item was not a report then
an OUTPUT ̲FORMAT call is issued in order to Ship Page
and clean up before next item is processed.
P̲r̲i̲n̲t̲ ̲o̲f̲ ̲o̲t̲h̲e̲r̲ ̲i̲t̲e̲m̲ ̲t̲y̲p̲e̲s̲ is controlled by DATA ̲CONVERSION
̲OUTPUT. Thise control states can occur: FORMAT ̲INITIAL,
INITIAL and CONTINUED.
F̲O̲R̲M̲A̲T̲ ̲I̲N̲I̲T̲I̲A̲L̲ ̲s̲t̲a̲t̲e̲ is indicated by that both booleans
PRT ̲INIT ̲FORMAT and INITIAL are TRUE. It is actual
when the first part of the first copy of an item is
to be printed.
Either the QEL data, the buffer data, the VIEW Administration
field or the SYIE ̲TAB ̲FILE is read in.
The Header and Trailer information is prepared.
A GET ̲FORMAT call is issued.
The MMI Table data for the current item and the administration
data is worked through in order to determine the count's
of repeatable fields and lines. Possible extra lines
or line groups are inserted by INSERT ̲LINES or INSERT
̲LINE ̲GROUP call. All line insertions must take place
before the first Fields Output call because of the
page numbering.
All other actions are the same as for INITIAL state.
I̲N̲I̲T̲I̲A̲L̲ ̲s̲t̲a̲t̲e̲ is when INITIAL is true but PRT ̲INIT
̲FORMAT is false. This state is actual when the first
part of an item is to be printed and the format and
the administration data is already read in.
First the buffer structure is set, the possible VIEW
̲or File date is read, the data is converted, moved
and merged into the IOC-buffer that consists of IOC
records, the FIELD ̲LIST is built up, the data is outputted
by a FIELDS ̲OUTPUT call and at last additional data
is read in if appropriate.
C̲O̲N̲T̲I̲N̲U̲E̲D̲ ̲s̲t̲a̲t̲e̲ is indicated by that both PRT ̲INIT
̲
FORMAT and INITIAL are FALSE.
In this state the printing actions are continued after
previous calls of FIELDS ̲OUTPUT. It is checked whether
more data should be read in, if a new entry from the
MMI ̲TABLE is needed or if the printing is to be finished
by an OUTPUT ̲FORMAT call.
…86…1 …02… …02… …02… …02…
DATA ̲CONVERSION ̲OUTPUT
ITEM EQ APPLICATION ̲REPORT? APPL ̲REP ̲OUTP(4.2.2.4.9)
PREVIOUS ̲ITEM EQ APPLICATION ̲REPORT? OUTPUT ̲FORMAT
INITIAL EQ TRUE? PROC ̲INITIAL(-2)
END ̲OF ̲CIF ̲BUF EQ TRUE AND BUFFERS ̲SHARED=TRUE?
CASE PRINT ̲ITEM ̲CATEGORY OF
VIEW ̲TIME? READ ̲SINGLE ̲CIF ̲FIELD(4.2.2.4.4.3.6)
FILE ̲ITEM? R ̲CONT ̲F ̲DAT(4.2.2.4.13.3.4)
END
END ̲OF ̲CIF ̲BUF EQ TRUE OR FIELD ̲LIST ̲FULL=TRUE
OR END ̲OF ̲IOC ̲BUF EQ TRUE?
CREATE ̲PRINT ̲BUFFERS(3.2.2.4.5)
OUTPUT ̲BUFFER(4.2.2.4.4.3.5)
CHECK ̲OUTPUT ̲CONDITION(4.2.2.4.4.3.7)
END OF MMI ENTRY?
CONT ̲FORMAT ̲ID EQ 0? "more MMI ENTRIES?
END ̲OF ̲ITEM FLAG:=TRUE
OUTPUT ̲FORMAT
CURRENT ̲FORMAT:=CONT ̲FORMAT ̲ID
READ ̲MMI ̲CTRL ̲TABLE(4.2.2.4.4.3.1)
SET ̲BUFFER ̲STRUCTURE(4.2.2.4.4.3.2)
CASE ̲PRINT ̲ITEM ̲CATEGORY OR
VIEW ̲ITEM? ̲READ ̲CIF ̲FIELDS(4.2.2.4.4.3.3)
FILE ̲ITEM? ̲R ̲FIRST ̲F ̲DAT(4.2.2.4.13.3.3)
END
SET ̲MEMORY ̲ADDR(4.2.2.6.2)
CREATE ̲PRINT ̲BUFFERS(4.2.2.4.5)
OUTPUT ̲BUFFER(4.2.2.4.4.3.5)
CHECK ̲OUTPUT ̲CONDITION(4.2.2.4.4.3.7)
ERROR ̲REP(4.1.5.1)
END
FIG 4.2.2.4.4.5-1
PROC ̲INITIAL
RESET FLAGS
READ ̲MMI ̲CTRL ̲TABLE(4.2.2.4.4.3.1)
PRT ̲INIT ̲FORMAT EQ TRUE?
CASE PRINT ̲ITEM ̲CATEGORY OF
QEL ̲ITEM? COPY QEL ̲ATTR TO ADM1-BUF
BUFFER ̲ITEM? COPY BUFFER DATA TO ADM1-BUF
VIEW ̲ITEM? READ ̲VIEW ̲ADM(4.2.2.4.10)
FILE ̲ITEM? READ ̲FILE ̲ADM(4.2.2.4.13.3.1)
END
PREPARE ̲HEADER ̲TRAILER ̲BUFFER(4.2.2.4.8)
GET FORMAT
INSERT ̲REPEATED ̲LINES(4.2.2.4.4.3.4)
PRT ̲INIT ̲FORMAT:=FALSE
SET ̲BUFFER STRUCTURE(4.2.2.4.4.3.2)
CASE PRINT ̲ITEM ̲CATEGORY OR
VIEW ̲ITEM? READ ̲CIF ̲FIELDS(4.2.2.4.4.3.3)
FILE ̲ITEM? R ̲FIRST ̲F ̲DAT (4.2.2.4.13.3.3)
END
SET ̲MEMORY ̲ADDR(4.2.2.6.2)
CREATE ̲PRINT ̲BUFFERS(4.2.2.4.5)
OUTPUT ̲BUFFER(4.2.2.4.4.3.5)
CHECK ̲OUTPUT ̲CONDITION(4.2.2.4.4.3.7)
INITIAL:=FALSE
END
FIG 4.2.2.4.4.5-2
4.2.2.4.5 C̲R̲E̲A̲T̲E̲ ̲P̲R̲I̲N̲T̲ ̲B̲U̲F̲F̲E̲R̲S̲
4.2.2.4.5.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Creates FIELD LIST and IOC record list for use by the
PRINTER ̲FORMAT ̲HANDLER (IOC) for output of data. The
processing is controlled via parameters from the PRT
̲
MMI ̲TABLE.
4.2.2.4.5.2 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) CREATE ̲PRINT ̲BUFFERS
b) CREATE ̲PRINT ̲BUFFERS(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 Destroyed
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
All registers are destroyed
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
NONE
4.2.2.4.5.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
4.2.2.4.5.3.1 C̲R̲E̲A̲T̲E̲ ̲P̲R̲I̲N̲T̲ ̲R̲E̲C̲
Creates an IOC record and moves it to the IOC buffer.
Used for fixed fields. Also a field list element is
created.
4.2.2.4.5.3.2 F̲I̲E̲L̲D̲ ̲G̲R̲O̲U̲P̲ ̲R̲E̲P̲E̲A̲T̲
Creates IOC records for a Field Group (using CREATE
̲
PRINT ̲REC)
4.2.2.4.5.3.3 C̲R̲E̲A̲T̲E̲ ̲F̲I̲E̲L̲D̲ ̲L̲I̲S̲T̲ ̲E̲L̲E̲M̲E̲N̲T̲
Creates a single field list element. Used for Buffers
Shared.
4.2.2.4.5.3.4 P̲R̲O̲D̲U̲C̲E̲ ̲O̲U̲T̲P̲U̲T̲ ̲E̲L̲E̲M̲E̲N̲T̲
For variable field it checks for cinditions 'FIELD
̲LIST ̲FULL, END ̲OF ̲IOC ̲BUF and END ̲OF ̲CIF ̲FIELD'. If
none of these are true then the relevant of the three
procedures above is called. Else is returned to the
mainprocedure.
4.2.2.4.5.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Ref. PRT ̲DATA
4.2.2.4.5.5 D̲e̲s̲i̲g̲n̲
The main procedure consists of two Loops. The outer
loop runs until the end of current MMI. Table entry
has been reached. The inner loop runs on the incurration
counter. It calls PRODUCE ̲OUTPUT ̲ELEM(4.2.2.4.5.3.4).
Both loops can be exited and reentered if one of the
three following conditions occur:
FIELD ̲LIST ̲FULL, END ̲OF ̲IOC ̲BUF,
END ̲OF ̲CIF ̲BUF.
4.2.2.4.6 E̲X̲E̲C̲ ̲C̲O̲N̲V̲ ̲P̲R̲C̲
4.2.2.4.6.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The module determine and executes the appropriate Data
Conversion Procedures.
4.2.2.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̲
EXEC ̲CONV ̲PRC
RO; "C K Procedure Identifier: DISPLAY ̲PROCEDURE ̲TYPE
R1; "C K Input item pointer
R2; "C K Input byte offset
R3; "C R Item length
R4; "C K Output item pointer
R5; "C K Output byte offset
R6; "C D LINK
R7 is destroyed.
4.2.2.4.6.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
N/A
4.2.2.4.6.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Ref. PRT ̲DATA
4.2.2.4.6.5 D̲e̲s̲i̲g̲n̲
Ref. Code
4.2.2.4.7 P̲R̲O̲C̲ ̲I̲O̲ ̲C̲C̲
4.2.2.4.7.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
This module processes IO ̲CC's received via PRIS ̲S2.
It checks for possible error conditions and takes the
appropriate action i.e. reporting to UPCO, calling
DATA ̲
CONVERSION ̲OUTPUT or dumping error UNIUS data before
calling SEND ̲GARBLE.
4.2.2.4.7.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
a) PROC ̲IO ̲CC
b) PROC ̲IO ̲CC(R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK Destroyed
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
All Registers are destroyed
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
NONE
4.2.2.4.7.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
N/A
4.2.2.4.7.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Ref. PRT ̲DATA
4.2.2.4.7.5 D̲e̲s̲i̲g̲n̲
Ref. Code
4.2.2.4.8 P̲R̲E̲P̲A̲R̲E̲ ̲H̲E̲A̲D̲E̲R̲ ̲T̲R̲A̲I̲L̲E̲R̲ ̲B̲U̲F̲F̲E̲R̲S̲
4.2.2.4.8.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The module sets up the buffer lists and records used
for document accounting (i.e. page-header and-trailer
information).
4.2.2.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̲
a) PREPARE ̲HEADER ̲TRAILER ̲BUFFERS
b) PREPARE ̲HEADER ̲TRAILER ̲BUFFERS(R6);
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
All registers are destroyed.
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
NONE
4.2.2.4.8.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
4.2.2.4.8.3.1 G̲E̲N̲ ̲S̲T̲P̲ ̲H̲E̲A̲D̲
The procedure generates additional STP header information.
4.2.2.4.8.3.2 A̲D̲D̲ ̲H̲E̲A̲D̲ ̲I̲N̲F̲O̲
The procedure generates the additional header lines
that are appropriate for the current print item type.
4.2.2.4.8.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Ref. PRT ̲DATA
4.2.2.4.8.5 D̲e̲s̲i̲g̲n̲
Ref. Code.
4.2.2.4.9 A̲P̲P̲L̲ ̲R̲E̲P̲ ̲O̲U̲T̲P̲
4.2.2.4.9.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
This module takes care of converting and outputting
application reports (technical error reports are treated
by DATA ̲CONVERSION ̲OUTPUT).
The module reads the buffer data, fetches the report
text and the report serial no, coverts the report time
into ASCII, creates field list and IOC buffer. It works
independently of the MMI ̲CONTROL ̲TABLE.
The module also performs a SEND ̲CONTROL system call
in order to output a BELL.
Furtherrmore it performs page control in order to faciliate
printout of more than one report per page.
4.2.2.4.9.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̲:
APPL ̲REP ̲OUTP(R6);
All registers are destroyed.
4.2.2.4.9.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
N/A
4.2.2.4.9.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Ref. PRT ̲DATA
4.2.2.4.9.5 D̲e̲s̲i̲g̲n̲
Ref. Fig. 4.2.2.4.9-1 and Code.
APPL ̲REP ̲OUTP
PRT ̲INIT ̲FORMAT EQ TRUE?
PRT ̲INIT ̲FORMAT:=FALSE
PH ̲INIT ̲SEND ̲CONTROL(RING ̲THE ̲BELL)
WAS PREVIOUS ITEM NOT AN APPLICATION ̲REPORT?
PREPARE ̲HEADER ̲TRAILER ̲BUFFERS(4.2.2.4.8)
PH ̲GET ̲FORMAT(CURRENT FORMAT)
PH ̲INSERT ̲LINE ̲GROUP "so that page can be filled
up with
Reports"
"Prepare data for output while waiting
for
READ ̲BUFFER "GET REPORT DATA
GET ̲GSN(REPORT ̲GSN)
CONVERT ̲TIME(REPORT ̲TIME)
GET REPORT TEXT FROM RESPONSE TEXT TABLE
MOVE REPORT DATA
INITIATE IOC HEADER
INITIAL EQ TRUE?
INITIAL:=FALSE
PH ̲INIT ̲FIELDS ̲OUTPUT"Output Report
END OF PAGE?
END ̲OF ̲ITEM ̲FLAG:=TRUE
PH ̲INIT ̲OUTPUT ̲FORMAT
REP ̲TO ̲UPCO(PRINT ̲COMPLETE ̲REP)
END
FIG 4.2.2.4.9-1
4.2.2.4.10 R̲E̲A̲D̲ ̲V̲I̲E̲W̲ ̲A̲D̲M̲
4.2.2.4.10.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The module determines the item type and reads the appropriate
administration data.
4.2.2.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) READ ̲VIEW ̲ADM
b) READ ̲VIEW ̲ADM(R6);
All registers are destroyed.
4.2.2.4.10.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
4.2.2.4.10.3.1 R̲E̲A̲D̲ ̲A̲D̲M̲ ̲F̲I̲E̲L̲D̲
Reads a specified number of words from the start of
CIF FIELD NO 1.
4.2.2.4.20.3.2 R̲E̲A̲D̲ ̲G̲A̲R̲B̲L̲E̲ ̲A̲D̲M̲
Reads the EMF ADM field (field 9) and stores it in
ADM1 ̲
BUF.
4.2.2.4.10.3.3 R̲E̲A̲D̲ ̲C̲I̲F̲ ̲A̲D̲M̲
Reads the administration data from CIF field 1 related
to transmission - and system - catalogue.
4.2.2.4.10.3.4 R̲ ̲S̲T̲A̲T̲U̲S̲ ̲A̲D̲M̲
The procedure reads the adm-data related to STATUS
̲PRINT and stores it in ADM1 ̲BUF for OUTGOING ̲MSG ̲STATUS
and OUTGOING ̲MSG ̲MIDNIGHT ̲STATUS additionally relevant
item pointers are calculated and stored in ADM1 ̲BUF.
4.2.2.4.10.3.5 R̲E̲A̲D̲ ̲L̲O̲G̲ ̲A̲D̲M̲
Reads the LOG ̲CIF adm. data.
4.2.2.4.10.3.6 R̲E̲A̲D̲ ̲S̲T̲P̲ ̲A̲D̲M̲
Reads the statistics CIF adm. data.
4.2.2.4.10.3.7 R̲E̲A̲D̲ ̲T̲E̲R̲ ̲A̲D̲M̲
Reads the administration data of a TECHNICAL ̲ERROR
̲
REPORT.
4.2.2.4.10.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Ref. PRT ̲DATA
4.2.2.4.10.5 D̲e̲s̲i̲g̲n̲
Ref. CODE
4.2.2.4.11 R̲E̲A̲D̲ ̲I̲M̲F̲ ̲A̲D̲M̲
4.2.2.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̲
The modules reads the IMF ̲DESCRIPTOR the PARAMETER
̲INFO and the FL5 ̲DYNAMIC from CIF FIELD 1 (ADM field)
of the current view. For some SUPERVISORY ̲PRINT items
additional adm. data are read and/or calculated. Also
the relevant TRANSACTION ̲ACCOUNTING data are stored.
4.2.2.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) READ ̲IMF ̲ADM
b) READ ̲IMF ̲ADM(R6);
All registers are destroyed.
4.2.2.4.11.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
4.2.2.4.11.3.1 P̲R̲O̲V̲I̲D̲E̲ ̲A̲D̲D̲ ̲A̲L̲T̲D̲I̲ ̲R̲E̲D̲I̲S̲ ̲A̲D̲M̲ ̲D̲A̲T̲A̲ ̲(̲R̲6̲)̲
The procedure provides the adtional ADM data needed
to carry out print of an ALTERNATIVE ̲DISTRIBUTION ̲INSTRUCTION
or a REDISTRIBUTION ̲INSTRUCTION.
It fetches counters from field 7. which are stored
in ADM1 ̲BUD right after PARAMETER ̲INFO instead of the
FL5 ̲
DYNAMIC characters.
4.2.2.4.11.3.2 P̲R̲O̲V̲I̲D̲E̲ ̲A̲D̲D̲ ̲R̲I̲ ̲A̲S̲S̲ ̲A̲D̲M̲ ̲D̲A̲T̲A̲
The procedure provides the adtional ADM data needed
to carry out print of an RI ̲ASSINGMENT ̲INSTRUCTION.
It fetches counters from the RI ̲ASSIGNMENT ̲DESCRIPTOR
in the RI ̲ASSIGNMENT ̲FIELD (Field 8), calculates pointers
and counters which are stored in ADM1 ̲BUF right after
PARAMETER ̲INFO instead of the FL5 ̲DYNAMIC characters.
4.2.2.4.11.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Ref. PRT ̲DATA
4.2.2.4.11.5 D̲e̲s̲i̲g̲n̲
Ref. CODE
4.2.2.4.12 G̲E̲N̲ ̲L̲O̲G̲ ̲H̲E̲A̲D̲
4.2.2.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̲
The module generates additional LOG header information
- both for COLLECT ̲CIF's and TRACE CIF's.
4.2.2.4.12.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
GEN ̲LOG ̲HEAD
(R3;"-R NO ̲OF ̲HEADER ̲LINES
R4;"CR POINTER TO CURRENT ̲BLE
R6);"CD LINK
4.2.2.4.12.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
4.2.2.4.12.3.1 G̲E̲N̲ ̲T̲R̲A̲C̲E̲ ̲H̲E̲A̲D̲
The procedure generates special logtrace header info.
4.2.2.4.12.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Ref. PRT ̲DATA
4.2.2.4.12.5 D̲e̲s̲i̲g̲n̲
Ref. CODE
4.2.2.4.13 F̲I̲L̲E̲ ̲A̲C̲C̲E̲S̲S̲
4.2.2.4.13.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 consists of four procedures used when processing
FILE ̲ITEMS with expection of SYIE ̲TAB ̲HEAD that also
process VOLUME ̲LIST which is a VIEW ̲ITEM.
4.2.2.4.13.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
N/A
4.2.2.4.13.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
4.2.2.4.13.3.1 S̲Y̲I̲E̲ ̲T̲A̲B̲ ̲H̲E̲A̲D̲
(R3;"-R NO ̲OF ̲HEADER ̲LINES
R4;"CR POINTER TO CURRENT BLE
R6);"CD LINK
The procedure adds the relevant header line(s) for
SYSTEM ̲INFO ̲TABLE ̲PRINT item (incl. VOLUME ̲LIST)
4.2.2.4.13.3.2 R̲E̲A̲D̲ ̲F̲I̲L̲E̲ ̲D̲A̲T̲
(R0;R1; "C BYTE ̲ADDRESS IN LOGICAL FIELD OF FILE -LONG
"R BYTE ̲ADDRESS IN LOGICAL FIELD OF FILE -UPDATED
R2 ; "C NUMBER OF BYTES TO BE READ
"R NUMBER OF BYTES ACTUALLY READ
R3 ; "C K POINTER TO OUTPUT BUFFER
R4 ; "C K LOGICAL FIELD NUMBER
"
" SFN - 1 : SYIE ̲TAB ̲ADM
" SFN + 0 : F ̲ADDR1 (LOGICAL FIELD NO 1)
" SFN + 1 : F ̲ADDR2 (LOGICAL FIELD NO 2)
" SFN + 2 : F ̲ADDR3 (LOGICAL FIELD NO 3)
R6) ; " C D LINK
R5 and R7 are kept
4.2.2.4.13.3.3 R̲E̲A̲D̲ ̲F̲I̲L̲E̲ ̲A̲D̲M̲(̲R̲6̲)̲;
The procedure reads the administration data of the
SYIE ̲
TAB ̲FILE and stores it in ADM1 ̲BUF.
4.2.2.4.1.3.3.4 R̲ ̲F̲I̲R̲S̲T̲ ̲F̲ ̲D̲A̲T̲(̲R̲6̲)̲;
The procedure reads data from the logical fields of
the SYIE ̲TAB ̲FILE - it corresponds to READ ̲CIF ̲FIELDS
FOR VIEW ̲ITEMS
4.2.2.4.13.3.5 R̲ ̲C̲O̲N̲T̲ ̲F̲ ̲D̲A̲T̲ ̲(̲R̲6̲)̲;
The procedure reads data from a logical field in the
SYIE ̲TAB ̲FILE - it corresponds to READ ̲SINGLE ̲CIF ̲FIELD
for VIEW ̲ITEMS.
4.2.2.4.13.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Ref. SPR ̲PRT ̲ADM ̲PREF,
SPR ̲PRT ̲TAB ̲PREF and
PRT ̲DATA.
4.2.2.4.13.5 D̲e̲s̲i̲g̲n̲
Ref. Code
4.2.2.4.14 R̲E̲P̲ ̲B̲U̲F̲ ̲O̲F̲F̲S̲
Ref. Code
4.2.2.5 C̲O̲M̲M̲O̲N̲ ̲P̲R̲O̲P̲ ̲D̲a̲t̲a̲
Ref. PRT ̲DATA
4.2.2.6 C̲o̲m̲m̲o̲n̲ ̲P̲R̲O̲P̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲
4.2.2.6.1 ̲R̲E̲P̲ ̲T̲O̲ ̲U̲P̲C̲O̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲
4.2.2.6.1.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ ̲
The procedure sends the specified report to UPCO.
4.2.2.6.1.2 P̲r̲o̲c̲e̲d̲u̲r̲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) REP ̲TO ̲UPCO (REP ̲ID:PRIS ̲OP ̲ITEM ̲NAME ̲TYPE,
OP ̲DATA : INTEGER)
b) REP ̲TO ̲UPCO (Rl, R2 ,R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲ ̲
R1 REP-ID (destr)
R2 OP ̲DATA
R6 LINK (destr)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲ ̲
All registers are DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲ ̲
NONE
4.2.2.6.1.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲s̲ ̲
D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲:̲
Ref. PRT ̲DATA
4.2.2.6.1.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲ ̲
Ref. Code
4.2.2.6.2 S̲E̲T̲ ̲M̲E̲M̲O̲R̲Y̲ ̲A̲D̲D̲R̲
4.2.2.6.2.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The procedure sets up pointers and counters used by
CREATE ̲PRINT ̲BUFFERS for conversion and generations
of print data. The procedure bases its work on data
from the PRT ̲MMI ̲TABLE and on Administration data of
the current item.
4.2.2.6.2.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
SET ̲MEMORY ̲ADDR (R6); "C D LINK
All registers are destroyed.
4.2.2.6.2.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Ref. PRT ̲DATA
4.2.2.6.2.4 D̲e̲s̲i̲g̲n̲
Ref. Code
4.2.2.6.3 C̲L̲E̲A̲N̲ ̲U̲P̲
4.2.2.6.3.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The procedure fills up ADM1 ̲BUF and GEN ̲BUF with 0'es.
4.2.2.6.3.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
CLEAN ̲UP (R6); " C D LINK
All registers are destroyed.
4.2.2.6.3.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Ref. PRT ̲DATA
4.2.2.6.3.4 D̲e̲s̲i̲g̲n̲
Ref. CODE
4.2.2.6.4 S̲T̲A̲C̲K̲ ̲R̲E̲G̲S̲
4.2.2.6.4.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The procedure stores the values of R0 - R5 and R7 in
PROP ̲AUX ̲STACK. Therefore the value of R6 must be transferred
to R7 before call of this procedure, if it is to be
stored.
4.2.2.6.4.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
STACK ̲REGS
(R0 ; "C K
R1 ; "C K
R2 ; "C K
R3 ; "C K
R4 ; "C K
R5 ; "C K
R7 ; "C K
R6); "C D LINK
4.2.2.6.4.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Ref. PRT ̲DATA
4.2.2.6.4.4 D̲e̲s̲i̲g̲n̲
Ref. Code
4.2.2.6.5 U̲N̲S̲T̲A̲C̲K̲ ̲R̲E̲G̲S̲
4.2.2.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 procedure restores the register values which latest
has been stacked on PROD ̲AUX ̲STACK by STACK ̲REGS.
4.2.2.6.5.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
UNSTACK ̲REGS
(R0 ; - R
R1 ; - R
R2 ; - R
R3 ; - R
R4 ; - R
R5 ; - R
R7 ; - R
R6); C D LINK
4.2.2.6.5.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Ref. PRT ̲DATA
4.2.2.6.5.4 D̲e̲s̲i̲g̲n̲
Ref. code.
4.2.2.6.6 M̲O̲D̲ ̲S̲T̲A̲C̲K̲ ̲V̲A̲L̲
4.2.2.6.6.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The procedure stores the value of specified register
in the stack at the location where the register was
latest stored.
Ref. 4.2.2.6.4 STACK ̲REGS.
4.2.2.6.6.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
MOD ̲STACK ̲VAL
(REGISTER ̲NO:INTEGER; "Number of register to be stored"
(R6 is not applicable).
R0 ; "-/C K
R1 ; "-/C K
R2 ; "-/C K
R3 ; "-/C K
R4 ; "-/C K
R5 ; "-/C K
R7 ; "-/C K
R6); "C D
4.2.2.6.6.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Ref. PRT ̲DATA
4.2.2.6.6.4 D̲e̲s̲i̲g̲n̲
Ref. Code
4.2.2.6.7 G̲E̲T̲ ̲S̲T̲A̲C̲K̲ ̲V̲A̲L̲
4.2.2.6.7.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The procedure restores the latest stacked value of
the specified register.
4.2.2.6.7.2 I̲n̲t̲e̲r̲a̲f̲c̲e̲
GET ̲STACK ̲VAL
(REGISTER ̲NO:INTEGER; "Number of register to be
restored" (R6 is not applicable).
R0 ; "- K/R
R1 ; "- K/R
R2 ; "- K/R
R3 ; "- K/R
R4 ; "- K/R
R5 ; "- K/R
R7 ; "- K/R
R6); "C D
4.2.2.6.7.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Ref. PRT ̲DATA
4.2.2.6.7.4 D̲e̲s̲i̲g̲n̲
Ref. Code
4.2.2.6.8 C̲o̲n̲v̲e̲r̲s̲i̲o̲n̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲
4.2.2.6.8.1 E̲x̲p̲l̲a̲n̲a̲t̲i̲o̲n̲
The conversion procedures are used by CREATE ̲PRINT
̲
BUFFERS (CREATE ̲PRINT ̲REC) for conversion, generation
and moving of data and putting it into IOC records
which are used for output to the Printer Handler. Most
of the procedures are called via EXEC ̲CONV ̲PRC but
some of them are used by other conversion procedures
as helping procedures.
The procedures are kept in SWELL submodules in PROP
̲
COMM ̲PRC ̲D.
4.2.2.6.8.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
The procedures have a common interface:
PROCEDURE ̲NAME (R0 ; - K
R1 ; C K Input Pointer
R2 ; C K Input byte offset
R3 ; C R Item length
R4 ; C R Output pointer
R5 ; C R Output byte offset
R7 ; - D not used by all procedings
R6); C D LINK
4.2.2.6.8.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Ref. PRT ̲DATA
4.2.2.6.8.4 D̲e̲s̲i̲g̲n̲
Ref. Code
4.2.2.7 S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
4.2.2.7.1 U̲P̲C̲O̲ ̲P̲R̲O̲P̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
Ref. sec. 4.1.7.3.2.1
4.2.2.7.2 P̲R̲O̲P̲ ̲U̲P̲C̲O̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
Ref. sec. 4.1.7.3.2.2
4.3 M̲E̲M̲O̲R̲Y̲ ̲L̲A̲Y̲O̲U̲T̲
Ref. PRT ̲COPS.PL
A̲P̲P̲E̲N̲D̲I̲X̲ ̲A̲
P̲R̲T̲ ̲T̲A̲B̲L̲E̲S̲
A1 P̲R̲I̲N̲T̲ ̲A̲C̲C̲O̲U̲N̲T̲I̲N̲G̲ ̲T̲A̲B̲L̲E̲
This table is used to provide the printer process with
some necessary parameters to execute printout of an
item.
The primary key is a NUMERICAL ̲FORMAT ̲ID (Integer)
which is determined by DETERMINE ̲PRINT ̲ITEM ̲CATEGORY.
The parameters provided are:
FORMAT ̲ID : FORMAT ̲ID ̲TYPE
T ̲DOC ̲ACC ̲APP ̲FLAS,
T ̲TRANSAC ̲ACC ̲FLAG : BOOLEAN
T ̲CLASS : CLASSIFICATION ̲TYPE
FORMAT ̲ID is used to get the correct format from the
Printer Handler and to get the first entry from the
PRT ̲
MMI ̲TABLE, T ̲DOC ̲ACC ̲APP ̲FLAG and T ̲TRANSAC ̲ACC ̲FLAG
are used to determine whether DOCUMENT ̲ACCOUNTING or
TRANSACTION ̲ACCOUNTING should be carried out or not.
The source data for the table is placed in PRT.D *
PRT ̲ACC ̲TAB.D * PRT ̲ACC ̲BX.S where X stands for the
main release of the printer. The table is included
in OTHER ̲
TABLES .
A2 P̲R̲T̲ ̲M̲M̲I̲ ̲T̲A̲B̲L̲E̲
A2.1 O̲v̲e̲r̲a̲l̲l̲ ̲d̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The table is a part of OTHER ̲TABLES and is used by
the printer process to control conversion and output
of data. One or several entries exist for every item
type to be printed exept for APPLICATION ̲REPORTS which
are processed exclusively under code control.
Each entry contains information about the input and
output buffer sizes to be used, how many different
fields that are to be processed, information about
field structure (single fields, repeatable fields,
field groups - line groups records ).
A detailed description of the entry structure will
follow later in this appendix.
All files pertinent to the table, except prefixes,
are in PRT.D * PRT ̲MMI ̲TAB.D. For each entry there
exist a source file named 'entry name' followed by
.B3 or .B4. The small source files are sourced in by
two 'main' source files DRT ̲MMI ̲B4A.S and PRT ̲MMI ̲B4B.S
when these are compiled. Two separate files are used
because the table is to big to be contained in one
variable when using INIT statements. After compilation
the two link files PRT ̲MMI ̲B4A.L and PRTMMI ̲B4B.L are
used for the database generation-refer document concerning
this.
A2.2 D̲e̲t̲a̲i̲l̲e̲d̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Below follows the type declarations used:
CIF ̲BUF ̲ARRAY ̲TYPE
= ARRAY SMALLEST ̲FIELD ̲NO..LARGEST ̲FIELD ̲NO
OF INTEGER ;
BUF ̲CTRL ̲REC ̲TYPE =
RECORD
FIELD ̲LIST ̲LENGTH ,
IOC ̲BUFFER ̲LENGTH : INTEGER ;
CIF ̲BUF ̲LEN : CIF ̲BUF ̲LEN ̲ARRAY
̲TYPE
END ;
PRT ̲MMI ̲HEAD ̲REC ̲TYPE =
RECORD
FORMAT ̲ID,
CONT ̲FORMAT ̲ID: ARRAY 1..NO ̲OF ̲FORMAT ̲ID ̲CHAR
OF CHAR "FORMAT ̲ID ̲TYPE";
DUM ̲BUF ̲C ̲GRP,
OUT ̲BUF ̲C ̲GRP: BUF ̲CTRL ̲REC ̲TYPE;
DUMMY : INTEGER ;
CIF ̲ACCESS: BOOLEAN;
MMI ̲REC ̲COUNT: INTEGER
END;
PRT ̲MMI ̲ITEM ̲TYPE = (FIX,VARIABLE)
;
PRT ̲MMI ̲CTRL ̲REC =
RECORD
LINE ̲GROUP ̲COUNT ̲NO,
LINE ̲NO,
INC ̲COUNT,
FIELD ̲NO,
FIELD ̲COUNT,
FIELD ̲GROUP ̲COUNT,
FIELD ̲SIZE,
CIF ̲FIELD ̲NO,
ITEM ̲SIZE : INTEGER ;
ITEM ̲TYPE : PRT ̲MMI ̲ITEM
̲TYPE;
ITEM ̲PT ̲BASE,
DATA ̲ITEM ̲PT,
ITEM ̲COUNT ̲BASE,
ITEM ̲COUNT ̲PT : INTEGER ;
DISPLAY ̲PROCEDURE : INTEGER
"DISPLAY ̲PROCEDURE ̲TYPE";
SAVE ̲I ̲PT ̲BYTE ̲CNT,
ITEM ̲RECORD ̲SIZE
: INTEGER
END ;
CONST
NO ̲OF ̲CONTROL ̲RECORDS ̲PER ̲ENTRY ̲MINUS ̲ONE =
15 ;
TYPE
PRT ̲MMI ̲ENTRY =
RECORD
HEAD : PRT ̲MMI ̲HEAD ̲REC ̲TYPE ;
REC : ARRAY
0..NO ̲OF ̲CONTROL ̲RECORDS ̲PER ̲ENTRY
̲MINUS ̲ONE
OF PRT ̲MMI ̲CTRL ̲REC
END ;
H̲e̲a̲d̲e̲r̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
F̲O̲R̲M̲A̲T̲ ̲I̲D̲ primary key of the entry.
C̲O̲N̲T̲ ̲F̲O̲R̲M̲A̲T̲ ̲I̲D̲ contains the ID of the next table entry
used for processing of current item. If
current entry is the last one, the first
two bytes must be set to 0.
D̲U̲M̲ ̲B̲U̲F̲ ̲C̲ ̲G̲R̲P̲ is not used (from the time where the
VDU's used MMI ̲TABLES).
O̲U̲T̲ ̲B̲U̲F̲ ̲C̲ ̲G̲R̲P̲ used for determining buffer sizes.
F̲I̲E̲L̲D̲ ̲L̲I̲S̲T̲ ̲L̲E̲N̲G̲T̲H̲ specifies the size of the
FIELD ̲LIST buffer in WORDS. One FIELD ̲LIST
̲
ELEMENT uses 3 words. Add always 1 WORD to
the calculated size.
I̲O̲C̲ ̲B̲U̲F̲F̲E̲R̲ ̲L̲E̲N̲G̲T̲H̲ specifies the size in words
of the buffer used for containing IOC ̲RECORD's
that are to be delivered to the PRINTER ̲HANDLER
for output. If BUFFER ̲SHARED is used (i.e.
when the input data consists of IOC ̲RECORD's
that are placed directly after each other with
no gap between them. Therefore they need neither
conversion nor to be moved before output e.g.
the TEXT ̲FIELD of IMF and EMF). BIT ̲15 of the
field must be set. The field must also contain
the number of the CIF ̲BUFFER (index used in
CIF ̲
BUF ̲LEN) that is used as shared buffer.
C̲I̲F̲ ̲B̲U̲F̲ ̲L̲E̲N̲ is an array containing the word
sizes of the CIF ̲BUFFER's. Each CIF ̲BUFFER
is dedicated to one CIF ̲FIELD: The first buffer
is dedicated to CIF ̲FIELD 2 (e.g. IMF ̲SCD field),
the second buffer is dedicated to CIF ̲FIELD
3 (e.g. IMF ̲PLA field) etc. Due to the way
MMS and the current version of PRT works it
is only allowed to use one CIF ̲BUFFER per MMI
TABLE ENTRY.
D̲U̲M̲M̲Y̲ not used.
C̲I̲F̲ ̲A̲C̲C̲E̲S̲S̲ not used.
M̲M̲I̲ ̲R̲E̲C̲ ̲C̲O̲U̲N̲T̲ specifies the number of used CTRL ̲REC's
following the MMI ̲HEAD ̲REC.
C̲o̲n̲t̲r̲o̲l̲ ̲R̲e̲c̲o̲r̲d̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
L̲I̲N̲E̲ ̲G̲R̲O̲U̲P̲ ̲C̲O̲U̲N̲T̲ ̲N̲O̲ is used to specify the
number of fields (Control Records) used in
- and the number of - the Line Group. The upper
byte contains the count (FIELD ̲COUNT must be
set to the same number) and the lower byte
contains the field group number. These values
must be repeated in all control records belonging
to the group. The value of the group number
must be determined from the format files pertinent
to the format in question. If line group repeat
is not actual the field must be set to zero.
L̲I̲N̲E̲ ̲N̲O̲ specifies the line number as specified
by the PRINT FORMAT GENERATOR is the 'P'-file
of the actual format. All lines have fixed
line numbers - even if they are repeatable.
I̲N̲C̲ ̲C̲O̲U̲N̲T̲ specifies the number of times the
current line can be repeated. The number can
be determined from the STATUS or the print
file of the current format. If zero is specified
it means that the number of incarnations is
variable. The line must be repeatabled (groups
are always repeatable) and the process determines
the needed no. of incarnations to be inserted
for each item and inserts them by using PH
̲INSERT ̲LINES or PH ̲INSERT ̲LINE ̲GROUP. This
method is used for FIELD ̲GROUP ̲REPEAT and LINE
̲GROUP ̲REPEAT and zero must be specified for
all the CONTROL ̲RECORDS in the group.
F̲I̲E̲L̲D̲ ̲N̲O̲ is the number of the field on each
line. The number can be determined from the
status or the printfile of the current format.
F̲I̲E̲L̲D̲ ̲C̲O̲U̲N̲T̲ is the number of fields in a group
(both field group and line group). In case
of LINE ̲GROUP ̲REPEAT this field must have the
same value as the upper byte of the LINE ̲GROUP
̲COUNT ̲
NO. For both kinds of groups this field must
have the same value for all CONTROL ̲RECORDS
in the group. If the output field controlled
by this record is not part of a group FIELD
̲COUNT must be set to 1.
F̲I̲E̲L̲D̲ ̲G̲R̲O̲U̲P̲ ̲C̲O̲U̲N̲T̲ is the number of times that
a field group or a field can be repeated on
one line. This again must be in accordance
with the format. If a single unrepeatable field
is in question, 1 must be specified.
F̲I̲E̲L̲D̲ ̲S̲I̲Z̲E̲ serves two purposes:
1. The lower byte specifies the byte size
of the output field excl. IOC header. This
size must be in accordance with the field
size in the format.
2. The upper byte is used when the i̲n̲p̲u̲t̲ data
consists of repeatable records (LINE ̲GROUP
̲
REPEAT or FIELD ̲GROUP ̲REPEAT). If there
is a 'gap' in the usage of input data from
the record(s), the process need to know
the byte
size of this 'gap'. The 'gap' information
is stored as mentioned in the upper byte
of FIELD ̲SIZE in the CONTROL ̲RECORD following
the 'gap'. E.g. if an input record consists
of 6 fields and only field 2 and 5 are
used then the upper byte of FIELD ̲SIZE
in the CONTROL ̲RECORD for field 2 must
contain the item size (byte size) of field
6 and field 1. Correspondingly the CONTROL
̲RECORD for input field 5 must contain the
item size for field 3 and 4. The process
uses the gap information for updating pointers
and offsets after suplemental reading of
input data from CIF or FILE. If input data
does not consist of repeatable records
then the upper byte of FIEDL ̲SIZE is set
to zero.
C̲I̲F̲ ̲F̲I̲E̲L̲D̲ ̲N̲O̲ is a number corresponding to the
buffer used to contain the input data. CIF
̲
FIELD ̲NO can have the following value:
0: The data in question is placed in ADM1
̲BUF which is used for QEL ̲ATTRIBUTES for
QEL ̲
ITEM's, BUFFER data for BUFFER ̲ITEM's,
CIF administration field (normally field
1) for VIEW ̲ITEM's and SYIE ̲TAR ̲ADM for
FILE ̲
ITEMS's.
1-10: The data is placed in CIF ̲BUF 0-9. For
VIEW ̲ITEM's it corresponds to FIELD 2-11
and for FILE ̲ITEM's logical field 1-3.
I̲T̲E̲M̲ ̲S̲I̲Z̲E̲ specifies the byte size of the current
i̲n̲p̲u̲t̲ field. For VARIABLE fields (see ITEM
̲TYPE) the value is set to the maximum size
incl. IOC header. For FIX fields the value
is set to the number of bytes used for conversion
and for output e.g. an RI (Routing Indicator)
- the size of the RI as it is declared is 10
bytes - but only the first 9 are used. Therefore
ITEM ̲SIZE is set to 9 and if repeatable record
is used as input data the 1 byte left over
is added to the upper byte of FIELD ̲SIZE of
the CONTROL ̲RECORD for the next used field
in the record (see FIELD ̲SIZE).
I̲T̲E̲M̲ ̲T̲Y̲P̲E̲ can be FIX or VARIABLE. VARIABLE
data must always be kept in IOC-records while
FIX data can be anything as long as the length
is fixed.
I̲T̲E̲M̲ ̲P̲T̲ ̲B̲A̲S̲E̲ and
D̲A̲T̲A̲ ̲I̲T̲E̲M̲ ̲P̲T̲ are used for determining the offset
from the start of the buffer indicated by CIF
̲FIELD ̲NO to where the first appearence of the
input item (field) is stored.
If ITEM ̲PT ̲BASE is NIL then DATA ̲ITEM ̲PT contains
the offset. If ITEM ̲PT ̲BASE is between 0 and
10 the offset is stored in the appropriate
buffer (same terminology as for CIF ̲
FIEL ̲NO) with an offset specified by DATA ̲ITEM
̲
PT. Values 1-9 are only allowed when both all
input data and the offset can be in the buffer
at the same time.
I̲T̲E̲M̲ ̲C̲O̲U̲N̲T̲ ̲B̲A̲S̲E̲ and
I̲T̲E̲M̲ ̲C̲O̲U̲N̲T̲ ̲P̲T̲ are used for determining the
actual count of a field. If ITEM ̲COUNT ̲BASE
is NIL then ITEM ̲COUNT ̲PT contains the actual
count. If ITEM ̲COUNT ̲BASE is 0 (zero) then
the count is in ADM1 ̲BUF with offset specified
by ITEM ̲COUNT ̲PT. The values 1-9 is only allowed
if ING ̲COUNT is not 0 (fixed no of incarnations)
and the counter can be kept in the buffer together
with all the input data.
The buffer is determined the same way as for
CIF ̲FIELD ̲NO and ITEM ̲COUNT ̲PT specifies the
offset.
D̲I̲S̲P̲L̲A̲Y̲ ̲P̲R̲O̲C̲E̲D̲U̲R̲E̲ specifies which conversion
procedure to be called by EXEC ̲CONV ̲PRC. The
value is taken from the scalar type DISPLAY
̲
PROCEDURE ̲TYPE. When BUFFER ̲SHARED is actual
this field is not used.
S̲A̲V̲E̲ ̲I̲ ̲P̲T̲ ̲B̲Y̲T̲E̲ ̲C̲N̲T̲ must be initiated to zero.
It is not used as a parameter but due to the
fact that the current MMI ̲entry is memory resident
it is used for saving a byte counter during
execution of field group repeats or line group
repeats.
I̲T̲E̲M̲ ̲R̲E̲C̲O̲R̲D̲ ̲S̲I̲Z̲E̲ specifies the record size
in bytes when using repeatable records as input
data. Otherwise the field must be set to zero.
Many of the values used in the control records
have a very close connection with the corresponding
Format e.g. Line Group Numbers, Line Numbers,
Field Numbers, Field Sizes etc. because of
the large redundancy risk it is therefore of
great importance that the MMI Tables are generated
or updated in strict accordance with the formats
(or opposite).
Two restrictions concerning print data organization
shall be mentioned here.
1. All pointers and counters needed to
process an item must be in ADM1 ̲BUF. This
implies for VIEW ̲ITEM's or FILE ̲ITEM's
that either the pointers and counters must
be in the administration field or a special
procedure must be implemented to put them
there (ref. READ ̲VIEW ̲ADM, READ ̲IMF ̲ADM
and SYIE ̲TAB ̲HEAD).
2. Data must be output to the Printer Handler
in the same order as the corresponding
fields appear in the format. Therefore
input data kept in one buffer (except when
all data can be in the buffer at the same
time) and CONTROL ̲RECORDS must be structured
in the same order as the fields in the
format.
A3 R̲E̲S̲P̲O̲N̲S̲E̲ ̲T̲E̲X̲T̲ ̲T̲A̲B̲L̲E̲
The table is a part of OTHER ̲TABLES and is used to
find a REPORT ̲TEXT from an integer. The primary key
is RESPONSE ̲TEXT.NO (INTEGER). The integer received
in a report. (REPORT ̲BUFFER ̲TYPE.TEXT ̲REF) is converted
to primary key using (PRIS ̲RESP ̲OFFSET + 1) as offset.
The REPORT ̲TEXT found is used in report print. The
source file to this table are in PRT.D*PRT ̲RESP ̲TAB.D
named PRT ̲RSP ̲TEXT.S.
APPENDIX B
LOG PRINT
On the figures B1.1-1 to B1.1-4 all the different log
subtypes print layouts are shown with a field reference.
The field reference is listed on figure B1.2.
FIG. B1.1-1
FIG. B1.1-2
FIG. B1.1-3
FIG. B1.1-4
F̲i̲e̲l̲d̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲:
1. Terminal Designator
2. Transaction Serial Number
3. Format Identification
4. Logtime
5. Item Reference Identification
6. Exit Cause
7. Classification
8. Special Handling Category
9. Predefined Message Number
10. Start Time of Transaction
11. Month + Day
12. Decision Code
13. User Identification
14. Problem Code Refer REJECTION ̲CODE ̲TYPE in CPR ̲PREFIX
15. System Print Control Number
16. Special Handling Control Number
17. Channel Designator
18. Message Type
19. Precedence
20. Calling Station
21. Station Serial Number
22. Julian Date
23. SIC's
24. Problem Code Refer RESPONSE ̲TEXT ̲TYPE in CPS ̲PREFIX
25. Expected Transmission Serial Number
For further information about the fields see CPS/210/545/0001
chapter 3.2.5
FIG. B1.2