IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Load Module of a Cobol Converted code


IBM Mainframe Forums -> PL/I & Assembler
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
janakimaviti

New User


Joined: 02 Feb 2006
Posts: 2

PostPosted: Wed Apr 02, 2008 8:38 pm
Reply with quote

Hi,
I am converting code from COBOL I to COBOL II. Can any one tell me whether load module size increases or decreases in doing so?.
Back to top
View user's profile Send private message
Bill O'Boyle

CICS Moderator


Joined: 14 Jan 2008
Posts: 2501
Location: Atlanta, Georgia, USA

PostPosted: Wed Apr 02, 2008 11:45 pm
Reply with quote

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.

Example -

Code:

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. icon_wink.gif

HTH....

Regards,

Bill
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> PL/I & Assembler

 


Similar Topics
Topic Forum Replies
No new posts Replace each space in cobol string wi... COBOL Programming 3
No new posts Load new table with Old unload - DB2 DB2 6
No new posts COBOL -Linkage Section-Case Sensitive COBOL Programming 1
No new posts run rexx code with jcl CLIST & REXX 15
No new posts COBOL ZOS Web Enablement Toolkit HTTP... COBOL Programming 0
Search our Forums:

Back to Top