Problem:
A program compiled with "Dialect(mf)" does not produce any SYSOUT for DISPLAY statements. It does for DISPLAY UPON CONSOLE.
Resolution:
In the Help (using Net Express as an example):
Reference > Compiler Directives > Compiler Directives - Alphabetical Listing > DIALECT Setting MF, the default options are listed for that dialect. NOOUTDD is the default for MF.
In the same location, check the DIALECT Setting for the mainframe dialects (MVS, OS390, etc), OUTDD is the default for all of them.
The description of OUTDD leads to the reason the DISPLAYs don't appear:
"Causes DISPLAY and EXHIBIT statements to be written to a specified output file.."
There are also Comments for OUTDD that provide more details:
Comments:
When OUTDD is specified, all format 1 DISPLAY statements which either have no UPON option or specify UPON SYSOUT, and all EXHIBIT statements and the output from TRACE are transformed into WRITE statements, writing to a file with the specified external filename.
The filename can be mapped onto physical filenames in the same way as other files with external filenames; that is, by using environment variables or the External File Mapper.
Override the NOOUTDD by specifying OUTDD as an additional directive in a .dir file, unless compiling a JCL exit. NOOUTDD is required for MFJUXIT.