When used, the func_arg_1 argument describes carriage-control
information for the input data record, and the func_arg_2
argument describes carriage-control information for the output
data record.
The input data record is passed to the format routine (input
filter or output filter) for processing, and the output data
record is returned by the format routine (input filter or output
filter).
One of the tasks performed by the main format routine (routine
code PSM$K_MAIN_FORMAT) is that of embedding the carriage-control
information (specified by func_arg_1) into the data record
(specified by func_desc_1). Thus, the output data (specified
by func_desc_2) contains embedded carriage control and is thus no
longer in record format; it is, therefore, properly referred to
as an output data stream rather than an output data record.
Similarly, the output filter routine (routine code PSM$K_OUTPUT_
FILTER), which executes after the main format routine, uses
neither the func_arg_1 nor func_arg_2 argument; the data it
receives (via func_desc_1) and the data it returns (via func_
desc_2) are data streams, not data records.
However, the input filter routine (routine code PSM$K_INPUT_
FILTER), which executes before the main format routine, uses
both func_arg_1 and func_arg_2. This is so because the main
format routine has not yet executed, and so the carriage control
information has not yet been embedded in the data record.