On the one hand, it is possible to load and initialize EDT via the subroutine interfaces and, on the other, the subroutine interfaces can be called in an already initialized EDT environment (for example, after F mode has been switched to with @DIALOG and the user has issued @HALT to return to the calling program).
If, in the latter case, the work files are not empty, then EDT is either in compatibility or Unicode mode and no changeover is possible.
It is permissible to change operating mode directly after initialization or when all the work files are empty.
It is necessary to distinguish between these cases when issuing calls at the subroutine interface.
The following table provides an overview of which subroutine interfaces are permitted in which environment and how the calls are handled.
It also considers the case in which only EDT V16 is available in the current system environment.
EDT V17 not | EDT V17 present, | EDT V17 present, | EDT V17 present, | |
Call via | As previously | Set compatibility | No special action | Convert to V17 |
Call via | Convert to V16 | Set Unicode mode | Convert to V16 | No special action |
Call via | Error | Set Unicode mode | Error | No special action |
Call via | As previously | Set compatibility | No special action | Error |
The following functions are available depending on the set EDT V17.0A mode and the employed subroutine interface:
L mode interface:
All the functions present in compatibility mode are available. If Unicode mode has been activated, all calls via the L mode interface are rejected with RC X'0C'
. Since it is usually only permitted to switch to Unicode mode and back again if the work files are empty, it is not possible to access the new Unicode mode record structure via the L mode interface.
IEDTGLE interface (V16 format):
All the functions present in compatibility mode are available. If Unicode mode is active then IEDTCMD
, IEDTEXE
, IEDTDEL
and IEDTREN
can be used without restrictions. IEDTPUT
, IEDTGET
are permitted in Move mode. However, conflicts may occur if the buffer size is inadequate. In the past, the provided buffer was sometimes too small to accept the record. In this case, a corresponding return code was supplied and this still occurs.
IEDTGLE interface (compatible V17 format):
Only those Unicode mode functions are provided that can be converted to equivalent V16 format functions. This format is intended for users who want to use the new interface but who need to make sure that their programs will still run with EDT V16.6B. Locate mode is no longer provided.
IEDTGLE interface (extended V17 format):
Only the Unicode mode functions are available. Locate mode is no longer provided.
Detailed information about the subroutine interfaces is provided in the manual “EDT Subroutine Interfaces” [1].