PDRCCA2M

PDRCCA2M converts ANSI carriage controls to machine carriage controls.

Syntax

PDRCCA2M 'indsn outdsn switches'

Table 1. Parameters for PDRCCA2M
Parameter Description Default
indsn The input data set name or DD name. Do not use quotation marks. Use the format DD:DDName for DDs.

In JCL, an asterisk (*) indicates the default DD. In REXX, you must specify the input data set name.

REXX: No Default

JCL: DD:SYSUT1

outdsn The output data set name or DD name. Do not use quotation marks. Use the format DD:DDName for DDs.

In JCL, an asterisk (*) indicates the default DD. In REXX, you must specify the output data set name.

REXX: No Default

JCL: DD:SYSUT2

switches Up to three switches with no intervening spaces. A slash must precede each switch.
The first switch specifies the record format to which PDRCCA2M will convert the input, as follows:
  • /F — Fixed. Keep output records as they were in the input print stream.
  • /V — VBA. Strip blanks from each record in the output print stream.
/F/E
The second switch specifies how to pad records inserted into the input print stream, as follows:
  • /A — Use the ASCII hexadecimal character x'20' to pad inserted records.
  • /E — Use the EBCDIC hexadecimal character x'40' to pad inserted records.
The third switch, /T, sets PDRCCA2M to issue trace information for every 1,000 records.

Example

PDRCCA2M 'D966.IN(TEST1) D966.OUT(TEST1) /V/T'

In this example, PDRCCA2M is to convert ANSI carriage controls in D966.IN(TEST1) to machine carriage controls in D966.OUT(TEST1). PDRCCA2M will convert the record format to VBA (that is, it will remove all spaces from the end of each record) and will issue trace information every 1,000 records. The REXX exec automatically browses the output data set so you can verify the results.

JCL

The following shows the JCL shipped with the PDRCCA2M utility.

//*jobcard
//**********************************************************************
//**Customize:  1. Change STEPLIB to point to the datasets where    ***
//**               the following are installed at your site.        ***
//**                - Enrichment load module                       ***
//**                - C runtime library                             ***
//**            2. Change SYSUT1 and SYSUT2 DDs to be the datasets  ***
//**               for input and output respectively.               ***
//**********************************************************************
//** PDRCCA2M ** Convert ANSI to Machine Channel Controls           ***
//**********************************************************************
//** PDRCCA2M Parameters:                                           ***
//**************  Parm1: Input file name/DD (or * to keep SYSUT1)   ***
//**************  Parm2: Output file name/DD (or * to keep SYSUT2)  ***
//**************  Parm3: Options (no space between):                ***
//**************    /F = Fixed (keep lines same as input) - DEFAULT ***
//**************    /V = VBA output (strip blanks from each record) ***
//**************    /A = ASCII pad inserted lines (hex 20)          ***
//**************    /E = EBCDIC pad inserted lines (hex 40)-DEFAULT ***
//**************    /T = Trace every 1000 lines                     ***
//**************      Example:  PARM='* * /V/A/T'                   ***
//**************                PARM='DD:IN DD:OUT /T'              ***
//**********************************************************************
//PDRCCA2M EXEC PGM=PDRCCA2M,PARM='* * /V/T'
//STEPLIB  DD DSN=PDR.STREAMW.LOAD,DISP=SHR
//         DD DSN=SYS3.CLIB22.SEDCBASE,DISP=SHR
//         DD DSN=SYS3.CLIB22.SEDCLINK,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSUT1   DD DSN=inputdsn,DISP=SHR
//SYSUT2   DD DSN=outputdsn,DISP=SHR
//*

REXX Code

The following shows the REXX Code shipped with the PDRCCA2M utility.

/* REXX ** Convert ANSI CC to machine CC ****************************/
/* Changes: -Created: 02/01/96 DJK                                  */
/* Customize: Change loadmod below to be where Enrichment is      */
/*            installed.                                            */
/********************************************************************/
loadmod = "'PDR.STREAMW.LOAD(PDRCCA2M)'"
address TSO
arg in out strip .

parse source . . execname .;  version = '1.0'
if in = '' | out = '' then do
   Call EXPLAIN
   say 'Enter parameters in the order explained.'
   say 'Do not use quotes around dataset names.'
   pull in out strip .   if in = '' | out = '' then
      call ERROR 8, 'Required parameters indsn and outdsn are missing.'
End

/* Allocate input and output files                                   */
   if sysdsn("'"in"'") <> 'OK'  then do
      say "Input file '"in"' not found:" sysdsn("'"in"'")
      exit 4
   end
   "CALL "loadmod" '''"in"'' ''"out"'' "strip"/T'"
   address ISPEXEC "BROWSE DATASET('"out"')"

exit
/*********************************************************************/
/* ERROR - Error exit with message                                   */
/*********************************************************************/
ERROR:
   if arg(2) <> '' then say arg(2)
   if arg(3) <> '' then say arg(3)
   exit arg(1)
/*********************************************************************/
/* EXPLAIN - Self documenting routine                                */
/*********************************************************************/
EXPLAIN:
   say '(c)Precisely'
   say '    'execname' Version' version ' All rights reserved.'
   say
   say 'Function: Convert ANSI CC to machine CC. '
   say
   say 'Syntax:   %'execname' indsn outdsn strip'
   say '          where: indsn is the input dataset (required).'
   say '          Do not include quotes.'
   say '          outdsn is the output dataseot include quotes.'
   say '          strip are any parameters to pass to the '
   say '          load module.'
   return