Language Restrictions for Gnosis
The position options of OPEN and CLOSE are ignored.
User Labels are not supported.
SORT is not supported.
Segmentation is not supported.
Dynamic subroutine linkages are not supported.
See (p3,osiorestrict) for further hints about file support.
Thus, a return-jump still acts more like the typical machine-language CALL {which saves a "location counter" somewhere} than like the typical RETURN {which restores {part of} an earlier state without saving the current state}.
The IBM extension RETURN-CODE is documented at [IVC354] along with other extension collectively referred to as "special registers".
For programs that receive strings in a variety of formats the string portion of the record would be an undifferentiated string of maximum length.
Some global variable called "DATABYTE" might hold the databyte of the start key that delivered the most recent message.
The jump mechanism must know the length of the string. This is required both for sending and receiving a message. Cobol does not transmit the length to a called subroutine. There are two proposed schemes:
A field of the record following the real stuff could be passed as an extra argument thus allowing the jump mechanism to deduce the length.
Another problem is to get the arithmetic values to and from the fields within the record. The S and SI functions of PL/I do this. Cobol has no functions.