cobol2.hlp (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
SEGCROSS Details (↑ Object Code)
 Key Summary                             Up Contents Index Back
────────────────────────────────────────────────────────────────────────────
 
     Integers must be separated by commas.
 
     If a program has less than 64K of its own data, the compiler assumes
     that any parameters passed into the program do not cross segment
     boundaries. If this is not the case, SEGCROSS "integer" must be
     specified for all Linkage Section items that may cross a segment
     boundary.
 
     If a program has 64K or more of its own data, the compiler assumes
     that Linkage Section items do cross segment boundaries. You can specify
     NOSEGCROSS "n" for any Linkage Section item that does not cross a
     segment boundary. This results in more efficient code.
 
     For example, look at the following Linkage Section:
 
       linkage section.
       01 a        pic x(10).
       01 b        pic 9(8).
       01 c.
           03 c1   pic x(10).
           03 c2   pic x(20).
       01 d        pic 9(4).
       01 e        pic 9(8) comp-x.
 
     If you know that b and c will never cross a segment boundary, you
     can specify SEGCROSS "1,4,5" to indicate that boundary crossing
     code is only to be produced for a, d and e.
 
     With NOSEGCROSS, the code generated follows the rules given under
     the SMALLDD directive in this chapter. With SEGCROSS "integer-1,
     integer-2,...", the setting of SMALLDD is ignored.
 
     See also SMALLDD
                                    -♦-