COBOL Report Writer Precompiler (IBM-supplied),
product no. 5798-DYR
For contact details, see bottom of this webpage.
z/OS and OS/390
Notice Ref. RW62001
Using the Precompiler with the “older” Enterprise COBOL (Release 4.2 or earlier) under z/OS 2.4 may result
in a fatal termination (Abend C04 or 3002).
This is due to a fault in the updated run-time module IGZERRE issued as part of the z/OS 2.4 package.
This fault was promptly fixed by IBM and all users should apply the following PTF:
PH13320 / UI65071
This problem may occur under COBOL RW 1.6.01 and 1.6.02.
This APAR is issued to follow PTF UJ06001 to fix he following problem.
When the Precompiler is called from within another program, such as any of the application development or error-handling packages
from IBM or third parties, the Precompiler may issue an erroneous message:
CRW-PR80: xxxxxxxx DDNAME MISSING
where xxxxxxxx is nonsense.
All users who have applied PTF UJ06001 (raising the release number from 1.6.01 to 1.6.02) should also apply this Apar.
Latest release: 1.6.02 -- available through Maintenance service only
Available via a PTF update UJ06001.
Summary of additional features:
Precompiler recognises OPTFILE option.
Previously, only the compiler looked at the SYSOPTF file. This caused a potential discrepancy in the options settings
between the compiler and the RW precompiler.
You can place any options in the SYSOPTF file. The precompiler will pick up any options relevant to the precompilation,
for example ADV,QUOTE/APOST,DBCS etc. etc.
This means that the compiler and the precompiler will always be "in tune" with each other.
Precompiler-only options, such as e.g. CV,FMODE,PPSNS,OSVS etc. etc. can be specified using two asterisks.
//SYSOPTF DD *
The compiler will see these lines as comments and will ignore them.
Compatibility with IBM COBOL compilers.
Release 1.6.02 runs with all releases of IBM Enterprise (and "Vnext") COBOL:
COBOL 4.x COBOL 5.1 COBOL 5.2 COBOL 6.1 COBOL 6.2
See Technical Newsletter RW6006 for full details.
Release: 1.6.01 -- available through Maintenance service only
Summary of features:
Compatibility with IBM Enterprise (Vnext) COBOL Version 5
Simpler modular structure
Simpler customization process
Compatibility with new IBM XML commands
Full catchup with issued Apars (listed under previous release below)
Many error corrections
STYLE NARROW for Kanji
APAR fixes available for the following problems (December 2016)
VJR6001 – INEXIT(RW) With CA Optimizer
Possible Abend searching for 'CAOTSMON'.
The Precompiler may 'Abend' with a 0C4 condition, which becomes a U3002 from the compiler.
This happens beause the Precompiler is checking for loadmodule 'CAOTSMON', the CA Optimizer program,
whose name is located at a high offset within the loadmodule.
VJR6002 – **CONTROL RW not first in source
Possible HEAP Error Message.
If a '**CONTROL RW' directive is not the first line in a source,
the only lines that may precede it are (any number of) CBL/PROCESS LINES.
If the option NORW was in effect and any other source line preceded the **CONTROL RW' line,
(whether a comment, a blank line, a line of code or any other directive such as SKIP or EJECT),
the precompiler failed with a HEAP ERROR 3 message.
VJR6003 – Reduce severity of INVALID OPTION messages
Severity too severe - curtails compilation.
If the precompiler sees an invalid option in the parm string or PROCESS(CBL),
it issues one of the messages
RW-892-U PRECOMPILER OPTION %: INVALID SYNTAX,
RW-893-U PRECOMPILER OPTION %: OPERAND(S) INVALID ...,
RW-894-U PRECOMPILER OPTION % UNKNOWN OR IN WRONG ...
which are all level U, causing the (pre-)compilation to end abruptly.
Other systems, including the compiler and 3rd-party processors issue a mild warning or error.
This amendment changes the severity of the above messages from U to E.
VJR6004 – Do not scan MAP, LIST, OFFSET options
New COBOL 5/6 options mishandled by precompiler.
The COBOL options MAP, LIST, OFFSET were scanned by earlier versions of the the procompiler
for reasons which were relevant at that time.
(LIST was PMA(P), OFFSET was CLI(ST)).
Because the MAP option acquired a sub-option MAP(HEX) beginning with COBOL 5, it is no longer desirable for it to be scanned.
This amendment also prevents LIST and OFFSET from being scanned, making them similarly future-proof.
VJR6005 – MAP, LIST, OFFSET options: further
Apar VJR6004, which prevent scanning of certain COBOL options,
had undesirable additional consequences which this update corrects.
VJR6006 – Changed link to IBM COBOL 6.2
Abend C04 when RW runs as INEXIT
This is because of a change in the linkage mechanism between the compiler and the precompiler.
This update is backwards-compatible and does not affect operation with earlier releases of IBM COBOL.
Previous release: 1.5.00 -- available through Maintenance service only
Summary of features:
Full compatibility with Enterprise COBOL®, including release 3.4.
New features of COBOL 2002 Standard
Full NATIONAL support
Comprehensive Multiple Files feature
Corrections to known problems, incorporation of all previous mods.
Important notice for installers of release 1.5.00
Do not install Release 1.5.00 in the same
SMP/E zone as one containing the previous release.
This release does not delete the old release. The SMP/E steps appear
to work but the text NOT SEL is printed against most of the new functions and
hardly anything is copied. Always run the IVP (jcl CXRTEST).
APAR fixes available for the following problems (February 2012)
VJR5045 – INEXIT(RW) With CA Optimizer
This Apar reverses the effect of Apar VJR5005 which is harmful in certain cases where CA Optimizer is not running.
VJR5044 – A DBCS Character Should Occupy 2 Columns
The Precompiler incorrectly assigned only one column per DBCS character instead of two.
VJR5043 – Kanji Data-Names Corrupted
A character in a Kanji Data-Name that looks like a quote, apostrophe or question mark confuses the Precompiler.
VJR5042 – Precompiler retains lower memory
The Precompiler uses a small sector of lower memory and fails to release it at the end of its execution.
VJR5041 – Precompiler retains allocated memory
The Precompiler, both inexit and standalone, sometimes fails to release all the memory it has allocated.
VJR5040 – Compiler messages on front page lost
If a source program begins with CBL/PROCESS line(s), the Printexit may suppress Compiler messages that should normally appear on the front page before the Options.
VJR5039 – No space between Program Name and Date
If the Program Name is 8 characters long, the Printexit prints it squashed up against the date.
VJR5038 – Suppression of Compiler’s IGYLI0090-W message
Compiler may find
sequence errors during ‘Library phase’ but its message was suppressed giving
a mysterious rc = 4 and warning message at the end referring to a
VJR5037 – Allow Report
Section to be empty
Allow the REPORT
SECTION header to be followed immediately by another section or
division. Previously, severe
diagnostic messages were issued on encountering an empty Report Section.
VJR5036 – Precompiler
options misplaced on front page
COBOL 4.1, precompiler options settings appear above or below the compiler
options rather than alongside them.
This amendment fixes the problem but works with all versions of IBM
VJR5035 – As VJR5034,
affected by sequence columns
VJR5034 – Precompiler
inserted its own comment lines at start
causing compiler errors by inserting its own comment lines before the
CBL/PROCESS statement. This happens
when the first source statement is not recognized (e.g. is not IDENTIFICATION
VJR5033 – hex '27' with
Related to VJR5032, affecting long literals.
VJR5032 – hex '27'
If the character
represented by hex '27' appears in the source, e.g. as part of a literal, the
precompiler erroneously changes it to a space.
VJR5031 – Missing spaces
If the XREF option
is used, line number changed by the Printexit may have no spaces between
them. This can cause an 0C9 Abend in some third-party systems.
VJR5030 – Missing
SECTION will be assumed if omitted before SOURCE-COMPUTER, OBJECT-COMPUTER or
SPECIAL-NAMES, for compatibility with the previous release.
VJR5029 – NOSOURCE option
when no Printexit
specified in the precompiler/compiler options with the stand-alone
precompiler or the Inexit without the Printexit, the precompiler may fail with a 0C1
VJR5028 – Continuation
If a word is
erroneously continued, by a “-“ in column 7 of the next line, into the
A-margin, i.e. before column 12, in the Procedure Division, an internal error
VJR5027 – Variable
records with Page Buffer
A RECORD CONTAIN m
TO n or RECORD IS VARIABLE clause in FD when PAGE BUFFER feature used may
cause erroneous message PAGE BUFFER WIDTH EXCEEDED at run time.
VJR5026 – REPORT SECTION
Although this is a
non-standard permitted extension, it sometimes caused compilation errors due
to loss of a chunk of generated Data Division. This order is now definitely permitted in
VJR5025 – COUNT of item
with FUNCTION clause
If a COUNT refers
to an elementary item with a FUNCTION clause, wrong code is generated.
VJR5024 – PROCESS in
If a PROCESS
directive begins in columns 1 to 6 in the source line, and the Printexit
option is in use, the source line is corrupted by a “0” (zero) character and
a compilation error results.
VJR5023 – Control Heading
For Page when all Lines Not Present
If all the LINE
clauses of a CH FOR PAGE [OR controls] group are subject to a PRESENT WHEN
(other than at the 01 level) or an ODO and all its LINEs are absent at a
specific instant, serious misalignment of Detail lines may occur.
VJR5022 – Message 061
From Error to Warning
Error 061 “Absolute
line follows relative line” was only a Warning in the previous release but is
now an Error. This Apar changes it
back to a Warning, for compatibility.
VJR5021 – Overflow of
Replaced Lines Misaligned
When a COPYbook
line containing sequence numbers and/or identification columns has an element
replaced by a longer piece of text, so that the line overflows onto a new
line, the new line may encroach into the A-margin.
VJR5020 – Allow a
“Literal” to be Continued into the A-Margin
If a continuation
of a literal in the Report Section starts before column 12, a compilation
error is signalled, in deference to the standard rules. This Apar relaxes the rule so that this is
allowed, for compatibility with the previous release.
VJR5019 – Corruption of
Control Name in Intermediate Source
If an RD contains a
CONTROL(S) clause, under certain circumstances the precompiler corrupts the
name of the control identifier amd generates a spurious 'S' and a string of numerals. (Compare VJR5006, although this is a different
VJR5018 – Erroneous Error
169 With SUM Term
If a SOURCE
expression is defined using SUM terms, such as (SUM OF A) / (SUM OF B), and
with a PICTURE having more than 12 integer places, an erroneous Error 169
message is given.
VJR5017 – Error in Continuations
and Doubled Quotes
If a non-numeric
“literal” in quotes contains a doubled quote as part of the text, an error
may occur if the literal is continued between the two quotes; same for apost.
VJR5016 – Lost period in
FD with COPY
If an FD statement contains a COPY
clause, the precompiler sometimes deletes the final period.
VJR5015 – Garbage after
If the PROGRAM-ID
etc. paragraph has a premature period before an additional phrase such as
INITIAL, no error is given and the phrase has no effect.
VJR5014 – Erratic
behavior of long detail names
If the program
contains a large number of long DETAIL group names, a reference to them in
the procedure division (such as a GENERATE) may cause corruption resulting in
an Abend or erroneous “%” characters.
VJR5013 – NORW setting
shown in listing as RW
If the RW option is
set to NORW (by customizing or in the JCL), overridden by a *CONTROL RW
directive in the source, the setting printed in “Precompiler Options in
Effect” is shown as RW.
VJR5012 – Literal X’….’
may be split over 2 lines
If a report section
item has a VALUE with a hexadecimal literal above a certain length, the
literal may be copied by the precompiler with the X on a different line from
the rest of the literal.
VJR5011 – *CONTROL RW
causes compilation error
If a source program
has the directive *CONTROL RW (with a single asterisk) at or near the start,
the precompiler leaves it unchanged, resulting in an E-level diagnostic.
VJR5010 – Very large
sources corrupt sequence numbers
If a source program
is more than 65535 lines long, the sequence printed on the left side by the
Print Exit are incorrect; in certain cases a S0C1 abend occurs.
VJR5009 – National Items
in REPLACE / REPLACING
If the text to be
replaced or the replacement text contains national data, the text may fail to be matched or
may be replaced incorrectly.
VJR5008 - Spurious SKIP
If a source line
begins with the characters SKIP at the start of a data-name, the precompiler
misinterprets this as a SKIP directive.
VJR5007 - Spurious
If an RD has a
large number of sum counters, the precompiler may generate a spurious
"-" in continuation column 7;
this causes a compilation error due to an "undefined data name".
VJR5006 - Long CONTROLS
If an RD has a
CONTROLS clause with a large number of operands (e.g. 15 with 15 characters
precompiler may generate a 'non-COBOL character', a spurious 'S' and a string of
VJR5005 - Inexit(RW) With CA Optimizer
If the compiler
with Inexit(RW) is invoked by CA Optimizer, an S0C4 abend results because the
locate the address of the "Parm" string.
VJR5004 - Inexit(RW) Double Invocation
If a the compiler is
invoked by certain COBOL processors, e.g. Compuware's, an S0C4 abend results
the compiler and Inexit are invoked twice, which exposed an error in the
VJR5003 - UPON group-name
on new line
If a SUM clause had
an "UPON group-name" clause with the group-name starting on a new
source line, an erroneous message RW-124-S was issued.
VJR5002 - literal missing
A missing opening
quote/apostrophe on a list of "literals" caused the Precompiler to
loop with an
internal error message.
VJR5001 - date format in
prints a "friendly" date format instead of mm/dd/yy which certain
products don't recognize; this Apar restores the format to plain mm/dd/yy.
Special update for
Japanese Language (Nov 2005)
This update is currently unnumbered and is available on request
The precompiler now
aligns DBCS (double-byte character set) items correctly and scans DBCS names
correctly; DBCS report items occupy 2 columns per character but may begin on
an even or odd column.
Previous release: 1.4.11
UJ04006 - Run-Time update, Year 2000
UJ04007 - Run-Time update, Year 2000
UJ04008 - Run-Time update, Year 2000
UJ04010 - Various Hyper Fixes
UJ04011 - Various Fixes to JCL Procedures
APARs superseded by PTFs UJ040010 and UJ04011:
VJR4013 - Missing DDname in PRNT file handler
VJR4031 - Some run-time routines not re-entrant
VJR4066 - Repeating PICTURE insertion symbol
VJR4069 - Unpaired Apostrophe in Comment Paragraph
VJR4071 - Duplicated RD with SUM
VJR4072 - Allow '-' as alternative to '/' in PPSNS parameter
VJR4073 - 'BLOCK 0 TO .' (sic) trips precompiler
VJR4074 - Period starting erroneous continuation
VJR4075 - No error on missing INITIATE
VJR4076 - SOURCE CURRENT-DATE and PRESENT WHEN
VJR4077 - 'LAST FOOTING integer' causes heap error 04
VJR4078 - Absolute LINE after relative LINE
VJR4079 - Message RW-133 rewording
VJR4080 - MGENER and LGSEQ options
VJR4083 - PROCESS as paragraph name
VJR4084 - Commas generated after PROCESS SECTION
VJR4085 - Output from LIST option missing
VJR4081 - Faults with CXRCOMPR
VJR4082 - Modules CXRPBF02-06 not installed
New APARs, provided with level 1.4.11:
VJR4053 - Function DAY had restricted window
VJR4054 - ditto
VJR4061 - Install-Verify program and INTDATE option
VJR4062 - Install-Verify program for VS COBOL II
VJR4067 - Function DAY ambiguity of parameters
VJR4068 - ditto
Optional APAR (Sep 2001)
VJR4087 - Invocation of
Precompiler via ATTACH
New APAR (Oct 2001)
VJR4088 - Precompiler
New APARS (April 2004)
VJR4089 - CICS option
mishandled by precompiler
VJR4090 - XML GENERATE statement
New APAR (May 2004)
Binary characters in input source
PTF updates up to UJ04011 plus APAR VJR4088 are recommended for z/OS (all
releases) and IBM COBOL for z/OS and OS/390 Release 3.1.
PTF updates up to UJ04009 are recommended for OS/390 release 2.10 and IBM
COBOL for OS/390 Release 2.1 and Language Environment/370 Release 7 and
PTF updates up to UJ04009 are necessary for full Year 2000 compliance.
Current Level 1.4.11 printed on the listing heading
as "4.11". Minimum Level for Year 2000 Compliance: 1.4.09.
Base release (before updates): 1.4.1
Latest release (after
WJ04001 run-time century compliance
WJ04002 4-character year in listing header
WJ04003 Freevis "failure"
WJ04004 Illegal SVC X'83' with VSE 1.4.3
WJ04005 COPY...REPLACING giving just period
WJ04006 NEXT GROUP clause in TYPE CF FINAL
WJ04007 Precompiler Various Hyper Fixes, November 1998
WJ04008 Precompiler Y2K and MLE Updates, November 1998
WJ04009 Run-Time Y2K Updates, December 1998
WJ04010 Corrections to COPY...REPLACING and REPLACE, June 2000
WJ04011 Corrections to COPY...REPLACING and REPLACE, June 2000
Updates WJ04001, WJ04008 and WJ04009 are necessary for full Year 2000
Current level: 1.4.19, printed on the listing heading as "4.19".
Minimum Level for Year 2000 Compliance: 1.4.18.
(before updates): 1.4.0
CJ04001 miscellaneous precompiler fixes
CJ04002 issuing RWCOBOL2 command twice in succession
CJ04003 precompiler fix
CJ04004 miscellaneous non-year-2000 updates to precompiler
CJ04005 year-2000 updates to precompiler
RWUPD971 run-time century compliance
RWUPD981 run-time century compliance, second set
Updates RWUPD981 and CJ04005 are necessary for full Year 2000 compliance.
Telephone Number: UK
and Rest of World
IBM Retain (IBM customers only):
Please contact your
local technical rep. The Retain Queue is COBRW,136.
You may also access your usual IBM Software Support number. It is advisable
to notify the support e-mail (see above) also.
Level for Year 2000 Compliance: 1.4.5, printed on the listing heading as
To order copies of these updates, or to
register for service and support, email us now. New licenses include one
year's support and update service, from date of installation, with renewable