COBOL Report Writer Precompiler (IBM-supplied),

product no. 5798-DYR


For contact details, see bottom of this webpage.


Jan 2024: New Update to Release 1.7.00

These new media, transmitted automatically to users with Maintenance, contain the following TNL and one update.

Technical Newsletter RW70006
This TNL contains further full details of the update listed below.

APAR fix VJR7005: Abend U4036-6 in 64A memory module

On some cpu models, one of the machine instructions used by the 64A memory module was 'illegal' and caused this Abend. This update eliminates the instruction.

Sep 2023: New Update to Release 1.7.00

These new media, transmitted automatically to users with Maintenance, contain the following TNL and one update.

Technical Newsletter RW70005
This TNL contains further full details of the update listed below.

APAR fix VJR7004: DDNAME replacement error with NOPRTX

When the Precompiler was called from within another program, rather than directly via JCL, an unexpected message SITE NAME NOT SPECIFIED... CRW-PR80: ........ DDNAME MISSING appeared.

Oct 2022: New Update to Release 1.7.00

These new media, transmitted automatically to users with Maintenance, contain the following TNL and one update.

The Release No. is increased from 1.7.02 to 1.7.03, although library names remain as .V1R7M00.

Technical Newsletter RW70004
This TNL contains further full details of the update listed below.

APAR fix VJR7003: COBOL RW Precompiler 64A Memory Space

This update greatly reduces the Precompiler's use of 31A and 24A memory by storing all its intermediate data in 64A address space.

Nov-Dec 2021: New Update to Release 1.7.00

These new media, transmitted automatically to users with Maintenance, contain the following TNL and one update.

The Release No. is increased from 1.7.01 to 1.7.02, although library names remain as .V1R7M00.

Technical Newsletter RW70003
This TNL contains further full details of the update listed below.

APAR fix VJR7002: COBOL RW now supports COBOL 4.2 etc.

This update adds the ability for the Precompiler to run in combination with any current IBM COBOL, from the earliest up to 6.3, in particular Enterprise COBOL 4.2 which many users still rely on. The same method of operation is used in all cases and no further changes are needed to the installed version.

Spring 2021: New Updates to Release 1.7.00

These new media, transmitted automatically to users with Maintenance, contain the following TNL and two updates.

The Release No. is increased from 1.7.00 to 1.7.01, although library names remain as .V1R7M00.

Note on new naming conventions.

Update media have names RW17xnnn where 'x' is A for Apar, P for PTF, R for run-time update and where nnn is a sequence number. Thus 003 is the latest at this time. RW17A001 is a redundant Apar fix.

Technical Newsletter RW70002
This TNL contains further full details of the updates listed below.

Transmission Medium RW17R003

Run-Time update
This update affects run-time routine CXRRELA which is used to implement the Report Writer REPEATED feature. It prevents an error when compiler option NUMCHECK(BIN,...) is set.

Transmission Medium RW17P002

PTF update UJ07001: Problems Fixed

Problem 3098: DDNAME replacement error with NOPRTX.
This problem problem arose when the Compiler+Precompiler was invoked by another program, as opposed to directly from JCL and when the Printexit (PRTX(RW)) was not running. A fault in the Precompiler caused an unexpected message to appear: SITE NAME NOT SPECIFIED CRW-PR80: ........ DDNAME MISSING where the '........' consists of random blank characters.

Problem 3099: compiler warnings with option DIAGTRUNC.
This update prevents a compiler Warning message due to Precompiler-generated code when the option DIAGTRUNC was set.

Problem 3103: zero Return Code with NORW & PRTX(RW).
This fixes a problem which was a consequence of a previous Apar update in elease 1.6.02.

APAR fix VJR7001: DDNAME replacement error with NOPRTX Problem 3098
Superseded by PTF UJ07001 - see above

Release 1.7

This new Release is now available automatically to all users with a Support and Maintenance contract. Principal features are:

  (a) delivery media are entirely in plain 80-column text format

  (b) new "oven-ready" Install process is greatly simplified

  (c) it was developed for and with IBM COBOL 6.3 but works with all currently-supported IBM COBOL

  (d) it corrects some cases of error and warning messages being missed or misapplied

  (e) has improved handing of Kanji (Japanese names)

  (f) it incorporates all minor updates previously issued for Release 1.6.02

Apar VJR6206. Prereq PTF UJ06001. Affected: PRINTEXIT.

In certain circumstances, the final line of the Printexit's listing, which is just the word "return code" and its value, was not updated, even though the actual return code was set correctly, as was the rest of the listing.

Apar VJR6205. Prereq PTF UJ06001. Affected: basic files.

If the stand-alone precompiler was executed without the SYSINS data definition, the precompiler issued an error message repeatedly. Because omitting SYSINS is a rare event, this problem was not noticed before.

Apar VJR6204. Prereq PTF UJ06001. Affected: PRINTEXIT.

The precompiler may fail to set the return code when the LIST option is specified with version of IBM COBOL prior to 6.3. This is because those earlier versions of the compiler printed the LIST output (i.e. Assembler code) after the messages.

Apar VJR6203. Prereq PTF UJ06001. Affected: PRINTEXIT.

The Printexit may fail to re-number the compiler's output related to the MAP, LIST and OFFSET options with versions of IBM COBOL later that 5.1.

Apar VJR6202. Prereq PTF UJ06001. Affected: PRINTEXIT.

If the compiler issues no messages - not even an 'I' severity - the precompiler may fail to print its own messages and set the return code. This is because the Printexit looks for the "Messages" header in the compiler listing. If it doesn't find it, it cannot insert its own messages. The problem is solved by forcing the compiler to issue at least one I-severity message. This is done by generating an empty paragraph (with no statements), provoking a 2015-I message.

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.

Apar VJR6201. Prereq PTF UJ06001. Affected: invocation as a subprogram.

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.

For example:

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

Minor fixes.
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

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

Additional consequences.

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
Conditional Precompilation
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 (Sep 2005)

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 non-existent message.

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
IWith Enterprise 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 COBOL.

VJR5035 – As VJR5034, affected by sequence columns

VJR5034 – Precompiler inserted its own comment lines at start
The precompiler 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 DIVISION).

VJR5033 – hex '27' with long literals
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 in XREF
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.

CONFIGURATION 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
If NOSOURCE specified in the precompiler/compiler options with the stand-alone precompiler or the Inexit without the Printexit,  the precompiler may fail with a 0C1 abend.

VJR5028 – Continuation into A-margin
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 may result.

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.

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 all cases.

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 Columns 1-6
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 case.)

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 PROGRAM-ID
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 Directive
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 Continuation Indicator
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 clause
If an RD has a CONTROLS clause with a large number of operands (e.g. 15 with 15 characters average), the
precompiler may generate a 'non-COBOL character', a spurious 'S'  and a string of numerals.

VJR5005 - Inexit(RW) With CA Optimizer
If the compiler with Inexit(RW) is invoked by CA Optimizer, an S0C4 abend results because the precompiler cannot
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 because
the compiler and Inexit are invoked twice, which exposed an error in the Inexit.

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 opening delimiter
A missing opening quote/apostrophe on a list of "literals" caused the Precompiler to loop with an
internal error message.

VJR5001 - date format in listing header
The Printexit prints a "friendly" date format instead of mm/dd/yy which certain third-party
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

PTF updates:

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
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 with ALL31(ON)

New APARS (April 2004)

VJR4089 - CICS option mishandled by precompiler
VJR4090 - XML GENERATE statement

New APAR (May 2004)

VJR4091 - 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 above.

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 updates): 1.4.19

Current updates:

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
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 compliance.

Current level: 1.4.19, printed on the listing heading as "4.19". Minimum Level for Year 2000 Compliance: 1.4.18.


Base release (before updates): 1.4.0

Current zaps:

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

Other updates:

RWUPD971 run-time century compliance
RWUPD981 run-time century compliance, second set

Updates RWUPD981 and CJ04005 are necessary for full Year 2000 compliance.

Contact Details

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.

Minimum Level for Year 2000 Compliance: 1.4.5, printed on the listing heading as "4.05".

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 annual maintenance.