When and How to create FCB's for use with CA Spool.

Document ID : KB000054834
Last Modified Date : 14/02/2018
Show Technical Document Details


CA Spool uses FCB's to determine page length, channel skips and lines per inch for all files that have a Carriage Control attribute of A or M. For files without a carriage control attribute, NOCC files, line count can be used to control page size. CA Spool also provides an FCB extension that enables CPI (Characters per inch) and MPP (Max Print Position) to be used when formatting print files for VTAM SCS supported printers and IP printers using print drivers PCL5/PJL4/PJL5 with print driver option F or H and the text wrappers.

  • CA Spool defaults to 6 for assigned FCB for all files, which is defined in the CAIQPARM member on statement DEFFCB=6
  • See Chapter 1, in the Customization Guide under FCB Considerations.
  • See IBM MVS System Programming Library Data Management and MVS/XA Data Administration Guide for info on the format of an FCB.


Modify and run the following sample assembler job to create a new FCB.

  • This sample will create an FCB called FCB240 with 8 lines per inch and 40 lines per page.
    //JOBCARD .....//ASM      EXEC PGM=ASMA90,REGION=6M,  // PARM='USING(NOWARN),XREF(SHORT)'   //SYSLIB   DD  DSN=ESF.R11.CAIMAC,DISP=SHR //         DD  DSN=SYS1.MACLIB,DISP=SHR           //         DD  DSN=SYS1.AMODGEN,DISP=SHR          //SYSIN  DD *                                                         ********************************************************************   THIS FCB WILL BE CALLED 40 WITH 8 LINES PER INCH,             **   40 LINES PER PAGE and CHANNEL ONE SKIP GOES TO LINE ONE       ********************************************************************         $FCB  40,8,40,(1,1)                                                   END                                                          /*                                                                    //SYSTERM  DD  SYSOUT=*                                               //SYSUT1   DD  SPACE=(CYL,(10,5)),UNIT=SYSDA,BUFNO=10                 //SYSPUNCH DD  DUMMY                                                  //SYSPRINT DD  SYSOUT=*                                               //SYSLIN   DD  DSN=&&OBJ,SPACE=(3040,(40,40),,,ROUND), //         UNIT=VIO,DISP=(MOD,PASS),                                       //         DCB=(BLKSIZE=6240,LRECL=80,RECFM=FB,BUFNO=10)          //LKED     EXEC PGM=IEWL,PARM='MAP,LET,LIST,NCAL,RENT'                 //SYSLIN   DD  DSN=&&OBJ,DISP=(OLD,DELETE)                            //         DD  DDNAME=SYSIN                                           //SYSLMOD  DD  DSN=YOUR.IMAGELIB(FCB240),DISP=SHR                     //SYSUT1   DD  UNIT=SYSDA,SPACE=(CYL,(3,2))                           //SYSPRINT DD  SYSOUT=*                                               //SYSIN DD *                                                           NAME FCB240(R)                                                       /*                                                                    //

  • If you want to specify a specific CPI and or MPP then use the following SYSIN data in above job.

  • Note that the FCB has changed from $FCB to $IQFCB.
                   $IQFCB 40,8,40,(1,1)                                          ESFFCBEX DS    0D                                                                DC    CL8'ESFEXT'      IDENTIFIER                                       DC    AL2(132)         MPP                                              DC    AL1(0)           PPM-Q PRINT QUALITY                              DC    AL1(15)          CPI                                              DC    XL1'00'          PPM0 DRAWER # FOR SEP PGS                 DC    XL1'00'          PPM1 DRAWER # FOR 1ST PG                  DC    XL1'00'          PPM2 DRAWER # FOR 2ND PG                  DC    XL1'00'          PPM3 DRAWER # FOR REMAING PGS               END        

  • Once you have a working FCB image module created and it is accessible to CA Spool(see IMAGELIB DD in ESFPROC), insure you assign this new FCB to your desired files via the JCL OUTPUT statement or a DESTID in CAIQPARM or as NODE parameter in CAIQPARM. When specifying as NODE parameter you may want to consider also adding USEFCB=PRINTER in CAIQPARM. USEFCB=PRINTER node parameter is used to direct the printer to only use the FCB assigned to the printer and not use what may be specified on the file. The default if not specified is USEFCB=FILE. This insures that you use the correct FCB desired in this scenario.
                   JCL OUTPUT Example:               //OUTX     OUTPUT DEST=PRT1,FCB=40               //SYSUT2  DD SYSOUT=A,OUTPUT=*.OUTX