LFCB (Load Forms Control Buffer) Macro

The macro can be used to load the forms control buffer (FCB) of a printer dynamically.

This printer must not be an IBM® 3800; the macro is ignored for an IBM 3800. An FCB whose contents have been changed with this macro retains the changed contents until one of the following occurs:
  • Another LFCB macro is issued for the printer.
  • An LFCB command is issued for the printer.
  • The SYSBUFLD program is executed to reload the printer 's FCB.
  • IPL is performed for the system.

The macro, when executed, generates messages to request operator action (such as changing forms), whenever manual action is required. It informs the operator that the FCB of the specified printer has been reloaded.

If the FCB image to be loaded is to control horizontal copying on an IBM 4248, processing the macro turns on the function. Horizontal copying is turned off again when one of the following occurs:
  • Your program issues a CNTRL macro that specifies ORDER,DHC.
  • Your program issues a CLOSE (or CLOSER) macro for the printer file.
  • The system initiates an automatic close for the printer file at the end of the job step.
  • The logical unit SYSLST is assigned to the printer for which your program issues the LFCB macro.

Format

Read syntax diagramSkip visual syntax diagramnameLFCB SYSxxx, phasename,NULMSG,FORMS= xxxx,LPI= n

Requirements for the caller

AMODE:
24
RMODE:
24
ASC Mode:
Primary

Parameters

SYSxxx
The name of the logical unit that is associated with the printer whose FCB is to be loaded. You can specify one of the following:
SYSLST
 
SYSLOG
If assigned to the printer; the results of the initiated FCB load operation are unpredictable.
SYSnnn
A programmer logical unit that is assigned to a printer owned by the partition in which the program runs.
phasename
The name by which the phase that contains the applicable FCB image is cataloged in the accessible sublibrary. For information about the contents and format of an FCB image, refer to Using Commands.
NULMSG
This operand specifies that the 80-character verification message, which is normally printed following the FCB load operation, is to be suppressed. This operand, if given, causes the system to continue normal processing immediately after the FCB load operation has been completed. The operator cannot verify that the proper forms are placed on the printer.
If you omit the operand, the system:
  1. Prints the last 80 characters of the phase that is identified by phasename.
  2. Positions the printer to the first printable line on the forms.
FORMS=xxxx
This operand specifies the type of forms to be used on the printer whose FCB is being reloaded. For xxxx, a string of up to four alphanumeric characters can be specified. The specified form number is included in a message to the operator.
LPI=n
The operand specifies the wanted number of lines per inch. For n, you can specify either 6 or 8.

Do not specify this operand if the number of lines per inch is controlled by the FCB. If you code this operand for such a printer, and the specified number disagrees with the lines-per-inch setting in the new buffer image, the system does not perform the FCB load operation.

When issued for a non-FCB controlled printer, the macro causes the operand to be included in a message to the operator.

Return Codes in Register 15

Successful completion of the FCB load operation is indicated to your program by a return code of 0. If the operation fails, register 15 contains one of the return codes that are listed below; in this case the FCB retains its original contents.
Note: For an IBM 3800, register 15 contains 0, although the macro was not executed.
The return codes and their meanings are:
X'04'
For the printer, the number of lines per inch is controlled by the FCB. The LPI operand that is specified in the macro disagrees with lines-per-inch setting in the FCB image.
X'08'
No LUB is available for the specified logical unit.
X'0C'
The specified logical unit has not been assigned or is assigned IGN (ignore), or it is currently unassigned.
X'10'
The specified logical unit is assigned to a device without an FCB.
X'14'
The printer that is assigned to the specified logical unit is down.
X'18'
The specified FCB image phase has not been found.
X'1C'
The specified FCB image phase for the printer that is assigned to the specified logical unit is invalid or has an incorrect length or incorrect index byte, or the FCB data is out of range, or channel 1 is missing.

By testing register 15, you can determine in your program whether the operation has failed. If the operation has failed, you can either terminate the job step or continue processing. Should you decide to continue processing, then the system bypasses the execution of the LFCB macro.