, 1 min read

Memory Limitations with IBM Enterprise COBOL Compiler

Original post is here eklausmeier.goip.de/blog/2013/06-22-memory-limitations-with-ibm-enterprise-cobol-compiler.


Recently I learned the hard way that IBM Enterprise COBOL compiler for z/OS (mainframe) cannot generate 8-byte long POINTER variables, but only 4-byte pointers. This means, you cannot use more than 2GB in COBOL on a mainframe. I.e., you cannot make use of AMODE=64 with COBOL on the mainframe. You can run in AMODE=64, but you cannot exploit it. By the way, we have the year 2013. So, no big-data on mainframe with COBOL.

IBM Assembler and C/C++ can fully exploit AMODE=64, i.e., can use 8-byte long pointers.

Added 16-May-2020:

  1. Enterprise COBOL for z/OS, Version 4.2.0: No AMODE=64
  2. Enterprise COBOL for z/OS, Version 5.2.0: No AMODE=64
  3. Enterprise COBOL for z/OS, Version 6.1.0: No AMODE=64
  4. Enterprise COBOL for z/OS, Version 6.2.0: No AMODE=64
  5. Enterprise COBOL for z/OS, Version 6.3.0: Hurray, now finally AMODE=64 support since September 2019

For a list of versions see IBM Enterprise COBOL for z/OS.