Previous Topic: Online Label InterfaceNext Topic: Accessing User Data


Processing Steps

The CTS procedure provided with this version uses member TLMSLBLS in CAI.CTAPEARL to create labels. The following example shows the code contained in the TLMSLBLS member with a discussion of the various sections. If modification of this is required to customize labels for your site, you can modify this code or make a copy for modification. Verify that the LBL parameter in the CTS procedure points to the name of the member that you wish to use.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!  SAMPLE OUTPUT LABELS FOR REELS AND CARTRIDGES                 !
!                                                                !
!  THE FOLLOWING FORMATS ARE BEING PRODUCED IN THIS SAMPLE:      !
!                                                                !
!  REELS:                                                        !
!     ....+....1....+....2....+....3....+....4....+              !
!                                                                !
!  1  DSN.........................................               !
!  2  JOBNAME. STEPNAME HH&COLON.MM&COLON.SS YYDDD UUUU DEN.     !
!  3  CPU. LRECL BLKSI. RFM. BLKCNT.... ERG FSN...               !
!  4  VOLSER # VLSQ/VCNT T X       JOBACT.....                   !
!                                                                !
!  CARTS:                                                        !
!     ....+....1....+....2....+....                              !
!                                                                !
!  1  DSN......................                                  !
!  2   DSN2............... JOBNAME.                              !
!  3   VOLSER STEPNAME HH&COLON.MM&COLON.SS                      !
!  4   YYDDD UUUU DEN. X                                         !
!  5   LRECL BLKSI. RFM. VSEQ/VCNT                               !
!  6   BLKCNT.... FSN... # T ERG.                                !
!  7   JOBACCT.....   CPU.                                       !
!                                                                !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 COPY LABELDEF    2
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!  OUTPUT LABEL IMAGE  10 ROWS BY 80 COLUMNS              !   3
!                                                         !
!  "ROWS" DEFINE THE NUMBER OF LINES IN EACH LABEL FROM   !
!  THE FIRST LINE OF ONE LABEL TO THE FIRST LINE IN THE   !
!  NEXT LABEL.                                            !
!                                                         !
!  "COLUMNS" DEFINE THE NUMBER OF CHARACTERS IN EACH ROW. !
!                                                         !
!  "LINE" DEFINES THE INDIVIDUAL ROW IN THE ARRAY.        !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 DEF OUTPUT_LABEL (X 802) = ' ' 'OUTPUT' 'LABEL'   4

 DEF ROWS           = OUTPUT_LABEL  001-001 B 'ROWS'
 DEF COLUMNS        = OUTPUT_LABEL  002-002 B 'COLUMNS'
 DEF LINE  ARRAY 10 = OUTPUT_LABEL  003-082 X      5

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! THE FOLLOWING ARE ALTERED PRINT FIELDS.                             !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 DEF ACCT_P           = ACCT            001-012 X  6
 DEF LABEL_P          = LABEL_TYPE      001-001 X
 DEF DSN_P1           = DSN             001-025 X
 DEF DSN_P2           = DSN             026-044 X
 DEF F_CTIME (N 6.0)  = NONE
 DEF F_CTIME_HH       = F_CTIME         001-002 N
 DEF F_CTIME_MM       = F_CTIME         003-004 N
 DEF F_CTIME_SS       = F_CTIME         005-006 N
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!  WORK LINES FOR LABEL REEL IMAGE - 80 COLUMNS WIDE !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 DEF WORK_LINE (X 80) = ' '

 DEF REEL01_DSN     = WORK_LINE     001-044 X      7

 DEF REEL02_CJOB    = WORK_LINE     001-008 X
 DEF REEL02_CSTEP   = WORK_LINE     010-017 X
 DEF REEL02_CTIMEHH = WORK_LINE     019-020 N
 DEF REEL02_CTIMED1 = WORK_LINE     021-021 X
 DEF REEL02_CTIMEMM = WORK_LINE     022-023 N
 DEF REEL02_CTIMED2 = WORK_LINE     024-024 X
 DEF REEL02_CTIMESS = WORK_LINE     025-026 N
 DEF REEL02_CDATE   = WORK_LINE     029-033 N
 DEF REEL02_CUNIT   = WORK_LINE     035-038 X
 DEF REEL02_DEN     = WORK_LINE     040-043 X

 DEF REEL03_CPUID   = WORK_LINE     001-004 X
 DEF REEL03_LRECL   = WORK_LINE     006-010 N
 DEF REEL03_BLKSIZE = WORK_LINE     012-017 N
 DEF REEL03_RECFM   = WORK_LINE     019-022 X
 DEF REEL03_BLKCNT  = WORK_LINE     024-033 N
 DEF REEL03_ERG     = WORK_LINE     035-037 N
 DEF REEL03_FILESEQ = WORK_LINE     039-043 N

 DEF REEL04_VOLSER  = WORK_LINE     001-006 X
 DEF REEL04_FORGN   = WORK_LINE     008-008 X
 DEF REEL04_VOLSEQ  = WORK_LINE     010-013 N
 DEF REEL04_VOLCNT  = WORK_LINE     015-017 N
 DEF REEL04_LABEL   = WORK_LINE     019-019 X
 DEF REEL04_TRTCH   = WORK_LINE     021-024 X
 DEF REEL04_ACCT    = WORK_LINE     029-040 X
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!  WORK LINES FOR LABEL CART IMAGE - 80 COLUMNS WIDE !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


 DEF CART01_DSN     = WORK_LINE     001-025 X

 DEF CART02_DSN2    = WORK_LINE     002-020 X
 DEF CART02_CJOB    = WORK_LINE     022-029 X

 DEF CART03_VOLSER  = WORK_LINE     002-007 X
 DEF CART03_CSTEP   = WORK_LINE     009-016 X
 DEF CART03_CTIMEHH = WORK_LINE     019-020 N
 DEF CART03_CTIMED1 = WORK_LINE     021-021 X
 DEF CART03_CTIMEMM = WORK_LINE     022-023 N
 DEF CART03_CTIMED2 = WORK_LINE     024-024 X
 DEF CART03_CTIMESS = WORK_LINE     025-026 N

 DEF CART04_CDATE   = WORK_LINE     002-006 N
 DEF CART04_CUNIT   = WORK_LINE     008-011 X
 DEF CART04_DEN     = WORK_LINE     013-016 X
 DEF CART04_TRTCH   = WORK_LINE     018-021 X

 DEF CART05_LRECL   = WORK_LINE     002-006 N
 DEF CART05_BLKSIZE = WORK_LINE     008-013 N
 DEF CART05_RECFM   = WORK_LINE     015-018 X
 DEF CART05_VOLSEQ  = WORK_LINE     020-023 N
 DEF CART05_VOLCNT  = WORK_LINE     025-028 N

 DEF CART06_BLKCNT  = WORK_LINE     002-011 N
 DEF CART06_FILESEQ = WORK_LINE     013-017 N
 DEF CART06_FORGN   = WORK_LINE     020-020 X
 DEF CART06_LABEL   = WORK_LINE     022-022 X
 DEF CART06_ERG     = WORK_LINE     024-027 N

 DEF CART07_ACCT    = WORK_LINE     002-013 X
 DEF CART07_CPUID   = WORK_LINE     018-021 X
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! THE FOLLOWING ROUTINE WILL GENERATE AND PRINT 10 CART SETUP LABELS  !
! USING THE DEFAULT OUTPUT IF THE VALUE IN 'SETUP_REQUESTED' = 'Y'.   !8
! IF REEL SETUP LABELS ARE PREFERRED, CHANGE THE VALUE IN THE         !
! 'SETUP_TYPE' FIELD TO 'REEL'.                                       !
! IF MORE THAN 10 SETUP LABELS ARE DESIRED, CHANGE THE VALUE IN THE   !
! 'SETUP_MAXIMUM' FIELD TO THE DESIRED VALUE.                         !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 DEF SETUP_REQUESTED      (X 1)   = 'Y'
!DEF SETUP_TYPE           (X 4)   = 'CART'
!DEF SETUP_TYPE           (X 4)   = 'REEL'
 DEF SETUP_TYPE           (X 4)   = 'BOTH'
 DEF SETUP_COUNT          (P 2.0) = 0
 DEF SETUP_MAXIMUM        (P 2.0) = 10
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! PRINT SETUP LABELS                                                  !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 IF SETUP_REQUESTED  = 'Y'
     SET SETUP_REQUESTED = 'N'                       9
     IF SETUP_TYPE = 'REEL' OR SETUP_TYPE = 'BOTH'
        SET SETUP_COUNT = 0
        PERFORM SETUP_REEL
     ENDIF
     IF SETUP_TYPE = 'CART' OR SETUP_TYPE = 'BOTH'
        SET SETUP_COUNT = 0
        PERFORM SETUP_CART
     ENDIF
 ENDIF
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! THE FOLLOWING STATEMENTS READ THE NEXT INPUT RECORD                 !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
GETTAG:                                           10
 GET TAPEDB
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! IF END-OF-FILE IS REACHED - CALL CTSLBLOT TO CLOSE ALL FILES        !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 IF TAPEDB = 'E'
    SET REQUEST = 'C'                             11
    CALL CTSLBLOT USING LABEL_RECORD COMM_AREA
    GOTO EOJ
 ENDIF
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! IF A SPINOFF REQUEST WAS ENTERED - CALL CTSLBLOT WITH THE REQUEST   !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 IF REQUEST = 'S'                                 
    CALL CTSLBLOT USING LABEL_RECORD COMM_AREA    12
    GOTO GETTAG
 ENDIF

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!>>>>>>   B Y P A S S   O R    C H A N G E   L A B E L          <<<<<<!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!  REQUEST = 'L'    CONTAINS PREFORMATTED DATA     
!  REQUEST = 'V'    CONTAINS DATABASE RECORD
!  REQUEST = 'D'    CONTAINS DATABASE RECORD    13
!                   IGNORE ALL OTHER TYPES
!====>  USER CODE GOES HERE

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! IF A LABEL IMAGE IS READ - CALL CTSLBLOT TO PRINT THE LABEL IMAGE   !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 IF REQUEST = 'L'
    PERFORM SELECT_IMAGE_OUTPUT
    CALL CTSLBLOT USING LABEL_RECORD COMM_AREA
    GOTO GETTAG
 ENDIF
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! IF A VOLUME OR DATA RECORD IS READ AND IT CONTAINS A CARTRIDGE      !
! DENSITY, FORMAT A LABEL IMAGE FOR CARTRIDGES.                       !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 IF REQUEST = 'V' OR REQUEST = 'D'
    IF DEN = '38K' OR DEN = '38KC' OR DEN = 'CART' OR DEN = 'IDRC'
       OR '3590'
       PERFORM SELECT_CART_OUTPUT
       PERFORM CART_LABEL
    ELSE
       PERFORM SELECT_REEL_OUTPUT
       PERFORM REEL_LABEL
    ENDIF
    GOTO GETTAG
 ENDIF

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!>>>>>>>>>>>>>>>>>>> END OF MAIN LINE CODE <<<<<<<<<<<<<<<<<<<<<<<<<<<!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 GOTO GETTAG
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!      FORMAT AND OUTPUT A CART TYPE LABEL                            !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 CART_LABEL: PROC

    SET OUTPUT_LABEL   = ' '                     14
    SET ROWS           = 10
    SET COLUMNS        = 80
    SET WORK_LINE      = ' '
    SET CART01_DSN     = DSN_P1
    SET LINE(/1/)      = WORK_LINE

    SET WORK_LINE      = ' '
    SET CART02_DSN2    = DSN_P2
    SET CART02_CJOB    = CJOB
    SET LINE(/2/)      = WORK_LINE

    SET WORK_LINE      = ' '
    SET CART03_VOLSER  = VOLSER
    SET CART03_CSTEP   = CSTEP
    SET F_CTIME        = CTIME
    SET CART03_CTIMEHH = F_CTIME_HH
    SET CART03_CTIMED1 = ':'
    SET CART03_CTIMEMM = F_CTIME_MM
    SET CART03_CTIMED2 = ':'
    SET CART03_CTIMESS = F_CTIME_SS
    SET LINE(/3/)      = WORK_LINE

    SET WORK_LINE      = ' '
    SET CART04_CDATE   = CDATE
    SET CART04_CUNIT   = CUNIT
    SET CART04_DEN     = DEN
    SET CART04_TRTCH   = TRTCH
    SET LINE(/4/)      = WORK_LINE

    SET WORK_LINE      = ' '
    SET CART05_LRECL   = LRECL
    SET CART05_BLKSIZE = BLKSIZE
    SET CART05_RECFM   = RECFM
    SET CART05_VOLSEQ  = VOLSEQ
    SET CART05_VOLCNT  = VOLUME_COUNT
    SET LINE(/5/)      = WORK_LINE

    SET WORK_LINE      = ' '
    SET CART06_BLKCNT  = BLKCNT
    SET CART06_FILESEQ = FILESEQ
    SET CART06_FORGN   = SCRATCH_SOURCE
    SET CART06_LABEL   = LABEL_P
    SET CART06_ERG     = PERM_WRITE_CLEAN
    SET LINE(/6/)      = WORK_LINE
    SET WORK_LINE      = ' '
    SET CART07_ACCT    = ACCT_P
    SET CART07_CPUID   = CPUID
    SET LINE(/7/)      = WORK_LINE

    PERFORM LABEL_OUT
 ENDPROC

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!      FORMAT AND OUTPUT A REEL TYPE LABEL                            !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 REEL_LABEL: PROC                         

    SET OUTPUT_LABEL   = ' '		15
    SET ROWS           = 10
    SET COLUMNS        = 80

    SET WORK_LINE      = ' '
    SET REEL01_DSN     = DSN
    SET LINE(/1/)      = WORK_LINE

    SET WORK_LINE      = ' '
    SET REEL02_CJOB    = CJOB
    SET REEL02_CSTEP   = CSTEP
    SET F_CTIME        = CTIME
    SET REEL02_CTIMEHH = F_CTIME_HH
    SET REEL02_CTIMED1 = ':'
    SET REEL02_CTIMEMM = F_CTIME_MM
    SET REEL02_CTIMED2 = ':'
    SET REEL02_CTIMESS = F_CTIME_SS
    SET REEL02_CDATE   = CDATE
    SET REEL02_CUNIT   = CUNIT
    SET REEL02_DEN     = DEN
    SET LINE(/2/)      = WORK_LINE

    SET WORK_LINE      = ' '
    SET REEL03_CPUID   = CPUID
    SET REEL03_LRECL   = LRECL
    SET REEL03_BLKSIZE = BLKSIZE
    SET REEL03_RECFM   = RECFM
    SET REEL03_BLKCNT  = BLKCNT
    SET REEL03_ERG     = PERM_WRITE_CLEAN
    SET REEL03_FILESEQ = FILESEQ
    SET LINE(/3/)      = WORK_LINE

    SET WORK_LINE      = ' '
    SET REEL04_VOLSER  = VOLSER
    SET REEL04_FORGN   = SCRATCH_SOURCE
    SET REEL04_VOLSEQ  = VOLSEQ
    SET REEL04_VOLCNT  = VOLUME_COUNT
    SET REEL04_LABEL   = LABEL_P
    SET REEL04_TRTCH   = TRTCH
    SET REEL04_ACCT    = ACCT_P
    SET LINE(/4/)      = WORK_LINE

    PERFORM LABEL_OUT

ENDPROC

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!      FORMAT AND OUTPUT CART TYPE SETUP LABELS                       !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 SETUP_CART: PROC                           16
    PERFORM SELECT_CART_OUTPUT

    SET OUTPUT_LABEL   = ' '
    SET ROWS           = 10
    SET COLUMNS        = 80

    SET WORK_LINE      = ' '
    SET CART01_DSN     = 'XXXXXXXXXXXXXXXXXXXXXXXXX'
    SET LINE(/1/)      = WORK_LINE

    SET WORK_LINE      = ' '
    SET CART02_DSN2    = 'XXXXXXXXXXXXXXXXXXX'
    SET CART02_CJOB    = 'XXXXXXXX'
    SET LINE(/2/)      = WORK_LINE

    SET WORK_LINE      = ' '
    SET CART03_VOLSER  = 'XXXXXX'
    SET CART03_CSTEP   = 'XXXXXXXX'
    SET CART03_CTIMEHH = 99
    SET CART03_CTIMED1 = ':'
    SET CART03_CTIMEMM = 99
    SET CART03_CTIMED2 = ':'
    SET CART03_CTIMESS = 99
    SET LINE(/3/)      = WORK_LINE

    SET WORK_LINE      = ' '
    SET CART04_CDATE   = 99999
    SET CART04_CUNIT   = 'XXXX'
    SET CART04_DEN     = 'XXXX'
    SET CART04_TRTCH   = 'XXXX'
    SET LINE(/4/)      = WORK_LINE

    SET WORK_LINE      = ' '
    SET CART05_LRECL   = 99999
    SET CART05_BLKSIZE = 999999
    SET CART05_RECFM   = 'XXXX'
    SET CART05_VOLSEQ  = 9999
    SET CART05_VOLCNT  = 999
    SET LINE(/5/)      = WORK_LINE

    SET WORK_LINE      = ' '
    SET CART06_BLKCNT  = 9999999999
    SET CART06_FILESEQ = 99999
    SET CART06_FORGN   = 'X'
    SET CART06_LABEL   = 'X'
    SET CART06_ERG     = 999
    SET LINE(/6/)      = WORK_LINE
    SET WORK_LINE      = ' '
    SET CART07_ACCT    = 'XXXXXXXXXXXX'
    SET CART07_CPUID   = 'XXXX'
    SET LINE(/7/)      = WORK_LINE

 SETUP_CART_LOOP:                            17
    PERFORM LABEL_OUT

    SET SETUP_COUNT = SETUP_COUNT + 1

    IF SETUP_COUNT < SETUP_MAXIMUM
       GOTO SETUP_CART_LOOP
    ENDIF
ENDPROC
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!      FORMAT AND OUTPUT REEL TYPE SETUP LABELS                       !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

SETUP_REEL: PROC
    PERFORM SELECT_REEL_OUTPUT           18

    SET OUTPUT_LABEL   = ' '
    SET ROWS           = 10
    SET COLUMNS        = 80

    SET WORK_LINE      = ' '
    SET REEL01_DSN     = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
    SET LINE(/1/)      = WORK_LINE

    SET WORK_LINE      = ' '
    SET REEL02_CJOB    = 'XXXXXXXX'
    SET REEL02_CSTEP   = 'XXXXXXXX'
    SET REEL02_CTIMEHH = 99
    SET REEL02_CTIMED1 = ':'
    SET REEL02_CTIMEMM = 99
    SET REEL02_CTIMED2 = ':'
    SET REEL02_CTIMESS = 99
    SET REEL02_CDATE   = 99999
    SET REEL02_CUNIT   = 'XXXX'
    SET REEL02_DEN     = 'XXXX'
    SET LINE(/2/)      = WORK_LINE

    SET WORK_LINE      = ' '
    SET REEL03_CPUID   = 'XXXX'
    SET REEL03_LRECL   = 99999
    SET REEL03_BLKSIZE = 999999
    SET REEL03_RECFM   = 'XXXX'
    SET REEL03_BLKCNT  = 9999999999
    SET REEL03_ERG     = 9999
    SET REEL03_FILESEQ = 99999
    SET LINE(/3/)      = WORK_LINE
    SET WORK_LINE      = ' '
    SET REEL04_VOLSER  = 'XXXXXX'
    SET REEL04_FORGN   = 'X'
    SET REEL04_VOLSEQ  = 9999
    SET REEL04_VOLCNT  = 999
    SET REEL04_LABEL   = 'X'
    SET REEL04_TRTCH   = 'XXXX'
    SET REEL04_ACCT    = 'XXXXXXXXXXXX'
    SET LINE(/4/)      = WORK_LINE

SETUP_REEL_LOOP:
    PERFORM LABEL_OUT         19

    SET SETUP_COUNT = SETUP_COUNT + 1        

    IF SETUP_COUNT < SETUP_MAXIMUM
       GOTO SETUP_REEL_LOOP
    ENDIF
 ENDPROC
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! CALL CTSLBLOT WITH A LABEL REQUEST TO PRINT THE LABEL IMAGE         !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LABEL_OUT: PROC                                 20
    SET REQUEST = 'L'
    CALL CTSLBLOT USING OUTPUT_LABEL COMM_AREA
ENDPROC

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!  SET THE DESTINATIONS FOR CARTS, REELS, AND LABEL IMAGES BELOW.     !
!                                                                     !
!  FOR PRT1_REQ, PRT2_REQ AND PRT3_REQ                                !
!      Y = PRINT LABEL, N = DON'T PRINT                               !
!                                                                     !
!  FOR WTO1_REQ, WTO2_REQ AND WTO3_REQ                                !
!      000 = DON'T PRINT, 1 - 128 IS WTO ROUTCDE TO PRINT             !
!                                                                     !
!  FOR CCI_DEST                                                       !
!      BLANK = DON'T SEND, NON-BLANK IS CCI ID                        !
!                                                                     !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!    SELECT WHERE CART LABELS WILL GO                                 !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
SELECT_CART_OUTPUT: PROC                          21
     SET PRT1_REQ = 'Y'             !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     SET PRT2_REQ = 'N'             !! SEND LABEL IMAGES TO WTO     !!
     SET PRT3_REQ = 'N'             !! ROUTE CODES 13.              !!
     SET WTO1_REQ = 013             !!                              !!
     SET WTO2_REQ = 000             !! ALSO SEND COPY TO PRINTER1.  !!
     SET WTO3_REQ = 000             !!                              !!
     SET CCI_DEST = ' '             !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ENDPROC
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!    SELECT WHERE REEL LABELS WILL GO                                 !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
SELECT_REEL_OUTPUT: PROC                         21
     SET PRT1_REQ = 'Y'             !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     SET PRT2_REQ = 'N'             !! SEND LABEL IMAGES TO WTO     !!
     SET PRT3_REQ = 'N'             !! ROUTE CODES 14.              !!
     SET WTO1_REQ = 014             !!                              !!
     SET WTO2_REQ = 000             !! ALSO SEND COPY TO PRINTER1.  !!
     SET WTO3_REQ = 000             !!                              !!
     SET CCI_DEST = ' '             !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ENDPROC

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!    SELECT WHERE PREFORMATED LABELS WILL GO                          !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
SELECT_IMAGE_OUTPUT: PROC                        21
     SET PRT1_REQ = 'Y'             !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     SET PRT2_REQ = 'N'             !! SEND LABEL IMAGES TO WTO     !!
     SET PRT3_REQ = 'N'             !! ROUTE CODES 13 AND 14.       !!
     SET WTO1_REQ = 013             !!                              !!
     SET WTO2_REQ = 014             !! ALSO SEND COPY TO PRINTER1.  !!
     SET WTO3_REQ = 000             !!                              !!
     SET CCI_DEST = ' '             !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ENDPROC
END

1

The first part of the code is a comment section showing the output format of labels produced by default. See Label formats for REELS and CARTS for additional information.

2

The COPY command brings in the EARL label and record definitions from members LABELDEF, CTEARLCM and CTEARLCN from CAI.CTAPECPB.

3

This section of code defines the storage array for the labels. The definition may be larger than the actual storage requirements.

4

The size for OUTPUT_LABEL is the maximum buffer size (10 rows X 80 columns +2).

5

The LINE array should be set to the number of rows used to calculate OUTPUT_LABEL.

For example
 	DEF OUTPUT_LABEL (X 1282) = '  ' 'OUTPUT' 'LABEL'
  .
  .
 DEF LINE ARRAY 16 = OUTPUT_LABEL 003-082 X

This defines a storage area that can accommodate labels up to 16 rows by 80 columns.

6

These fields are used to format fields for printing.

7

Defines the work lines used to build the label array. For ease in understanding the variable names in this section are defined as ttttnn-ffff where tttt indicates REEL or CART, nn is the two digit line number within the label and ffff describes the value to be printed.

The variables are defined as sub-strings of WORK_LINE at the positions indicated.

For example

The fourth line of the cartridge label displays the creating unit in columns 8-11 and the create date in columns 12-26.

8

The program allows you to produce setup labels if they are desired. The delivered sample automatically produces 10 setup labels in a CART format. If the REEL format is preferred, the number of setup labels needs to be changed or the setup labels are to be bypassed entirely, modify the default values in this section.

9

This section prints SETUP labels if requested. Checks are made to determine if SETUP labels are requested for CART, REEL, or BOTH.

10

This section gets the next label request. TLMSLBLS waits here until another label request is available.

11

This is a test for a termination request.

12

This section handles a SPINOFF request for one or more printers.

13

User code should be inserted here. You may bypass printing a label with a GOTO GETTAG or change the data being passed.

14

This section of the code formats labels for CARTS. Formatting is done one line at a time, and then moved to the label output area. Then the label output module is called.

15

This section of the code formats labels for REELS. Formatting is done one line at a time, and then moved to the label output area. Then the label output module is called.

16

This section of the code formats labels for CART SETUP labels. Formatting is done one line at a time, and then moved to the label output area. Then the label output module is called.

17

This section of the code formats labels for REEL SETUP labels. Formatting is done one line at a time, and then moved to the label output area. Then the label output module is called.

18

This section of the code causes the CART SETUP labels to be printed for the number of labels specified in SETUP_MAXIMUM.

19

This section of the code causes the REEL SETUP labels to be printed for the number of labels specified in SETUP_MAXIMUM.

20

This is the actual call to the LABEL output module.

21

These routines set the output destinations for the labels.