Joined: 14 Jan 2008 Posts: 2504 Location: Atlanta, Georgia, USA
I have a customer, who (up until recently) always compiled their COBOL programs (both Batch and CICS) using the DATA(24) option, because "They always did it this way"
Now, they're asking me to alter the load-module signature-byte, which is byte-01, bit-03, to a value of B'1', which represents DATA(31). So basically, this byte would be changed from B'01000000' to B'0110000'.
I have advised them that a zap like this could open a can of worms as well as affect 24-Bit Assembler sub-program addressability (they have several dozen). I've advised them that (as the very least) the Assembler sub-programs need to be relinked as AMODE 31 / RMODE ANY.
Has anyone ever done this load-module alteration before, with success?
I've told them to recompile/link their COBOL programs, specifying the DATA(31) compile option (I believe that's the default) and that will be that.
Joined: 06 Jun 2008 Posts: 8165 Location: East Dubuque, Illinois, USA
I've never done such a modification and I suspect it won't work anyway -- COBOL does other things during the compile process that can be affected by the DATA option (generation of address fields for calls to internal programs is just the first thing that comes to mind). They need to bite the bullet and recompile using DATA(31) to resolve everything correctly. If not, I'd recommend at least a couple of months of testing to see what shows up before trusting any such code to production.