If the structure operand value *MODULE(NAME=modulename) is specified in the GROUP-HEADER or GROUP-TRAILER operand of the SET-GROUP-ATTRIBUTES statement, PERCON branches to the user module specified by “modulename” in the event of a group break for this level. In this routine the user can generate a group leader or group trailer line and a printer feed control character. If the line which had previously been edited by
PERCON has not yet been output (using *SPACING or *NEW-PAGE), this line is made available to the user. If the header or trailer line had not been set before the user module was called, it contains space characters (X’40’).
Register 1 indicates the following address list:
A(parameter area) A(print line) X'80000000'
A description of the structure of the parameter area is provided on "Common parameter area for the interfaces ".
The following values are entered in the parameter area:
Identifier of the interface: X'0C' |
Additional | Meaning |
X'00' | Group leader |
X'04' | Group trailer |
The user transfers information to PERCON via the return code of the parameter area.
Return code | Meaning |
X'00' | Print out print line. |
X'04' | Do not branch back to user module. |
X'08' | Terminate output to this printer file. |
The print line transferred by PERCON comprises 205 characters, the first of which is a printer feed control character while the remaining 204 are the data characters of the header or trailer line. If the printer control character is set by the user module, it must be transferred
as an EBCDIC control character, regardless of the format specified in the PRINT-
CONTROL operand of the ADD-FILE-LINK statement. The meanings of the individual bits of the EBCDIC control characters are given below.
The maximum length of a group break line is the product of the line leader (see the SET-PAGE-LAYOUT statement, "SET-PAGE-LAYOUT ") and the COLUMN-SIZE, LINE-SIZE and OUTPUT-FORMAT operands of the SET-PAGE-LAYOUT statement. Data extending beyond this length is not transferred.
EBCDIC control characters
The individual bytes have the following meanings:
Line feed:
Before | After | printing |
Byte | Byte | Number of lines |
X'40' | X'00' * | No line feed |
X'41' | X'01' | 1 line |
X'42' | X'02' | 2 lines |
X'43' | X'03' | 3 lines |
. | . | . |
. | . | . |
. | . | . |
X'4F' | X'0F' | 15 lines |
*
Control byte X’00’ can suppress the line feed once only.
This overview does not take account of the line which is advanced automatically.
Channel feed:
Before | After | printing |
Byte | Byte | Feed to channel |
X'C0' | X'80' | Not permitted |
X'C1' | X'81' | 1 |
X'C2' | X'82' | 2 |
X'C3' | X'83' | 3 |
. | . | . |
. | . | . |
. | . | . |
X'C8' | X'88' | 8 |
X'CA' | X'8A' | 10 |
X'CB' | X'8B' | 11 |