Joined: 14 Jan 2008 Posts: 2504 Location: Atlanta, Georgia, USA
COBOL2 Load Modules will be larger than COBOL1. What the percentage that would be depends on some factors.
If you activate the OPTIMIZE compiler option in a COBOL2 environment, you'll probably find that the load-module size is larger than the same load-module compiled with NOOPTIMIZE, as an optimized COBOL2 load-module tends to copy PERFORMED routines in-line, resulting in duplication. However, when this occurs, the logic presents itself as more "Top Down" resulting in less page faults and thus, faster execution.
One other compiler option that you must be careful of is TRUNC, which relates to binary data.
If you have WS binary-fields with a VALUE clause and this value exceeds the number of digits in the picture and you've specified TRUNC(OPT), you'll get high-order truncation.
Otherwise, TRUNC(BIN) should be specified, which will not cause high-order truncation, based upon the picture-clause number of digits.
03 WS-HWORD PIC S9(04) COMP VALUE +32767.
In the above, the value will be truncated to +2767, even though (technically), it's a binary-halfword, whose signed-value maximum is +32767 (65535 unsigned), TRUNC(OPT) doesn't see it that way.
If you don't have any binary-fields with a VALUE clause, whose value exceeds the maximum number of digits, then TRUNC(OPT) will be fine.
Note that the object code generated by TRUNC(BIN) is usually 100% to 300% more instructions, so keep this in mind and such, load-module sizes will be different when one is used instead of the other.
IIRC, TRUNC(STD) is the default and I'd advise you to override this as it is similar to TRUNC(BIN), but not as grossly inefficient.
Also (very important), watch your AMODE/RMODE settings for COBOL2 callers who are calling AMODE24 sub-programs. You WILL crash and burn as 24-Bit sub-programs can't address 31-Bit data.
Keep in mind that you're migrating from an unsupported release of COBOL to another unsupported release of COBOL and (IMHO), the migration should be to one of the more current (and supported) releases, such as Enterprise.
Your IBM representative should be discussing these issues with your management and assisting with future migration considerations.
Also, it's either CICS TS/3.1 or CICS/TS 3.2 (can't recall exactly) which does NOT support COBOL1 (OS/VS COBOL) and will crash and burn if these types of load-modules are found.
Again, your IBM representative should be working closely with your people to ensure a smooth transition and if an IBM product breaks, that you'd be on a supported version/release.
Otherwise, IBM will gladly accept your check to fix out of support products.