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►
-♦-