z/OS DFSMSdfp Advanced Services
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Adding an FCB Image to the Image Library

z/OS DFSMSdfp Advanced Services
SC23-6861-01

You can add a 3211-format FCB image to those that reside in SYS1.IMAGELIB, using the assembler and linkage editor. No executable code is generated; the assembler prepares DCs, and the linkage editor links them into SYS1.IMAGELIB. The new FCB image must be structured according to the following rules:

  1. The member name cannot exceed 8 bytes and must begin with the prefix FCB2. The characters that follow identify the FCB image and are referred to as the image identifier (ID). Any combination of valid assembler language characters can be used, with the exception of a single 'C' or 'U', because these are used by the system to recognize special conditions. To load the image into the FCB buffer, the image identifier must be specified in the FCB keyword of a DD statement or in the SETPRT macro.
  2. The first byte of the FCB load module specifies whether the image is the default. (Default images are used by the system for jobs that do not request a specific image.) Specify the following in the first byte:
    Value Meaning
    X'80' Indicates a default image
    X'00' Indicates a nondefault image
  3. The second byte of the load module indicates the number of bytes to be transferred to the control unit to load the FCB image. This count includes the byte, if used, for the print position indexing feature.
  4. The third byte of the load module (the first byte of the FCB image) is either the print position indexing byte, or the lines-per-inch byte. The print position indexing byte is optional and, when used, precedes the lines-per-inch byte. The 3203 Model 5, 3262 Model 5, 4245, 4248, and 6262 Model 14 printers accept and discard the index byte if it is present, because they do not support the indexing feature. A description of the print position indexing feature and its use can be found in the publication IBM 3211 Printer, 3216 Interchangeable Train Cartridge, and 3811 Printer Control Unit Component Description and Operator's Guide.

    The special index flag in the third byte contains X'80' plus a binary index value, from 1 to 32 (the default is 1). This index value sets the left margin: 1 indicates flush-left; any other value indicates a line indented the specified number of spaces.

    The form image begins with the lines-per-inch (LPI) byte. The LPI byte defines the number of lines per inch (6 or 8) and also represents the first line of the page.

    Requirement: Printers controlled by JES2 require a channel 1 identifier here.

    Typically, the length of an FCB image is consistent with the length of the form it represents. For example, an 8½ inch form to be printed at 6 LPI has an FCB image that is 51 bytes long (8½ inches times 6 LPI).

    The LPI byte appears as follows:
    Value Meaning
    X'1n' Sets 8 LPI
    X'0n' Sets 6 LPI
  5. All remaining bytes (lines) must contain X'0n', except the last byte, which must be X'1n'. The letter n can be a hexadecimal value from 1 to C, representing a channel (one to 12), or it can be 0, which means no channel is indicated.

In Figure 1, an FCB load module is assembled and added to SYS1.IMAGELIB. The image defines a print density of 8 lines per inch on an 11-inch form, with a right shift of 15 line character positions (1½ inches).

Figure 1. Sample Code to Assemble and Add an FCB Load Module to SYS1.IMAGELIB
//ADDFCB  JOB   MSGLEVEL=1
//STEP    EXEC  PROC=ASMHCL,PARM.ASM='NODECK,LOAD',
//              PARM.LKED='LIST,OL,REFR,RENT,XREF'
//ASM.SYSIN DD  *
FCB2ID1   CSECT
*THIS EXAMPLE IS FOR A FORM LENGTH OF 11 INCHES WITH 8 LPI (88 LINES)
          DC    X'80'     THIS IS A DEFAULT IMAGE
          DC    AL1(89)   LENGTH OF FCB IMAGE AND INDEXING BYTE
          DC    X'8F'     OFFSET 15 CHARACTERS TO THE RIGHT
          DC    X'10'     8 LINES PER INCH-NO CHANNEL FOR LINE 1
          DC    XL4'0'    4 LINES NO CHANNEL
          DC    X'01'     CHANNEL 1 IN LINE 6
          DC    XL6'0'    6 LINES NO CHANNEL
          DC    X'02'     CHANNEL 2 IN LINE 13
          DC    XL6'0'    6 LINES NO CHANNEL
          DC    X'03'     CHANNEL 3 IN LINE 20
          DC    XL6'0'    6 LINES NO CHANNEL
          DC    X'04'     CHANNEL 4 IN LINE 27
          DC    XL6'0'    6 LINES NO CHANNEL
          DC    X'05'     CHANNEL 5 IN LINE 34
          DC    XL6'0'    6 LINES NO CHANNEL
          DC    X'06'     CHANNEL 6 IN LINE 41
          DC    XL6'0'    6 LINES NO CHANNEL
          DC    X'07'     CHANNEL 7 IN LINE 48
          DC    XL6'0'    6 LINES NO CHANNEL
          DC    X'08'     CHANNEL 8 IN LINE 55
          DC    XL6'0'    6 LINES NO CHANNEL
          DC    X'09'     CHANNEL 9 IN LINE 62
          DC    XL6'0'    6 LINES NO CHANNEL
          DC    X'0A'     CHANNEL 10 IN LINE 69
          DC    XL6'0'    6 LINES NO CHANNEL
          DC    X'0B'     CHANNEL 11 IN LINE 76
          DC    XL6'0'    6 LINES NO CHANNEL
          DC    X'0C'     CHANNEL 12 IN LINE 83
          DC    XL4'0'    4 LINES NO CHANNEL
          DC    X'10'     POSITION 88 LAST LINE IN IMAGE
          END
/*
//LKED.SYSLMOD DD DSNAME=SYS1.IMAGELIB(FCB2ID1),DISP=OLD,
//              SPACE=    (OVERRIDE SECONDARY ALLOCATION)
For Figure 1, be aware of the following:
  • The RENT linkage editor attribute is required.
  • Executing the ASMHCL procedure does not generate executable code. The assembler/linkage editor is used to place the FCB image into SYS1.IMAGELIB.
  • The SPACE parameter is overridden here because the ASMHCL cataloged procedure has a secondary allocation specified. Eliminating the override causes the original secondary allocation amount to be used.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014