What causes u0060 abends?
A u0060 abend indicates a program interrupt occurred during execution of code external to VISION:Builder such as own-code and user I/O.
The most common cause is a CALL to a subroutine compiled as 24 bit which conflicts with VISION:Builder in 31 bit mode addressing. This occurs most frequently with old COBOL routines, but can be true of user subroutines written in any language.
The mode conflict can be verified as the source of the problem by adding an RP statement with 31-BIT parameter value set to NO in traditional fixed format syntax, or by adding AMODE 24 to the CONTROL statement in ASL free form syntax.
Once confirmed, the solutions are to either recompile the user routine with a 31 bit compliant compiler, or alter VISION:Builder to execute in 24 bit mode.
To alter VISION:Builder, the individual application can run as described above, or it can be set for the site by changing the M4PARAMS parameter AMODE31 to N from the default of Y. M4PARAMS can be linked into a separate loadlib which can be concatenated ahead of the standard loadlib so only affected jobs can use it and the rest of the site applications can still benefit from 31 bit processing.