LINAGE-COUNTER
A separate LINAGE-COUNTER special register is generated for each FD entry that contains a LINAGE clause. When more than one is generated, you must qualify each reference to a LINAGE-COUNTER with its related file-name.
The implicit description of the LINAGE-COUNTER special register is in one of the following cases:
- If the LINAGE clause specifies a data-name, LINAGE-COUNTER has the same PICTURE and USAGE as that data-name.
- If the LINAGE clause specifies an integer, LINAGE-COUNTER is a binary item with the same number of digits as that integer.
For more information, see LINAGE clause.
The value in LINAGE-COUNTER at any given time is the line number at which the device is positioned within the current page. LINAGE-COUNTER can be referred to in PROCEDURE DIVISION statements; it must not be modified by them.
LINAGE-COUNTER is initialized to 1 when an OPEN statement for its associated file is executed.
LINAGE-COUNTER is automatically modified by any WRITE statement for this file. (See WRITE statement.)
If the file description entry for a sequential file contains the LINAGE clause and the EXTERNAL clause, the LINAGE-COUNTER data item is an external data item. If the file description entry for a sequential file contains the LINAGE clause and the GLOBAL clause, the LINAGE-COUNTER data item is a global data item.
You can specify the LINAGE-COUNTER special register wherever an integer argument to a function is allowed.