z390 Options
The scope value details where the option is used.
- M - mz390 macro processor which reads ASCII assembler source and generates expanded BAL
- A - az390 assembler which reads BAL and generated OBJ relocatable object code
- L - lz390 linker which reads OBJ relocatable object files and generates 390 load module
- E - ez390 emulator runtime which loads and executes 390 load module
!!! Note: most options can be prefixed with NO to turn the feature off.
Use of parameters with parentheses in *nix shells
Unix shells like sh and bash interpret parentheses if not quoted. For this reason, if you need to specify a parameter that contains parentheses, then that parameter should be quoted.
For example, the SYSMAC parameter is quoted as it uses parentheses, whereas the ALIGN parameter is not.
"SYSMAC(foldername)" ALIGN
Option | Scope | Default | Description |
---|---|---|---|
@filename | MALE | Options in Z390.OPT file if found | Retrieve additional options from free form text file with default suffix OPT. Options can be specified delimited by spaces on as many lines as required. All characters on a line following * are ignored as comments. The @file option can be nested. The default path is the program path. If a file named Z390.OPT exists in the z390 install directory, these options will be applied first as default options. |
ALIGN | A | YES | Align DS/DC data fields based on type unless explicit length is specified. If duplication factor is 0, then NOALIGN is ignored. |
ALLOW | M | NO | Allow extensions to HLASM syntax. See note below this table for details. The default of NOALLOW insures HLASM compatibility. |
AMODE24 | LE | NO | Set 390 load module options to start in 24 bit address mode. |
AMODE31 | LE | YES | Set 390 load module options to start in 31 bit address mode. |
ASCII | AE | NO | Generate ASCII versus EBCDIC DC character constants, compare character strings in ASCII versus EBCDIC in macro processor, generate ASCII versus EBCDIC output for UNPK, ED, and EDMK. See note following this table. |
ASM | MA | YES | Run az390 assembler as subtask of mz390 passing BAL. Note NOASM is for use in pure text processing programs which only use conditional macro code and AREAD/PUNCH with extensions to process ASCII text files. NOASM does not support ordinary symbol attribute tests, OPSYN, or lookahead mode, and requires CHKMAC(0) and CHKSRC(0-2). |
ASSIST | MAE | NO | Enable assembly and execution of ASSIST I/O and debugging instructions. This option also sets NOLOADHIGH. See ASSIST Support. |
AUTOLINK | L | YES | Search for unresolved external references in SYSOBJ directory list which defaults to linklib. |
BAL | M | NO | Generate BAL expanded assembler source file. |
BS2000 | MA | NO | Support Siemens BS2000 assembler global variables. |
CHKMAC(0-2) | M | 0 | Check macros during loading. See note below this table for details. |
CHKSRC(0-3) | MA | 1 | Check input source files. See note below this table for details. |
CICS | MA | NO | Support EXEC CICS pre-processor expansion and constants. If this option is not on during macro expansion, PROLOG and EPILOG option settings will be ignored. |
CODEPAGE | MALE | CODEPAGE(ISO-8859-1+IBM1047) | Values: ebcdic+ascii[+LIST]. If +LIST is added the mapping of the 2 codepages along with printable character and Unicode values are displayed on ERR file. A hex dump of the tables and a list of the valid ASCII and EBCDIC Unicode Charset codepages are listed. You can replace the EBCDIC codepage name with a file specification such as IBM1047.HCP (example included) which is in hex dump format. The above defaults match z/OS. |
CON | MALE | YES | Console output for all start/stop, error, trace, MNOTE's with level > 4, and WTO messages. When the TRACE??? option is specified, the CON option is turned off so only start/stop and abort error messages appear on console log. You can specify CON after last TRACE option to turn it back on if you want all display, trace, and error messages displayed on console log. All the trace messages appear on corresponding TR? file for each z390 program executed. |
DUMP | E | NO | Generate full memory dump on LOG or TRE if abort. |
EDF | M | YES | CICS Execution Diagnostic Facility. |
EPILOG | M | YES | Generate epilog macro call DFHEIEND for CICS program at END statement if CICS option and EPILOG option are on. |
ERR(100) | MALE | 100 | Terminate process if total errors for program exceeds limit. Use ERR(0) to eliminate any error limit and always generate PRN file. |
ERRSUM | M | NO | Generate critical error summary on console and ERR file listing missing macros and copybooks. This option requires ASM option and is turned on automatically if missing macros or copybooks are found in the executed macro code path. When ERRSUM is on, ERR(0) is set to prevent abort prior to finding all macro and copybook references. All errors are listed on ERR file along with summary report. Note several iterations may be required to identify and resolve all missing macros and copybooks. |
GUAM | E | NO | Support one or more GUI Graphical User Access Method dialogs for MCS, TN3270, or graphics user interface. |
INIT | E | YES | Initialize all registers to hex x'F4', all memory to hex x'F5', and all uninitialized load module areas to x'F6' for easier identification of access to uninitialized registers, memory or program fields. Use NOINIT to perform low value initialization. |
INSTALL(dir) | MALE | NO | Define alternate z390 install directory to run batch command. The default is set from Java property "user.dir". |
IPL(pgm) | E | none | Execute 390 program at startup. |
LIST | ALE | YES | Generate PRN, LST, and LOG files for assembler, linker, and execution respectively. |
LISTCALL | MA | YES | Generate level macro call and exit comments in BAL file which are used by assembler to format first level macro calls preceding assembler lines with "+" for macro generated source. |
LISTUSE | A | YES | List active USING definitions each time USING or DROP changes status in the PRN assembly listing file. |
LOADHIGH | E | YES | Load programs and allocate memory for GETMAIN/STORAGE from high end of first FQE large enough to satisfy request. The ASSIST option changes this option to NOLOADHIGH causing initial program to load starting at X'8000' which simplifies relative address calculations. |
LOG(file) | MALE | pgm | Set file name for ERR, TR?, and LOG files. The default is the program name. This option is required when running multiple copies of the same program via CMD startup in order to create separate unique ERR, TR?, and LOG files. Otherwise duplicate programs running in parallel will mod the same ERR, TR?, and LOG file. |
MACHINE | A | -- | MACHINE / OPTABLE options determine which opcode table is used during assembly. See table below for details, |
MAXCALL(num) | M | 50 | Set limit for nested macro calls. |
MAXDISPLAY(num) | M | 80 | Use to increase zCOBOL DISPLAY line size up to 256 characters. |
MAXESD(num) | AL | 1000 | Set limit for ESD sections or entries in one program. |
MAXFILE(num) | M | 1000 | Maximum macro and copybook files. |
MAXGBL(num) | M | 100000 | Maximum global macro variables. |
MAXHEIGHT(num) | E | 600 | Maximum pixel height for GUI dialog windows. |
MAXLCL(num) | M | 100000 | Maximum local macro variables. |
MAXLINE(num) | MA | 200000 | Maximum MLC, MAC, CPY, and BAL source lines that can be loaded into memory during an assembly. |
MAXLOG(num) | MALE | 1000000 | Maximum GUI log file output before truncation begins by removing 50% to limit memory consumption. The only limit on size of log file is MAXSIZE. |
MAXPARM(num) | M | 10000 | Maximum length of any string during macro processing. This is an extension as HLASM limit is currently 1024. |
MAXPASS(num) | A | 2 | Maximum passes of the BAL source by assembler to resolve forward nested symbol references prior to final pass to generate object code. The number of LOCTR statements is added to this limit in order to resolve the final address of each LOCTR section. |
MAXPC(num) | M | 50000 | Maximum pseudo code instructions held in cache before LRU replacement begins. |
MAXQUE(num) | E | 1000 | Maximum output queue length from any CMD started task before queue messages are automatically copied to GUI output log to conserve memory and prevent stall. |
MAXRLD(num) | L | 10000 | Maximum RLD relocation records allowed in a program. |
MAXSIZE(num) | MALE | 50 | Maximum size of any output file in MB. |
MAXSYM(num) | MA | 50000 | Maximum symbols in one macro assembly. |
MAXWARN(num) | MA | 4 | Maximum MNOTE warning level without generating error. |
MAXWIDTH(num) | E | 800 | Maximum pixel width for GUI dialog windows. |
MCALL | A | NO | List each macro call and exit on the PRN assembly listing in addition to first level calls if LISTCALL option is also on. |
MEM(num) | E | 1 | Memory allocated for 390 program execution in MB. Note for RMODE31 loads and GETMAIN's memory above the 16 MB line must be allocated. For example MEM(32) would provide 16 MB below the line and 16 MB above. |
MINHEIGHT(num) | E | 150 | Minimum pixel height for GUI dialog windows. |
MINWIDTH(num) | E | 150 | Minimum pixel width for GUI dialog windows. |
MNOTE(num) | MA | 0 | Control MNOTE error/warning messages during macro expansion and assembly. See note below this table for details. |
MOD | L | NO | Generate raw code file from lz390 with .MOD suffix and no header or trailer and no RLD's. |
OBJ | A | YES | Generate relocatable object code file. |
OBJHEX | A | NO | Generate ASCII readable form of OBJ file with support for 31 bit long sections. The default is to generate binary OBJ file which is compatible with mainframe linkers but is limited to 24 bit long sections. |
OPTABLE | A | z390 | MACHINE / OPTABLE options determine which opcode table is used during assembly. See table below for details. |
PARM('text') | E | '' | Define character string parm passed to executable program via address in R1 at startup pointing to a fullword pointing to a halfword length followed by EBCDIC characters. When the length is zero, no PARM is present. |
PC | M | YES | Generate macro pseudo code in cache memory for speeding up macro code that is executed more than once during macro expansion. |
PCOPT | M | YES | Optimize macro pseudo code by looking for push, add/sub, store sequences and replacing them with inc/dec pseudo code opcodes. These pseudo codes are maintained in a cache in memory during macro execution only and have no effect on generated object code. |
PRINTALL | A | NO | Suppress PRINT OFF and PRINT NOGEN commands to force all source lines on PRN listing. |
PDSMEM8 | M | NO | If PDSMEM8 option is specified, error messages will be issued for any macro or copybook file names with length greater than 8. This option is available to provide compatibility with mainframe PDS libraries that are limited to 8 character names. Note zCOBOL and zCICS use names longer than 8 characters such as zcobol\IDENTIFICATION.MAC and cics\CICS_INQUIRE.MAC. |
PROFILE(file) | M | NO | Insert COPY file in front of MLC source file. |
PROLOG | M | YES | Generate CICS prolog macro calls DFHEIGBL, DFHEISTG, and DFHEIENT if CICS option and PROLOG options are on. |
PROTECT | E | YES | Prevent modification of PSA in low memory 8K block. |
REFORMAT | M | NO | Reformat expanded BAL code to align all opcodes at column 10 and operands at column 16 if possible. |
REGS | E | NO | Generate GPR register trace before and after each instruction if TRACE option on. |
RMODE24 | LE | YES | Set 390 load module options to load module below the 16MB line. |
RMODE31 | LE | NO | Set 390 load module options to load module above the 16MB line. Note this load module option requires option MEM to be set to include enough memory above the 16MB line. |
STATS[(file)] | MALE | NO | Generate statistics file STA with final options listing, macro and copybook file listing, plus all program statistics. If file is omitted the program path and file name are used with STA suffix. |
SYS390(dir) | LE | pgm dir | Define directory for storing and retrieving 390 load modules. |
SYSBAL(dir) | MA | pgm dir | Define directory for storing and retrieving generated BAL files. This option may also override file name and/or suffix (*.sfx overrides just the suffix in the pgm directory). |
SYSCPY(dir) | MA | pgm dir | Define one or more directories for retrieving CPY source input files. If the option starts with + the directories listed will be concatenated with current list. Multiple directories are always separated by +. This option may also override suffix by adding *.sfx. |
SYSDAT(dir) | M | pgm dir | Define directory for retrieving DAT source input files for AREAD. Set to SYSDAT(.) for current directory when no path is specified on DSNAME parm for AREAD. |
SYSERR(dir) | MALE | pgm dir | Define directory for output ERR files. This option may also override file name and/or suffix (*.sfx overrides just the suffix in the pgm directory). |
SYSLKD(file) | L | pgm dir | Define input source file for linker commands such as INCLUDE, ALIAS, ENTRY, and NAME. |
SYSLOG(dir) | E | pgm dir | Define directory for output LOG file. This option may also override file name and/or suffix (*.sfx overrides just the suffix in the pgm directory). |
SYSLST(dir) | AL | pgm dir | Define directory for output LST files. This option may also override file name and/or suffix (*.sfx overrides just the suffix in the pgm directory). |
SYSMAC(dir) | M | mac dir | Define one or more directories for source MAC files. If the option starts with + the directories listed will be appended to the maclib list. Multiple directories can be specified in one parameter and are always separated by +. When you specify this option more than once and want previous parameter instructions to remain in place, ensure that you start parameter with a + otherwise it will drop prior directories. This option may also override suffix by adding *.sfx. |
SYSMLC(dir) | MA | pgm dir | Define directory for source input MLC files. |
SYSOBJ(dir) | AL | pgm dir | Define directory for OBJ relocatable object files. |
SYSOPT(dir) | MALE | pgm dir | Define directory for @file option files. This option may override suffix using *.sfx. |
SYSPARM('txt') | M | none | Define text string which can be accessed by mz390 global macro variable &SYSPARM. |
SYSPCH(dir) | M | pgm dir | Define directory for PCH output files from PUNCH. This option may also override file name and/or suffix (*.sfx overrides just the suffix in the pgm directory). Note PUNCH output is in ASCII source format and is not directed to the OBJ file. These files may be used as linker input commands via SYSLKD(file) option. Set to SYSPCH(.) for current directory when no path is specified on DSNAME parm for PUNCH. |
SYSPRN(dir) | A | pgm dir | Define directory for assembler listing PRN output files. This option may also override file name and/or suffix (*.sfx overrides just the suffix in the pgm directory). |
SYSTERM(file) | MALE | pgm.ERR | Define alternate file for all start/end messages plus any error messages, plus related source file statistics for each file containing errors. The default is the program name with ERR suffix. |
SYSTRC(dir) | MALE | pgm dir | Define directory for output TRACE TR? files. |
TEST | E | NO | Start execution with interactive TEST mode active which prompts for commands such as T opcode or G opcode to trace or execution to the next occurrence of opcode name. |
TEST(ddname) | E | NO | Define input command file to run TEST commands.ddname is an environment variable set to the name of the command file. |
THREAD | A | NO | Assign continuing CSECT addresses for multiple CSECT's assembled in the same module to help identify location of instruction and data labels. |
TIME[(num)] | MALE | YES | Limit execution time of each program to the number of seconds specified. The default is 15 seconds. NOTIME and NOTIMING both turn off this option. Use NOTIME to allow tasks such as SOA servers like z390CICS to run continuously while still supporting application use of timing functions. |
TIMING | MALE | YES | Calculate elapsed time and instructions per second statistics for display on START/END messages and STA statistics. TIMING also displays current z390 and J2SE version on start message and memory usage on ended message. Note NOTIMING is used in regression tests to force generated files to be identical by using fixed data/time stamp using GregorianCalendar(2005,0,2,22,33,44). NOTIMING suppresses versions on start message and memory usage on ended message. NOTIMING also sets NOTIME which prevents application from using time functions. |
TRACE | E | NO | Turn on ez390 execution trace generation on TRE file and turn off CON. TRACE will display every instruction executed along with address and value of each operand. Any combination of the following trace options can be set using the TRACE(...) option: AEGILMPQTV. TRACE(*) will also set TRACEALL. Note the &SYSTRACE global SETC variable can be used to turn any trace options on or off during execution. See table below for details. |
TRACEALL | MALE | NO | Turn on all trace options generating TRM, TRA, TRL, and TRE files and turn off CON. See table below for details. |
TRAP | E | YES | Trap any unexpected J2SE program exceptions and generate emulator 0C5 exception which can be handled by SPIE/STAE exits if defined. NOTRAP can be used with Eclipse source debugger to stop at J2SE statement causing exception. |
TS | MALE | NO | Generate JDBC compatible time-stamp on all TRACE and ERR file records for use in debugging time dependent issue. |
VCB | E | YES | Generate VSAM cache buffer for improving VSAM performance by storing most recently accessed records and indexes. |
WRITENONPRINTABLE | MA | NO | Write non-printable characters to PRN, BAL and PCH files. The default value NOWRITENONPRINTABLE replaces all non-printable characters with the '.' character. This avoids issues caused by writing control characters such as 0x0A (Line Feed) or 0x0D (Carriage Return). |
XREF | A | YES | Cross reference symbols to source lines in PRN assembly listing. |
ZSTRMAC | M | YES | Support expansion of ZSTRMAC structured conditional macro code instructions during loading of MLC, MAC, and CPY files. Note z390 macros in z390\mac directory now are using zstrmac for structured coding. NOZSTRMAC can only be used with MVS, VSE, or other non-structured macro libraries. |
ZVSAM | E | 0 | ZVSAM 0=no vsam, 1=zvsam1 support |
Note on ALLOW mode: The following features are enabled in allow mode: 1. No quotes required for SETC variables 2. Duplication factor does not require (..) 3. Array declarations with variables in expression accepted 4. Substring starting beyond end returns null string 5. Quoted strings allowed in SETA and SETB expressions 6. Allow &var as null string if not found during substitution 7. Allow duplicate local and global variable declarations 8. Allow AREAD and PUNCH file records greater than 80 characters.
Note on ASCII mode: ASCII mode is not mainframe compatible and requires careful review of program to insure no EBCDIC immediate compare constants such as X'40', 64, X'F0', 240 etc. are used and that there are no assumptions about EBCDIC versus ASCII collating sequences which have numbers and letters reversed, and EBCDIC letters are non-contiguous. Typically HLASM compatible programs are run in default EBCDIC mode and DCB RECFM=FT|VT or some other translation option is used to convert between EBCDIC and ASCII where necessary. Note there are a few instructions affected by ASCII mode: 1. ED/EDMK generate ASCII versus EBCDIC but the mask must always be in EBCDIC (masks are usually coded in X'...' format) 2. UNPK generates X'3' versus X'F' in zone field (high order nibble).
Note on CHKMAC options: - 0 - no checking - 1 - check for missing AGO and AIF labels and issue warning - 2 - also check missing labels and also check for non comment text after MEND
Note on CHKSRC options: - 0 - no checking - 1 - check MLC or BAL input source files for any non-ASCII characters and issue error - 2 - check MLC, MAC, CPY, and BAL input source files for any non-ASCII characters and issue error - 3 - also check for out of sequence characters in 73-80 or any non-blank characters beyond 80 and issue error - - Note this should detect any EBCDIC literal character strings containing non-ASCII characters such as binary 0 byte which must be changed to hex X'00' type strings for portability.
Note on MNOTE options: - 0 - default generates MNOTE error/warning during mz390 and az390 - 1 - suppress mz390 error/warning and only pass MNOTE to az390 - 2 - generates MNOTE error/warning during mz390 and suppresses passing them on to az390
Tracing options and equivalences
TRACE will display every instruction executed along with address and value of each operand. Any combination of the following trace options can be set using the TRACE(...) option. TRACE(*) will also set TRACEALL. Note the &SYSTRACE global SETC variable can be used to turn any trace options on or off during execution.
Option | Scope | Default | Description |
---|---|---|---|
TRACE | E | NO | Turn on ez390 execution trace generation on TRE file and turn off CON. TRACE will display every instruction executed along with address and value of each operand. |
TRACEA or TRACE(A) | A | NO | Turn on az390 assembly trace generation on TRA file and turn off CON. TRACEA will display each BAL statement during each pass of the assembler. |
TRACEC or TRACE(C) | M | NO | Trace copy file code for TRACEM and TRACEP. The default is NOTRACEC to eliminate redundant code that usually just contains global variable declarations. |
TRACEG or TRACE(G) | E | NO | Turn on ez390 emulator trace generation on TRE file with trace of GETMAIN/FREEMAIN FQE memory management control block changes and turn off CON. |
TRACEI or TRACE(I) | M | NO | TRACEI will trace each AINSERT showing source on the TRM trace file. |
TRACEL or TRACE(L) | L | NO | Turn on lz390 linker trace generation on TRL file and turn off CON. TRACEL shows each CSECT, ENTRY, EXTRN and OBJ file being loaded. |
TRACEM or TRACE(M) | M | NO | Turn on mz390 macro processor trace generation on TRM file and turn off CON. TRACEM displays each conditional macro statement executed plus stored values and AIF compare values. |
TRACEP or TRACE(P) | M | NO | Turn on mz390 macro processor pseudo code generation and execution trace on TRM file and turn off CON. TRACEP shows each conditional macro pseudo operation performed for each conditional macro statement and the values of all variables. |
TRACEQ or TRACE(Q) | E | NO | Turn on ez390 emulator QSAM/BSAM DCB I/O trace generation on TRE file and turn off CON. |
TRACES or TRACE(S) | M | NO | Display MLC source lines on console regardless of CON setting to help locate any loops, waits, or hangs in large macro process. If MCALL is also on, then *MCALL and *MEXIT comments will also be displayed to show location with nested macros. |
TRACET or TRACE(T) | E | NO | Turn on ez390 emulator TGET/TPUT and TCP/IO trace generation on TRE file and turn off CON. |
TRACEV or TRACE(V) | E | NO | Turn on ez390 emulator VSAM ACB/RPL I/O trace generation on TRE file and turn off CON. |
TRACEALL | MALE | NO | Turn on all trace options generating TRM, TRA, TRL, and TRE files and turn off CON. |
Machine and optable options and equivalences
Machine | Machine | Optable | Optable | Description |
---|---|---|---|---|
S360-20 | 360-20 | z390 extension: S360-20 specific subset of DOS instructions | ||
DOS | ||||
S370 | 370 | |||
S370XA | ARCH-0 | XA | ||
S370ESA | ARCH-1 | ESA | Synonyms for ESA | |
S390 | ARCH-2 | ESA | ||
S390E | ARCH-3 | ESA | ||
ARCH-4 | ESA | |||
zSeries | ZSeries-1 | ZS1 | ZOP | Synonyms for ZOP |
ZS | ZS-1 | ZS1 | ZOP | |
z800 | z900 | ZS1 | ZOP | |
ARCH-5 | ZS1 | ZOP | ||
z890 | z990 | ZS2 | YOP | Synonyms for YOP |
zSeries-2 | ZS-2 | ZS2 | YOP | |
ARCH-6 | ZS2 | YOP | ||
zSeries-3 | ZS-3 | ZS3 | Z9 | Synonyms for Z9 |
z9 | ARCH-7 | ZS3 | Z9 | |
zSeries-4 | ZS-4 | ZS4 | Z10 | Synonyms for Z10 |
z10 | ARCH-8 | ZS4 | Z10 | |
zSeries-5 | ZS-5 | ZS5 | Z11 | Synonyms for Z11 |
z114 | z196 | ZS5 | Z11 | |
z11 | ARCH-9 | ZS5 | Z11 | |
zSeries-6 | ZS-6 | ZS6 | Z12 | Synonyms for Z12 |
zBC12 | zEC12 | ZS6 | Z12 | |
z12 | ARCH-10 | ZS6 | Z12 | |
zSeries-7 | ZS-7 | ZS7 | Z13 | Synonyms for Z13 |
z13 | ARCH-11 | ZS7 | Z13 | |
zSeries-8 | ZS-8 | ZS8 | Z14 | Synonyms for Z14 |
z14 | ARCH-12 | ZS8 | Z14 | |
zSeries-9 | ZS-9 | ZS9 | Z15 | Synonyms for Z15 |
z15 | ARCH-13 | ZS9 | Z15 | |
zSeries-10 | ZS-10 | ZSA | Z16 | Synonyms for Z16 |
z16 | ARCH-14 | ZSA | Z16 | |
UNI | All current instructions from optables above | |||
[DFLT] | Cannot be specified, same as UNI plus one z390 directive for zCobol support | |||
z390 | UNI plus all z390 instructions; not compatible with HLASM |
Remark: there is no machine option keyword equivalent for optable(DOS).
Remark: option allow adds z390 instructions to specified optable.
Remark: option assist adds ASSIST instructions to specified optable.