SCRIPT/VS 3.2.1: DEVICE 1403N6 CHARS MONO $    ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | |  | |  | |  | PROGRAM DIRECTORY |  | |  | |  | FOR USE WITH |  | |  | |  | RELEASE 01, MODIFICATION LEVEL 01 |  | |  | of |  | |  | PROGRAM 5688-021 |  | |  | FMID JJH1300 |  | |  | |  | BAR CODE/OPTICAL CHARACTER RECOGNITION |  | |  | |  | MVS, VM, VSE BAR CODE SUBROUTINE SOURCE |  | |  | |  | Optional Material Features 5860, 5861, 5862 |  | |  | |  | (C) COPYRIGHT IBM CORPORATION 1988, 1990 |  | ALL RIGHTS RESERVED |  | |  | US GOVERNMENT USERS RESTRICTED RIGHTS |  | - USE, DUPLICATION OR DISCLOSURE |  | RESTRICTED BY GSA ADP SCHEDULE |  | CONTRACT WITH IBM CORPORATION |  | |  | LICENSED MATERIALS - PROPERTY OF IBM (5688-021 SUBROUTINE) |  | |  | |  | |  | This directory contains information concerning the material |  | and procedures associated with the installation of this |  | product. It should be reviewed in its entirety prior to |  | the installation of this product and retained for future |  | reference. |  | |  | |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY $    PREFACE  _______   The Bar Code/Optical Character Recognition product is one of  several font licensed programs offered by IBM. These licensed  programs provide fonts digitized for use on 240 dots-per-inch  non-impact printers supported by Advanced Function Printing  (AFP) software. Associated software support is required.  Refer to the Licensed Program Specifications (LPS) for  programming requirements.  The Bar Code/Optical Character Recognition licensed program  (5688-021) provides bar code families in 0.5 and 1 inch heights  formatted for use with the IBM-supplied subroutine or its  equivalent. The licensed program also provides size I OCR-A  and OCR-B character sets defined by ISO (the International  Organization for Standardization) International Standards  1073-I and 1073-II respectively.  Each feature number has two tapes: a font tape and a bar code  subroutine tape. This optional material bar code subroutine  directory provides information and installation instructions  for the bar code subroutine tape that is part of optional  material feature numbers 5860, 5861, and 5862. There is a  separate directory for the font tape that is also part of the  optional material feature numbers 5860, 5861, and 5862. In  addition, there are separate directories for fonts and the bar  code subroutine that are part of the basic material feature  numbers 5850, 5851, and 5852.  The optional bar code subroutine material is contained on a  single standard label tape JH1300. The first section of the  tape contains bar code subroutine source for an MVS environment  and is installed using System Modification Program Extended  (SMP/E). The second section contains bar code subroutine  source for a VM environment, and is installed using a  combination of VMFPLC2 and an installation EXEC. The third  section contains bar code subroutine source for a DOS/VSE  environment suitable for installation with Maintain System  History Program (MSHP).  In this program directory, any reference made to IBM licensed  programs is not intended to state or imply that only IBM's  licensed programs may be used; any functionally equivalent  program may be used instead.   Preface i $    This program directory does not provide any programming  interfaces for customers. An application program must be  written which calls the subroutine. The program interface is  defined in the Bar Code Fonts User's Guide, S544-3190, included  ___________________________  with this product.                 Preface ii $    TABLE OF CONTENTS  _________________   PROGRAM DOCUMENTATION . . . . . . . . . . . . . . . . . . . 1  Program Contents . . . . . . . . . . . . . . . . . . . . . 1  Copyright Notice . . . . . . . . . . . . . . . . . . . . . 1  Basic Documentation . . . . . . . . . . . . . . . . . . . . 1  Reference and General Documentation . . . . . . . . . . . . 1  PROGRAM SUPPORT . . . . . . . . . . . . . . . . . . . . . . 2  Service Classification . . . . . . . . . . . . . . . . . . 2  SUBROUTINE SERVICES: . . . . . . . . . . . . . . . . . . . 2  Support Procedures . . . . . . . . . . . . . . . . . . . . 2  MACHINE READABLE OPTIONAL MATERIAL . . . . . . . . . . . . 3  Optional Material Tape Format . . . . . . . . . . . . . . . 4  PRE-INSTALLATION INFORMATION . . . . . . . . . . . . . . . 5  Direct Access Storage . . . . . . . . . . . . . . . . . . . 5  MVS Storage Requirements . . . . . . . . . . . . . . . . 5  VM Storage Requirements . . . . . . . . . . . . . . . . . 7  VSE Storage Requirements . . . . . . . . . . . . . . . . 8  Installation Programming Requirements . . . . . . . . . . . 8  Execution Programming Requirements . . . . . . . . . . . . 8  SMP Procedures and Datasets . . . . . . . . . . . . . . . . 9  Unload Sample SMP/E JCL . . . . . . . . . . . . . . . . . . 10  INSTALLATION PROCEDURE - MVS ENVIRONMENT . . . . . . . . . 12  Instructions for Pre-Installation Planning . . . . . . . . 12  Installation Example using SMP/E . . . . . . . . . . . . . 12  Subroutine Specific Tasks After Installation . . . . . . 15  INSTALLATION PROCEDURE - VM ENVIRONMENT . . . . . . . . . . 18  Instructions for Pre-Installation Planning . . . . . . . . 18  Using the Installation Exec . . . . . . . . . . . . . . . . 18  Subroutine Specific Tasks After Installation . . . . . . 21  INSTALLATION PROCEDURE - VSE ENVIRONMENT . . . . . . . . . 23  Instructions for Pre-Installation Planning . . . . . . . . 23  Explanation of Symbols Used in Examples . . . . . . . . . . 23  Installation Example (VSE/AF Version 2, Release 1) . . . . 24  Subroutine Specific Tasks After Installation . . . . . . 25  CUSTOMER RESPONSIBILITY . . . . . . . . . . . . . . . . . . 27  APPENDIX A. MVS SMP/E INSTALL LOGIC . . . . . . . . . . . . 28   Table of Contents iii $    APPENDIX B. MEMBERS . . . . . . . . . . . . . . . . . . . . 29  APPENDIX C. INSTALLATION EXAMPLE USING SMP-4 . . . . . . . 30  SMP Procedures and Datasets . . . . . . . . . . . . . . . . 30  SMP-4 Installation Example . . . . . . . . . . . . . . . . 31  Subroutine Specific Tasks After Installation . . . . . . 33  APPENDIX D. VSE CONSIDERATIONS . . . . . . . . . . . . . . 36  APPENDIX E. SUMMARY OF CHANGES . . . . . . . . . . . . . . 38  READER'S COMMENT FORM . . . . . . . . . . . . . . . . . . . 40  END OF DOCUMENT . . . . . . . . . . . . . . . . . . . . . . 42              Table of Contents iv $    LIST OF ILLUSTRATIONS  _____________________   Figure 1. Service Information . . . . . . . . . . . . . . 2  Figure 2. Optional Material Media . . . . . . . . . . . . 3  Figure 3. Basic Material Media Format . . . . . . . . . . 4  Figure 4. MVS Bar Code Subroutine SOURCE Storage  Requirements . . . . . . . . . . . . . . . . . . 6  Figure 5. VM Bar Code Subroutine SOURCE Storage Requirements 7  Figure 6. VSE Bar Code Subroutine SOURCE Storage  Requirements . . . . . . . . . . . . . . . . . . 8  Figure 7. Required DD name for APPLY and APPLY CHECK. . . 9  Figure 8. Required DD name for ACCEPT and ACCEPT CHECK. . 9  Figure 9. SMP/E global zone OPTIONS entry . . . . . . . . 10  Figure 10. Sample JCL to Unload Sample SMP/E JCL from Tape 10  Figure 11. SMP/E JCL members . . . . . . . . . . . . . . . 11  Figure 12. Sample SMP/E RECEIVE JCL (Sample member SC021REC) 13  Figure 13. Sample SMP/E APPLY CHECK Procedure (Sample member  SC021APK) . . . . . . . . . . . . . . . . . . . 13  Figure 14. Sample SMP/E APPLY Procedure (Sample member  SC021APP) . . . . . . . . . . . . . . . . . . . 14  Figure 15. Sample SMP/E ACCEPT CHECK Procedure (Sample  member . . . . . . . . . . . . . . . . . . . . . 14  Figure 16. Sample SMP/E ACCEPT Procedure (Sample member  SC021ACC) . . . . . . . . . . . . . . . . . . . 15  Figure 17. Sample PL/I Compile and Link Editor JCL . . . . 16  Figure 18. Sample Linkage Editor JCL . . . . . . . . . . . 17  Figure 19. CMS Commands to Compile Subroutine Source Code 21  Figure 20. EANSRP1 TEXT file needed by LKED in previous  example . . . . . . . . . . . . . . . . . . . . 21  Figure 21. CMS Commands to Link Subroutine to an Application  Program . . . . . . . . . . . . . . . . . . . . 22  Figure 22. COBOL TEXT file needed by LKED in . . . . . . . 22  Figure 23. Running Application Program using OSRUN . . . . 22  Figure 24. VSE - Sample Creation of a New Library . . . . . 24  Figure 25. VSE - Sample Installation into an Existing  Library . . . . . . . . . . . . . . . . . . . . 24  Figure 26. Sample PL/I Compile for VSE 2.1 and above . . . 25  Figure 27. Sample PL/I Link for VSE 2.1 and above . . . . . 26  Figure 28. Required DD name for APPLY and APPLY CHECK. . . 30  Figure 29. Required DD name for ACCEPT and ACCEPT CHECK. 30  Figure 30. SMPPTS System Entries . . . . . . . . . . . . . 31  Figure 31. Sample SMP-4 RECEIVE JCL . . . . . . . . . . . . 31  Figure 32. Sample SMP-4 APPLY CHECK Procedure . . . . . . . 32  Figure 33. Sample SMP-4 APPLY Procedure . . . . . . . . . . 32  Figure 34. Sample SMP-4 ACCEPT CHECK Procedure . . . . . . 32  Figure 35. Sample SMP-4 ACCEPT Procedure . . . . . . . . . 33   List of Illustrations v $    Figure 36. Sample PL/I Compile and Link Editor JCL . . . . 34  Figure 37. Sample Linkage Editor JCL . . . . . . . . . . . 35                  List of Illustrations vi $    PROGRAM DOCUMENTATION  _____________________   PROGRAM CONTENTS  ________________   You have received the bar code subroutine source of the Bar  Code/Optical Character Recognition licensed program.  Bar Code/Optical Character Recognition is one of a number of  font licensed programs offered by IBM.   COPYRIGHT NOTICE  ________________   Refer to Copyright Instructions Form Number G120-2083 for  maintaining the IBM copyright when modifying fonts.   BASIC DOCUMENTATION  ___________________   See the font tape program directory for information on  publications distributed with the basic material.   REFERENCE AND GENERAL DOCUMENTATION  ___________________________________   See the font tape program directory for information on  publications related to the installation or execution of this  product.      Program Documentation 1 $    PROGRAM SUPPORT  _______________   SERVICE CLASSIFICATION  ______________________   This subroutine is part of the Bar Code/Optical Character  Recognition licensed program.   SUBROUTINE SERVICES:  ____________________   Contact your IBM Marketing representative or Operations Systems  Engineer (OPSE) for specific information about available  program services.   SUPPORT PROCEDURES  __________________   Report any difficulties you have using this product to your IBM  Support Center. If an APAR is required, submit the data to the  location identified in the Programming System General  Information Manual (PSGIM), G229-2228, as being responsible for  the failing component. Figure 1 identifies the Field  Engineering Service Number (FESN) and related information for  the Bar Code/Optical Character Recognition.  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | ENVIRONMENT/ |  | FORMAT FMID/CLC COMPONENT ID FESN |  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | |  | |  | MVS JJH1300 568802101 8502101 |  | |  | VM -- 568802101 8402101 |  | |  | VSE C20 568802101 8602101 |  | |  | |  | Figure 1. Service Information |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY   Program Support 2 $    MACHINE READABLE OPTIONAL MATERIAL  __________________________________   The distribution medium for Bar Code/Optical Character  Recognition is standard-labeled tapes or cartridges.  A font tape BAROCR.FONTS.OPT is also distributed with the  optional material and is provided with a separate program  directory, which provides the necessary details when installing  the font material.  The feature numbers of the tapes and cartridges for Bar  Code/Optical Character Recognition are as follows:  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | Feature External Description Volume Track/ |  | Number Tape Label Serial Density |  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | |  | |  | 5860 BAROCR.FONTS.OPT (fonts) JH1230 9/1600 |  | BARSUB.OPT (subroutine) JH1300 |  | |  | 5861 BAROCR.FONTS.OPT (fonts) JH1230 9/6250 |  | BARSUB.OPT (subroutine) JH1300 |  | |  | 5862 BAROCR.FONTS.OPT (fonts) JH1230 3480 |  | BARSUB.OPT (subroutine) JH1300 Cartridge |  | |  | Figure 2. Optional Material Media |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY        Machine Readable Optional Material 3 $    OPTIONAL MATERIAL TAPE FORMAT  _____________________________   ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | Physical |  | Environ- Tape File File |  | ment File Content Description |  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | |  | |  | MVS 1 LABEL, HDR1, HDR2 |  | 2 SMPMCS SMP Control Statements |  | 3 EOF1, EOF2 |  | 4 HDR1, HDR2 |  | 5 JJH1300.F1 Source |  | (IEBCOPY Unloaded) |  | 6 EOF1, EOF2 |  | 7 HDR1, HDR2 |  | 8 SAMPJCL Sample SMP/E JCL |  | (IEBCOPY Unloaded) |  | 9 EOF1, EOF2 |  | 10 NULL End of MVS |  | |  | VM 11 S5688021 011103S Product Info. File |  | S5688021 EXEC Installation Exec |  | 12 S5688021 MEMO Memo File |  | 13 EANSRP Source (Filetype PLI) |  | VM Subroutine |  | SCHK021 EXEC Installation |  | Verification Exec |  | 14 Null End of VM |  | |  | VSE 15 Null |  | 16 History File |  | 17 VSE Subroutine Source (V2 DATA) |  | 18 Null |  | 19 EOB |  | 20 Null End of VSE |  | |  | Figure 3. Basic Material Media Format |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY     Machine Readable Optional Material 4 $    PRE-INSTALLATION INFORMATION  ____________________________   If Bar Code/Optical Character Recognition has been  previously installed, following the instructions in this  directory will replace equivalent members previously  installed. If you have modified one or more of those  members, then you may want to copy the modified members into  a temporary data set before installing Bar Code/Optical  Character Recognition.   DIRECT ACCESS STORAGE  _____________________   There must be sufficient direct access storage for the Bar  Code/Optical Character Recognition licensed program.  Refer to the font program directory for font direct access  storage requirements.   MVS Storage Requirements  ________________________   The MVS storage requirements of the partitioned data set for  the subroutine source follow. The data set is named on the  OUT DD statement and the EANSRC and AEANSRC statements in  "Installation Example using SMP/E" on page 12.        Pre-Installation Information 5 $    ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | MVS SOURCE ALLOCATIONS |  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | |  | ORGANIZATION PO |  | RECFM FB |  | LRECL 80 |  | BLOCK SIZE 6160 |  | DIRECTORY ALLOCATION 1 Block |  | KBYTES OF DATA 186 KBYTES |  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | |  | |  | STORAGE ALLOCATION |  | 3380 3375 3350 3340 3330 |  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | |  | |  | 1 1 1 2 1 Cylinders|  | |  | 4 6 10 23 15 Tracks |  | |  | |  | Figure 4. MVS Bar Code Subroutine SOURCE Storage Requirements |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY           Pre-Installation Information 6 $    VM Storage Requirements  _______________________   The VM storage requirements of the disk for the subroutine  source follow.  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | VM SOURCE ALLOCATIONS |  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | |  | BLOCKING FACTOR 4096 Bytes |  | KBYTES OF DATA 186 KBYTES |  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | |  | STORAGE ALLOCATION |  | |  | 3380 3375 3350 3340 3330 FBA |  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | |  | |  | 1 1 1 2 1 - Cylinders|  | |  | 4 6 10 23 15 - Tracks |  | |  | 371 Blocks |  | |  | |  | Figure 5. VM Bar Code Subroutine SOURCE Storage Requirements |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY          Pre-Installation Information 7 $    VSE Storage Requirements  ________________________   The VSE storage requirements for the subroutine source follow.  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | VSE SOURCE ALLOCATIONS |  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | |  | DATA FORMAT V2 |  | KBYTES OF DATA 186 KBYTES |  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | |  | STORAGE ALLOCATION |  | |  | 3380 3375 3350 3340 3330 FBA |  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | |  | |  | 1 1 1 1 1 - Cylinders|  | |  | 3 4 6 14 9 - Tracks |  | |  | 75 Blocks |  | |  | |  | Figure 6. VSE Bar Code Subroutine SOURCE Storage Requirements |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY   INSTALLATION PROGRAMMING REQUIREMENTS  _____________________________________   There are no additional programming requirements beyond those  specified in the font tape program directory.   EXECUTION PROGRAMMING REQUIREMENTS  __________________________________   For compiling the subroutine after installation in an MVS or VM  environment, Release 4.0 or later of the OS PL/I Optimizing  Compiler Composite Package (5734-PL3) is needed. This  composite package includes the OS PL/I Resident Library and OS  PL/I Transient Library.  For compiling the subroutine after installation in a VSE  environment, Release 6.0 or later of the DOS PL/I Optimizing  Compiler Composite Package (5736-PL3) is needed. This   Pre-Installation Information 8 $    composite package includes the DOS PL/I Resident Library and  DOS PL/I Transient Library.  In the VSE environment only, Release 6.0 or later of the DOS  PL/I Resident Library (5736-LM4) and DOS PL/I Transient Library  (5736-LM5) are needed to use the compiled bar code subroutine.   SMP PROCEDURES AND DATASETS  ___________________________   If your SMP/E procedure is not named "SMPEPROC", substitute  your procedure name for "SMPEPROC" where appropriate. If you do  not have an SMP/E procedure, you can find instructions for  building one in the SMP/E User's Guide or in the SMP/E  Reference.  1. A Data Definition (DD) statement for the following DDNAME  is required for the SMP/E JCL for the APPLY and APPLY  CHECK:  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | DDNAME DSNAME FMID FORMAT |  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | |  | |  | EANSRC SYS1.EANSRC JJH1300 SOURCE |  | |  | Figure 7. Required DD name for APPLY and APPLY CHECK. |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY  2. A Data Definition (DD) statement for the following DDNAME  is required for the SMP/E JCL for the ACCEPT and ACCEPT  CHECK:  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | DDNAME DSNAME FMID FORMAT |  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | |  | |  | AEANSRC SYS1.AEANSRC JJH1300 SOURCE |  | |  | Figure 8. Required DD name for ACCEPT and ACCEPT CHECK. |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY  3. Following are the recommended values for the SMP/E global  zone OPTIONS entry:   Pre-Installation Information 9 $    ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | SUB-ENTRY VALUE |  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | |  | |  | DSSPACE (500,50,1) (or greater) |  | PEMAX 9999 |  | |  | Figure 9. SMP/E global zone OPTIONS entry |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY  See the SMP/E Reference for instructions on updating the  global zone.   UNLOAD SAMPLE SMP/E JCL  _______________________   Use the following JCL to unload the sample SMP/E JCL from the  tape BARSUB.OPT.  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | //JOB JOB |  | //UNLOAD EXEC PGM=IEBCOPY |  | //SYSPRINT DD SYSOUT=A |  | //SYSUT3 DD UNIT=SYSDA,SPACE=(TRK,(1,1)), |  | // DISP=(NEW,DELETE) |  | //SYSUT4 DD UNIT=SYSDA,SPACE=(TRK,(1,1)), |  | // DISP=(NEW,DELETE) |  | //INTAPE DD DSN=SAMPJCL,UNIT=TAPE,VOL=SER=JH1300, |  | // LABEL=(3,SL),DISP=OLD |  | //OUT DD DSN=JH1300.jcllib,UNIT=SYSDA, |  | // DISP=(NEW,CATLG,DELETE),DCB=SYS1.PROCLIB, |  | // VOL=SER=xxxxxx,SPACE=(TRK,(1,1,4)) |  | //SYSIN DD * |  | COPY INDD=INTAPE,OUTDD=OUT |  | /* |  | |  | Figure 10. Sample JCL to Unload Sample SMP/E JCL from Tape |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY  The SAMPJCL file contains the following SMP/E JCL members.  These members are available for modification and use on your  system.    Pre-Installation Information 10 $    ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | Description Member Name |  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | |  | |  | Sample RECEIVE SC021REC |  | Sample APPLY CHECK SC021APK |  | Sample APPLY SC021APP |  | Sample ACCEPT CHECK SC021ACK |  | Sample ACCEPT SC021ACC |  | |  | Figure 11. SMP/E JCL members |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY               Pre-Installation Information 11 $    INSTALLATION PROCEDURE - MVS ENVIRONMENT  ________________________________________   INSTRUCTIONS FOR PRE-INSTALLATION PLANNING  __________________________________________   y Ensure that you have tape BARSUB.OPT (see Figure 2 on page  3).  y Ensure that the various components of your MVS system have  been brought up to the required level (see "Installation  Programming Requirements" on page 8).  y Update SMP/E procedures and data sets as appropriate (see  "SMP Procedures and Datasets" on page 9)  y Ensure that you have enough space in the partitioned data  set referenced by the the EANSRC and AEANSRC DD statements  in "Installation Example using SMP/E" (see Figure 4 on page  6 for space information).  y For compiling the subroutine after installation, Release  4.0 or later of the OS PL/I Optimizing Compiler, OS PL/I  Resident Library, and OS PL/I Transient Library are needed.  y Note that members installed with Bar Code/Optical Character  Recognition will replace existing members having the same  names. See "Pre-Installation Information" on page 5 for  more detail.   INSTALLATION EXAMPLE USING SMP/E  ________________________________   NOTE: The SMP/E dialog panels may be used for the steps which  follow instead of the sample JCL shown.  Load SMP/E Libraries via RECEIVE: Execute SMP/E to unload Bar  _________________________________  Code/Optical Character Recognition bar code subroutine data  from the install tape into the SMP/E data sets (SMPPTS and  temporary data sets). Sample JCL follows.    Installation Procedure - MVS Environment 12 $    ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | //JOB1 JOB |  | //RECEIVE EXEC SMPEPROC |  | //SMP.SMPPTFIN DD DSN=SMPMCS,DISP=(OLD,PASS), |  | // VOL=SER=JH1300,LABEL=(1,SL), |  | // UNIT=(TAPE,,DEFER) |  | //SMPTLIB DD UNIT=xxxx,DISP=OLD,VOL=SER=nnnnnn |  | //SMP.SMPCNTL DD * |  | SET BDY(GLOBAL). |  | RECEIVE S(JJH1300) SYSMODS. |  | /* |  | |  | Figure 12. Sample SMP/E RECEIVE JCL (Sample member |  | SC021REC) |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY  Perform SMP/E APPLY CHECK: Execute SMP/E to determine if the  __________________________  APPLY will execute as desired. Sample JCL follows. Resolve  any error messages before continuing with the apply step.  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | //JOB2 JOB |  | //APPLY EXEC SMPEPROC |  | //SMPTLIB DD UNIT=xxxx,DISP=OLD,VOL=SER=nnnnnn |  | //EANSRC DD DISP=SHR,DSN=SYS1.EANSRC |  | //SMP.SMPCNTL DD * |  | SET BDY(tgtzone). |  | APPLY CHECK |  | GROUP REDO |  | SELECT(JJH1300) |  | BYPASS(ID,PRE,REQ,IFREQ). |  | /* |  | |  | Figure 13. Sample SMP/E APPLY CHECK Procedure (Sample |  | member SC021APK) |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY  Load Target Library via APPLY: Execute SMP/E to load the  ______________________________  target library from the SMP/E temporary data sets. Sample JCL  follows.     Installation Procedure - MVS Environment 13 $    ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | //JOB3 JOB |  | //APPLY EXEC SMPEPROC |  | //SMPTLIB DD UNIT=xxxx,DISP=OLD,VOL=SER=nnnnnn |  | //EANSRC DD DISP=SHR,DSN=SYS1.EANSRC |  | //SMP.SMPCNTL DD * |  | SET BDY(tgtzone). |  | APPLY |  | GROUP REDO |  | SELECT(JJH1300). |  | /* |  | |  | Figure 14. Sample SMP/E APPLY Procedure (Sample member |  | SC021APP) |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY  Perform SMP/E ACCEPT CHECK: Execute SMP/E to determine if the  ___________________________  ACCEPT will execute as desired. Sample JCL follows. Resolve  any error messages before continuing with the accept step.  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | //JOB4 JOB |  | //ACCEPT EXEC SMPEPROC |  | //SMPTLIB DD UNIT=xxxx,DISP=OLD,VOL=SER=nnnnnn |  | //AEANSRC DD DISP=SHR,DSN=SYS1.AEANSRC |  | //SMP.SMPCNTL DD * |  | SET BDY(dlibzone). |  | ACCEPT CHECK |  | GROUP REDO |  | SELECT(JJH1300) |  | BYPASS(ID,PRE,REQ,IFREQ). |  | /* |  | |  | Figure 15. Sample SMP/E ACCEPT CHECK Procedure (Sample |  | member SC021ACK) |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY  Load Distribution Library via ACCEPT: Execute SMP/E to load  _____________________________________  the distribution library from the SMP/E temporary data sets.  Sample JCL follows.     Installation Procedure - MVS Environment 14 $    ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | //JOB5 JOB |  | //ACCEPT EXEC SMPEPROC |  | //SMPTLIB DD UNIT=xxxx,DISP=OLD,VOL=SER=nnnnnn |  | //AEANSRC DD DISP=SHR,DSN=SYS1.AEANSRC |  | //SMP.SMPCNTL DD * |  | SET BDY(dlibzone). |  | ACCEPT |  | GROUP REDO |  | SELECT(JJH1300). |  | /* |  | |  | Figure 16. Sample SMP/E ACCEPT Procedure (Sample member |  | SC021ACC) |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY   Subroutine Specific Tasks After Installation  ____________________________________________   An application program must be written which calls the  subroutine. The program interface is defined in the Bar Code  ________  Fonts User's Guide, S544-3190, included with this product.  __________________  The following example shows how to compile and link the  subroutine source code. Once the subroutine is compiled it may  be linked to the application program as shown in Figure 18 on  page 17.         Installation Procedure - MVS Environment 15 $    ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | //JOB6 JOB |  | //JOBLIB DD DISP=SHR,DSN=pli.plitask |  | // DD DISP=SHR,DSN=pli.plitask |  | //PLICMP EXEC PGM=IEL0AA,REGION=1000K, |  | // PARM=('GS,A,AG,FLAG(I),NEST,XREF,ESD,OF,NUMBER') |  | //STEPLIB DD DISP=SHR,DSN=pli.plicomp |  | //SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB |  | //SYSLIN DD DSN=&&LOADSET,DISP=(MOD,PASS),UNIT=SYSDA, |  | // SPACE=(80,(500,100)) |  | //SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA, |  | // SPACE=(1024,(500,100)),DCB=BLKSIZE=1024 |  | //SYSUT3 DD DSN=&&SYSUT3,SPACE=(80,(250,250)),UNIT=SYSDA, |  | // DCB=BLKSIZE=80 |  | //SYSPRINT DD SYSOUT=* |  | //SYSIN DD DISP=SHR,DSN=user.barcode.eansrc(EANSRP) |  | //LINK EXEC PGM=IEWL,PARM=('XREF,LIST,LET'),REGION=128K, |  | // COND=(9,LE,PLICMP) |  | //SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE) |  | // DD DDNAME=SYSIN |  | //SYSPRINT DD SYSOUT=* |  | //SYSLMOD DD DISP=OLD,DSN=SYS1.EANOBJ |  | //SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(200,20)) |  | //SYSLIB DD DISP=SHR,DSN=pli.plicomp |  | // DD DISP=SHR,DSN=pli.plibase |  | // DD DISP=SHR,DSN=user.barcode.eanobj |  | //SYSIN DD * |  | NAME EANSRP(R) |  | /* |  | // |  | |  | Figure 17. Sample PL/I Compile and Link Editor JCL |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY  The following example shows how to link the subroutine object  (EANSRP) with a COBOL application program object (COBOLDVR) in  data set "user.driver.obj".      Installation Procedure - MVS Environment 16 $    ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | //JOB7 JOB |  | //LINK EXEC PGM=IEWL, |  | // PARM='LIST,MAP,XREF',REGION=128K |  | //SYSLIN DD DISP=SHR,DSN=user.driver.obj(coboldvr) |  | // DD DDNAME=SYSIN |  | //SYSIN DD * |  | INCLUDE SYSLIB(EANSRP) |  | NAME COBOLDVR(R) |  | /* |  | //SYSLMOD DD DISP=OLD,DSN=user.barcode.eanobj |  | //SYSLIB DD DISP=SHR,DSN=SYS1.EANOBJ |  | // DD DISP=SHR,DSN=cobol.vscolib |  | // DD DISP=SHR,DSN=cobol.vscllib |  | //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(1,1)) |  | //SYSPRINT DD SYSOUT=* |  | /* |  | // |  | |  | Figure 18. Sample Linkage Editor JCL |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY            Installation Procedure - MVS Environment 17 $    INSTALLATION PROCEDURE - VM ENVIRONMENT  _______________________________________   INSTRUCTIONS FOR PRE-INSTALLATION PLANNING  __________________________________________   y Ensure that you have an 'A' disk accessed in write mode  before installing.  y Ensure that you have tape BARSUB.OPT (see Figure 2 on page  3).  y Ensure that the various components of your VM/SP-CMS system  have been brought up to the required level (see "Installation  Programming Requirements" on page 8).  y Ensure that you have enough space on the disk you intend to  use (see Figure 5 on page 7).  y For compiling the subroutine after installation, Release 4.0  or later of the OS PL/I Optimizing Compiler, OS Pl/I Resident  Library, and OS PL/I Transient Library are needed.  y Note that files installed with Bar Code/Optical Character  Recognition will replace existing files having the same  names. See "Pre-Installation Information" on page 5 for more  detail.   USING THE INSTALLATION EXEC  ___________________________   When you install Bar Code/Optical Character Recognition  subroutine under VM/SP, you use an EXEC supplied on the Bar  Code/Optical Character Recognition subroutine tape to load the  information onto the system.  1. Determine the size of disk you will require for Bar  Code/Optical Character Recognition subroutine. Have that  disk defined to the system and made available to the virtual  machine used for the installation.  2. Logon to a virtual machine.  3. Spool the console commands to provide a copy of the  interactions on your virtual reader.   Installation Procedure - VM Environment 18 $    SPOOL CONSOLE START *  4. Access the subroutine disk in read/write mode. Suggested  commands are:  LINK subrdisk xxx yyy MR pword  ACCESS yyy mode  y subrdisk xxx identifies the disk to be used for the  installation  y yyy is the virtual address that will be used (example  below assumes 199)  y MR is the multi read/write mode  y pword is the multi password  y mode is an available access mode (for example, X)  5. Define and format a temporary disk to contain the  installation exec and memo during the installation.  Suggested commands are:  DEFINE Tnnnn zzz 5  FORMAT zzz C  y Tnnnn is the disk type (for example, T3380)  y zzz is the virtual address that will be used (for  example, 222)  y C is the default mode  6. Request that the operator attach a tape drive to your virtual  machine at virtual address 181 and mount the distribution  tape BARSUB.OPT.  7. Position the tape to the VM section. Suggested 9-track tape  commands are:  VMFPLC2 REW  VMFPLC2 FSF 10  8. Load the bar code subroutine source code. Following is a  sample listing of those interactions:  vmfplc2 load * * c (eof 2  LOADING.....  S5688021 011103S C1  S5688021 EXEC C1  END-OF-FILE OR END-OF-TAPE  S5688021 MEMO C1  END-OF-FILE OR END-OF-TAPE   Installation Procedure - VM Environment 19 $    R;  S5688021  ********************************************************************  * 5688-021 BAR CODE/OPTICAL CHARACTER RECOGNITION  * WHAT MATERIAL DO YOU WISH TO INSTALL? (BASIC | OPTIONAL | NONE )  ********************************************************************  optional  ENTER MDISK ADDRESS TO RECEIVE BAR CODE/OPTICAL CHARACTER RECOGNITION  ENTER END IF YOU WANT TO ABORT THIS INSTALL PROCESS.  199  DMSACC724I '199' REPLACES ' A (191) '  DMSACP726I '199' X RELEASED  ********************************************************************  ********************************************************************  * *  * BAR CODE/OPTICAL CHARACTER RECOGNITION  * INSTALLATION EXEC FOR VM SUBROUTINE BASIC AND OPTIONAL TAPE FILES  * *  * (C) COPYRIGHT IBM CORPORATION 1988, 1990  * ALL RIGHTS RESERVED *  * LICENSED MATERIALS - PROPERTY OF IBM (5688-021 SUBROUTINE) *  * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 *  ********************************************************************  ********************************************************************  * *  * ... INSTALLATION IN PROGRESS ... *  * *  * 5688-021 ... LOADING OF THE TAPE WAS DONE SUCCESSFULLY ... *  * *  * ... VERIFICATION IN PROCESS ... *  * *  * ... VERIFICATION COMPLETED SUCCESSFULLY ... *  * *  * ... INSTALLATION NOW COMPLETE ... *  ********************************************************************  R;   9. Restore disk access modes and close the console spool  operation. Suggested commands are:  ACCESS 191 a  ACCESS yyy mode  SPOOL CONSOLE CLOSE  y yyy is the virtual address that was used (for  example, 199)   Installation Procedure - VM Environment 20 $    y mode is an available access mode (for example, X)   Subroutine Specific Tasks After Installation  ____________________________________________   An application program must be written which calls the  subroutine. The program interface is defined in the Bar Code  _________  Fonts User's Guide, S544-3190, included with this product.  __________________  The following example shows how to compile the subroutine  source code. A LOADLIB is created in this step which can be  linked to the application program text deck in a seperate step.  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | GLOBAL TXTLIB PLILIB |  | PLIOPT EANSRP (GS A AG FLAG(I) NEST XREF ESD OF DISK |  | NUMBER OSDECK |  | TXTLIB GEN MYTXT EANSRP |  | GLOBAL TXTLIB |  | FILEDEF * CLEAR |  | |  | FILEDEF CODE DISK MYTXT TXTLIB * |  | FILEDEF SYSLIB DISK PLILIB TXTLIB * |  | LKED EANSRP1 (LIBE EANSRP XREF LET |  | FILEDEF * CLEAR |  | |  | Figure 19. CMS Commands to Compile Subroutine Source Code |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY   ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | INCLUDE CODE(EANSRP) |  | INCLUDE SYSLIB(IBMBPIIA) |  | INCLUDE SYSLIB(IBMBPGRA) |  | INCLUDE SYSLIB(IBMBPITA) |  | INCLUDE SYSLIB(IBMBPESA) |  | INCLUDE SYSLIB(IBMBPOPT) |  | NAME EANSRP |  | |  | Figure 20. EANSRP1 TEXT file needed by LKED in previous |  | example |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY  The following example shows how to link the subroutine load  library (EANSRP), generated in the previous step, with a COBOL   Installation Procedure - VM Environment 21 $    application program text deck (COBOLDVR) in text library DRVTXT  TXTLIB.  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | GLOBAL TXTLIB |  | FILEDEF * CLEAR |  | |  | FILEDEF CODE DISK DRVTXT TXTLIB * |  | FILEDEF SYSLIB DISK COBLIBVS TXTLIB * |  | FILEDEF LIBDEF DISK EANSRP LOADLIB * (RECFM U |  | LKED COBOL (LIBE BARSUB XREF LET |  | FILEDEF * CLEAR |  | |  | Figure 21. CMS Commands to Link Subroutine to an |  | Application Program |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY   ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | INCLUDE CODE(COBOLDVR) |  | INCLUDE LIBDEF(EANSRP) |  | NAME COBOLDVR |  | |  | Figure 22. COBOL TEXT file needed by LKED in Figure 21 |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY  Once the application program is linked to the subroutine, the  program may be run by using the CMS command "OSRUN". The  following is an example of this procedure.  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | GLOBAL TXTLIB |  | GLOBAL LOADLIB BARSUB |  | FILEDEF SYSOUT TERMINAL |  | OSRUN COBOLDVR |  | |  | Figure 23. Running Application Program using OSRUN |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY      Installation Procedure - VM Environment 22 $    INSTALLATION PROCEDURE - VSE ENVIRONMENT  ________________________________________   INSTRUCTIONS FOR PRE-INSTALLATION PLANNING  __________________________________________   y Ensure that you have tape BARSUB.OPT (see Figure 2 on page  3).  y Ensure that the various components of your VSE system have  been brought up to the required levels (see "Installation  Programming Requirements" on page 8).  y Ensure that you have enough space on the disk you intend to  use (see Figure 6 on page 8).  y For compiling and executing the subroutine after  installation, Release 6.0 or later of the DOS PL/I  Optimizing Compiler, DOS PL/I Resident Library, and DOS  PL/I Transient Library are needed.  y Note that code installed with Bar Code/Optical Character  Recognition will replace existing code having the same  name. See "Pre-Installation Information" on page 5 for  more detail.   EXPLANATION OF SYMBOLS USED IN EXAMPLES  _______________________________________   SYMBOL EXPLANATION  ______ ___________  CUU - Replace with addresses of the various I/O  devices  XXXXX - The number of the start-track/block  relative to zero for a private library or a  history file.  YYY - The number of tracks/blocks to be reserved  for a library or a history file (see Figure 6  on page 8).  VOLSER - ID of the disk containing the library.   Installation Procedure - VSE Environment 23 $    INSTALLATION EXAMPLE (VSE/AF VERSION 2, RELEASE 1)  __________________________________________________   The following job can be used to create a new private font  library:  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | // JOB DEFINE FONT LIBRARY |  | * FOR VSAM, USE THE FOLLOWING DLBL IN PLACE OF |  | * THE FONTCL DLBL AND DELETE THE EXTENT |  | * // DLBL fontcl,'afp.font.library',,VSAM,CAT=usercat |  | // DLBL fontcl,'afp.font.library',99/365,SD |  | // EXTENT ,volser,1,0,xxxxx,yyy |  | // EXEC LIBR |  | DEFINE LIB=fontcl |  | DEFINE SUB=fontcl.pr$021 |  | /* |  | /& |  | |  | Figure 24. VSE - Sample Creation of a New Library |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY  The following job can be used to install Bar Code/Optical  Character Recognition subroutine into an existing private  library:  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | // JOB INSTALL SUBROUTINE |  | * FOR VSAM, USE THE FOLLOWING DLBL IN PLACE OF |  | * THE FONTCL DLBL AND DELETE THE EXTENT |  | * // DLBL fontcl,'afp.font.library',,VSAM,CAT=usercat |  | // DLBL fontcl,'afp.font.library',99/365,SD |  | // EXTENT ,volser,1,0,xxxxx,yyy |  | // ASSGN SYS006,cuu |  | // PAUSE MOUNT TAPE BARSUB.OPT (SYS006) |  | // MTC REW,SYS006 |  | // MTC FSF,SYS006,14 |  | // EXEC MSHP |  | INSTALL PRODUCT FROMTAPE ID='C20OPT' - |  | PRODUCTION INTO=fontcl.pr$021 |  | COMPATIBLE WITH=(021B20,021B60,021B90,021A11,021A12) |  | /* |  | /& |  | |  | Figure 25. VSE - Sample Installation into an Existing |  | Library |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY   Installation Procedure - VSE Environment 24 $    The Interactive Interface provided with VSE/SP can be used to  create the necessary job steps. However, check the interactive  output and make any necessary changes before executing that  output.   Subroutine Specific Tasks After Installation  ____________________________________________   An application program must be written which calls the  subroutine. The program interface is defined in the Bar Code  _________  Fonts User's Guide, S544-3190, included with this product.  __________________  The following example shows how to compile the subroutine  source code. Once the subroutine is compiled it may be linked  to the application program as shown in Figure 27 on page 26.  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | * $$ JOB JNM=PLICOMP |  | // JOB PLICOMP PL/I COMPILE ONLY --CATALOG OUTPUT TXT DECK |  | // DLBL IJSYSPH,'temp.punch.file',0,SD |  | // EXTENT SYSPCH,volser |  | ASSGN SYSPCH,cuu |  | // OPTON DECK,LIST,XREF,NOEDECK |  | CATALR EANSRP |  | // EXEC PGM=PLIOPT |  | *PROCESS MARGINS(2,72,1),LC(110),DECK; |  | (put source code here) |  | /* |  | CLOSE SYSPCH,cuu |  | // DLBL IJSYSIN,'temp.punch.file' |  | // EXTENT SYSIPT,volser |  | ASSGN SYSIPT,cuu |  | // DLBL fontcl,'afp.font.library' |  | // EXTENT ,volser |  | // EXEC LIBR,PARM='ACCESS SUB=fontcl.pr$021' |  | /* |  | CLOSE SYSIPT,cuu |  | /& |  | * $$ EOJ |  | |  | Figure 26. Sample PL/I Compile for VSE 2.1 and above |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY  The following example shows how to link the subroutine object  (EANSRP) with a user-written PL/I application program object  (the name BCSDVR is used in the example).   Installation Procedure - VSE Environment 25 $    ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | * $$ JOB JNM=BCSDVR |  | // JOB BCSDVR |  | // DLBL fontcl,'afp.font.library' |  | // EXTENT ,volser |  | // LIBDEF PHASE,CATALOG=fontcl.pr$021 |  | * prd2.prod CONTAINS THE PL/I LIBRARY |  | // LIBDEF *,SEARCH=(fontcl.pr$021,prd2.prod) |  | // OPTION CATAL |  | PHASE BCSDVR,* |  | INCLUDE BCSDVR |  | INCLUDE EANSRP |  | ENTRY |  | // EXEC LNKEDT |  | /& |  | * $$ EOJ |  | |  | Figure 27. Sample PL/I Link for VSE 2.1 and above |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY            Installation Procedure - VSE Environment 26 $    CUSTOMER RESPONSIBILITY  _______________________   All program materials remain the property of IBM and when no  longer needed, they are to be rendered unreadable.                 Customer Responsibility 27 $    APPENDIX A. MVS SMP/E INSTALL LOGIC  ___________________________________   The SMP/E install logic listed in this section is for  information only.   ++FUNCTION(JJH1300) FESN(8502101) FILES(1)  /*  (C) COPYRIGHT IBM CORPORATION 1988, 1990  ALL RIGHTS RESERVED  LICENSED MATERIALS - PROPERTY OF IBM (5688-021 SUBROUTINE)  REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083  */  .  ++VER(Z038) DELETE(JJH1112).  ++MAC (EANSRP) DISTLIB(AEANSRC) SYSLIB(EANSRC) RELFILE(1).             Appendix A. MVS SMP/E Install Logic 28 $    APPENDIX B. MEMBERS  ___________________   The Bar Code/Optical Character Recognition subroutine source  contained on the tape are as follows  1. Copyright Notice: MVS Member, VM File, VSE Phase.  MVS: COIBM021  VM: SCHK021  VSE: $$$CO021   2. Bar Code Subroutine: MVS Member, VM file, VSE Code  EANSRP             Appendix B. Members 29 $    APPENDIX C. INSTALLATION EXAMPLE USING SMP-4  ____________________________________________   Bar Code/Optical Character Recognition subroutine is  installable with SMP-4. Although a formal installation test was  not performed with SMP-4, the following provides information  about SMP-4 procedures and data sets, and an example of JCL for  use with SMP-4.   SMP PROCEDURES AND DATASETS  ___________________________   If you use SMP-4 and your SMP procedure is not named "SMPPROC",  substitute your procedure name for "SMPPROC" where appropriate.  If you do not have an SMP procedure, you can find instructions  for building one in the SMP System Programmer's Guide  __________________________________  (GC28-0673). The step name in "SMPPROC" is assumed to be  "SMP". If your SMP procedure step name is not "SMP" substitute  your step name for "SMP" where appropriate.  1. A Data Definition (DD) statement for the following DDNAME  is required for the SMP JCL for the APPLY and APPLY CHECK:  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | DDNAME DSNAME FMID |  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | |  | |  | EANSRC user.barcode.EANSRC JJH1300 |  | |  | Figure 28. Required DD name for APPLY and APPLY CHECK. |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY  2. A Data Definition (DD) statement for the following DDNAME  is required for the SMP JCL for the ACCEPT and ACCEPT  CHECK:  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | DDNAME DSNAME FMID |  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | |  | |  | AEANSRC SYS1.AEANSRC JJH1300 |  | |  | Figure 29. Required DD name for ACCEPT and ACCEPT CHECK. |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY   Appendix C. INSTALLATION EXAMPLE USING SMP-4 30 $    3. Following are the recommended values for the SMPPTS SYSTEM  entry:  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | SUB-ENTRY VALUE |  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | |  | |  | DSSPACE (500,50,1) (or greater) |  | PEMAX 9999 |  | |  | |  | Figure 30. SMPPTS System Entries |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY  See the SMP System Programmer's Guide for instructions on  updating the SMPPTS.   SMP-4 INSTALLATION EXAMPLE  __________________________   Load SMP Libraries via RECEIVE: Execute SMP to unload Bar  _______________________________  Code/Optical Character Recognition data from the install tape  into the SMP data sets (SMPPTS and temporary data sets).  Sample JCL follows.  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | //JOB1 JOB |  | //RECEIVE EXEC SMPPROC |  | //SMP.SMPPTFIN DD DSN=SMPMCS,DISP=(OLD,PASS), |  | // VOL=SER=JH1300,LABEL=(1,SL), |  | // UNIT=(TAPE,,DEFER) |  | //SMPTLIB DD UNIT=xxxx,DISP=OLD,VOL=SER=nnnnnn |  | //SMP.SMPCNTL DD * |  | RECEIVE S(JJH1300). |  | /* |  | |  | Figure 31. Sample SMP-4 RECEIVE JCL |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY  Perform SMP APPLY CHECK: Execute SMP to determine if the APPLY  ________________________  will execute as desired. Sample JCL follows. Resolve any  error messages before continuing with the apply step.    Appendix C. INSTALLATION EXAMPLE USING SMP-4 31 $    ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | //JOB2 JOB |  | //APPLY EXEC SMPPROC |  | //SMPTLIB DD UNIT=xxxx,DISP=OLD,VOL=SER=nnnnnn |  | //EANSRC DD DISP=SHR,DSN=user.barcode.eansrc |  | //SMP.SMPCNTL DD * |  | APPLY CHECK S(JJH1300) DIS(WRITE) |  | BYPASS(ID,PRE,REQ,IFREQ). |  | /* |  | |  | Figure 32. Sample SMP-4 APPLY CHECK Procedure |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY  Load Target Library via APPLY: Execute SMP to load the target  _______________________________  library from the SMP temporary data sets. Sample JCL follows.  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | //JOB3 JOB |  | //APPLY EXEC SMPPROC |  | //SMPTLIB DD UNIT=xxxx,DISP=OLD,VOL=SER=nnnnnn |  | //EANSRC DD DISP=SHR,DSN=user.barcode.eansrc |  | //SMP.SMPCNTL DD * |  | APPLY S(JJH1300) DIS(WRITE). |  | /* |  | |  | Figure 33. Sample SMP-4 APPLY Procedure |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY  Perform SMP ACCEPT CHECK: Execute SMP to determine if the  _________________________  ACCEPT will execute as desired. Sample JCL follows. Resolve  any error messages before continuing with the accept step.  ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | //JOB4 JOB |  | //ACCEPT EXEC SMPPROC |  | //SMPTLIB DD UNIT=xxxx,DISP=OLD,VOL=SER=nnnnnn |  | //AEANSRC DD DISP=SHR,DSN=SYS1.AEANSRC |  | //SMP.SMPCNTL DD * |  | ACCEPT CHECK G(JJH1300) DIS(WRITE) |  | BYPASS(ID,PRE,REQ,IFREQ). |  | /* |  | |  | Figure 34. Sample SMP-4 ACCEPT CHECK Procedure |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY  Load Distribution Library via ACCEPT: Execute SMP to load the  _____________________________________  distribution library from the SMP temporary data sets. Sample  JCL follows.   Appendix C. INSTALLATION EXAMPLE USING SMP-4 32 $    ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | //JOB5 JOB |  | //ACCEPT EXEC SMPPROC |  | //SMPTLIB DD UNIT=xxxx,DISP=OLD,VOL=SER=nnnnnn |  | //AEANSRC DD DISP=SHR,DSN=SYS1.AEANSRC |  | //SMP.SMPCNTL DD * |  | ACCEPT G(JJH1300) DIS(WRITE) C(ALL). |  | /* |  | |  | Figure 35. Sample SMP-4 ACCEPT Procedure |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY   Subroutine Specific Tasks After Installation  ____________________________________________   The following example shows how to compile and link the  subroutine source code. Once the subroutine is compiled it may be  linked to the application program as shown in Figure 37 on page  35.           Appendix C. INSTALLATION EXAMPLE USING SMP-4 33 $    ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | //JOB6 JOB |  | //JOBLIB DD DISP=SHR,DSN=pli.plitask |  | // DD DISP=SHR,DSN=pli.plitask |  | //PLICMP EXEC PGM=IEL0AA,REGION=1000K, |  | // PARM=('GS,A,AG,FLAG(I),NEST,XREF,ESD,OF,NUMBER') |  | //STEPLIB DD DISP=SHR,DSN=pli.plicomp |  | //SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB |  | //SYSLIN DD DSN=&&LOADSET,DISP=(MOD,PASS),UNIT=SYSDA, |  | // SPACE=(80,(500,100)) |  | //SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA, |  | // SPACE=(1024,(500,100)),DCB=BLKSIZE=1024 |  | //SYSUT3 DD DSN=&&SYSUT3,SPACE=(80,(250,250)),UNIT=SYSDA, |  | // DCB=BLKSIZE=80 |  | //SYSPRINT DD SYSOUT=* |  | //SYSIN DD DISP=SHR,DSN=user.barcode.eansrc(EANSRP) |  | //LINK EXEC PGM=IEWL,PARM=('XREF,LIST,LET'),REGION=128K, |  | // COND=(9,LE,PLICMP) |  | //SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE) |  | // DD DDNAME=SYSIN |  | //SYSPRINT DD SYSOUT=* |  | //SYSLMOD DD DISP=OLD,DSN=SYS1.EANOBJ |  | //SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(200,20)) |  | //SYSLIB DD DISP=SHR,DSN=pli.plicomp |  | // DD DISP=SHR,DSN=pli.plibase |  | // DD DISP=SHR,DSN=user.barcode.eanobj |  | //SYSIN DD * |  | NAME EANSRP(R) |  | /* |  | // |  | |  | Figure 36. Sample PL/I Compile and Link Editor JCL |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY  The following example shows how to link the subroutine object  (EANSRP) with a COBOL application program object (COBOLDVR) in  data set "user.driver.obj".      Appendix C. INSTALLATION EXAMPLE USING SMP-4 34 $    ZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD?  | //JOB7 JOB |  | //LINK EXEC PGM=IEWL, |  | // PARM='LIST,MAP,XREF',REGION=128K |  | //SYSLIN DD DISP=SHR,DSN=user.driver.obj(coboldvr) |  | // DD DDNAME=SYSIN |  | //SYSIN DD * |  | INCLUDE SYSLIB(EANSRP) |  | NAME COBOLDVR(R) |  | /* |  | //SYSLMOD DD DISP=OLD,DSN=user.barcode.eanobj |  | //SYSLIB DD DISP=SHR,DSN=SYS1.EANOBJ |  | // DD DISP=SHR,DSN=cobol.vscolib |  | // DD DISP=SHR,DSN=cobol.vscllib |  | //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(1,1)) |  | //SYSPRINT DD SYSOUT=* |  | /* |  | // |  | |  | Figure 37. Sample Linkage Editor JCL |  @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY            Appendix C. INSTALLATION EXAMPLE USING SMP-4 35 $    APPENDIX D. VSE CONSIDERATIONS  ______________________________   y UNRESOLVED EXTERNAL REFERENCES:  When compiling your program, even with the PL/1 Transient and  Resident Libraries installed, you will get some unresolved  external references. These could be:  D HARD EXTRN:  DD PLIMAIN (See PL/1 Maintenance Section)  D WXTRN's:  DD PLITABS, PLIFLOW, PLICOUNT, IBMBSXCA, IBMBSXCB,  IBMBSIST, IBMVCRFB, IBMBCVZY, IBMBCWZH, IBMBPGOA,  IBMBJWTA, IBMBTOCA, IBMBTOCB, PLIXOPT, PLIXHD,  IBMBERCA, IBMBKSYA, IBMBSCPA  y PL/1 MAINTENANCE:  Another potential problem area is PL/1 maintenance. If you  order PL/1 as an optional VSE/SP product, you will get a  later refresh than if you order the products individually.  This can show up in two different ways:   D If the maintenance is not applied,  The Barcode program will run cleanly in the background  (BG), but if you try to execute the program in any other  batch partition, the program will cancel with the error  message:  OP771 - xxx name cancelled. Invalid Storage Address.  If you are able to run the program properly in BG, but  not in any other batch partitions, call the IBM support  center asking for the PL/1 queue. There are PTF's that  need to be applied to the Resident and Transient  Libraries. As of 2/89, the following PTF numbers are  required for maintenance:  UP34439, UP49983, UP53449, UP53451, UP65121   Appendix D. VSE Considerations 36 $    Please be sure and check with the support center for the  latest pre-req's and co-req's for these PTF's. In order  for these PL/1 PTF's to take affect, you MUST recompile  and link-edit the COBOL/Assembler/PL/1 Barcode program.  With these PTF's applied, the bar code subroutine can be  executed in any batch partition.   D If Maintenance is already applied to PL/1, or you apply  maintenance to solve the batch problem mentioned before,   PLIMAIN will be a HARD external reference when compiling  your bar code program. APAR PP17580 from PTF UP34439  removed the PLIMAIN CSECT from the PL/1 Resident Library  module IBMBPIRA to prevent a linkage editor warning  message of a duplicate csect. This problem is explained  in :  APAR PP51239   This APAR is closed with documentation changes to the DOS  PL/1 Optimizing Compiler Programmer's Guide. The  circumvention is to add a dummy PLIMAIN procedure to the  root phase to provide a PLIMAIN csect in the root. The  Barcode subroutine will work without adding the dummy,  but if you want to get rid of the HARD PLIMAIN EXTRN,  review APAR PP17580.         Appendix D. VSE Considerations 37 $    APPENDIX E. SUMMARY OF CHANGES  ______________________________   No font changes have been made by this release of the Bar  Code/Optical Character Recognition licensed program. However,  the fonts have been repackaged so that:  1. Bounded box and unbounded box formats can be installed on MVS  using SMP/E release 5 (or later) or IEBCOPY.  2. Bounded box and unbounded box formats on VSE are V2 data,  installable on VSE 2.1 or later.  The following subroutine changes have been made by this release  of the Bar Code/Optical Character Recognition licensed program.  1. When using the Bar Code subroutine to create CODE 128 bar  code, and the first character position is an FNC 1, the  subroutine source and object have been corrected to generate  the minimal horizontal bar code for the FNC 1 character.  2. The UPC E code in the subroutine source and object has been  expanded to support the Number System 1 bar code.  The following subroutine change made by this release of the Bar  Code/Optical Character Recognition licensed program is not  correctly documented in the Bar Code Fonts User's Guide  (S544-3190-02).  1. The correct code for sequence number 00009370 on page 32 of  the Guide should be:  IF (f=0 | f=1 | f=2) then do;       Appendix E. Summary of Changes 38 $         This page left blank intentionally             Appendix E. Summary of Changes 39 $    READER'S COMMENT FORM  _____________________   5688-021 RELEASE 01 MODIFICATION 01  CLC C20  FMIDS JJH1300  FEATURES: 5860, 5861, 5862  This form may be used to communicate your views about this  publication. They will be sent to the author's department for  whatever review and action, if any, is necessary.  IBM may use or distribute any of the information you supply in  any way it believes appropriate without incurring any obligation  whatever. You may, of course, continue to use the information  you supply.  NOTE: Copies of IBM publications are not stocked at the location  to which this form is addressed. Please direct any requests for  copies of publications, or for assistance in using your IBM  system, to your IBM representative or to the IBM branch office  serving your locality.  Possible topics for comments are:  y Clarity  y Accuracy  y Completeness  y Organization    Thank you for your cooperation. When completed, you may mail  this form to the following address:  International Business Machines Corporation  Department 53S, Building 025P  P. O. Box 1900  Boulder, Colorado 80301-9191  U. S. A.   Reader's Comment Form 40 $         This page left blank intentionally             Reader's Comment Form 41 $           END OF DOCUMENT  _______________           End of Document 42