z390 Portable Mainframe Assembler and Emulator

z390 Options for v1.3.09

Automated Software Tools Corporation
z390 Options include the following:

z390 Command Line options for macro assembler

The following table shows all the z390 options available and which programs they apply to:

  • M - mz390 macro processor which reads ASCII assembler source and generates expanded BAL
  • A - az390 assembler which reads BAL and generated OBJ relocatible object code
  • L - lz390 linker which reads OBJ relocatible object files and generates 390 load module
  • E - ez390 emulator runtime which loads and executes 390 load module

To turn off an option that is on, prefix the option name with NO on command line or in OPT options file.

Option Scope Default Description
@file MALE NO Retrieve additional options from free form text file with default suffix OPT.  Options can be specified delimited by spaces on as many lines as requires.  All characters on a line following * are ignored as comments. The @file option can be nested.  The default path is the program path.
ALLOW M NO Allow extensions to HLASM syntax including no requirement for quotes around SETC variables in AIF and SETC expressions.  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
ASM MA YES Run az390 assembler as subtask of mz390 passing BAL
ASSIST MAE NO Enabled assembly and execution of the 11 new ASSIST instructions added in v1.4.01 to simplify I/O for student use.  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 as follows:
0 - no checking
1- check for missing AGO and AIF labels and issue warning
2 - check missing labels and also check for text after MEND
CHKSRC(0-2) MA 1 Check input source files as follows:
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.
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.
CICS MA NO Support EXEC CICS pre-processor expansion and constants
CON MALE YES Console output for all display and error messages
DUMP E NO Generate full memory dump on LOG or TRE if abort
EPILOG M YES Generate epilog for CICS program if CICS option on
ERR(100) MALE 100 Terminate process if total errors for program exceeds limit. Use ERR(0) to eliminate any error limit.
ERRSUM M NO Generate error summary on console and/or ERR file. Option is turned on automatically if missing macros or copybooks found.
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' and all memory to hex x'F5' for easier identification of access to uninitialized registers or memory fields.  This default option was adopted when ASSIST option was added after fixing a number of regression test initialization bugs.  Use NOINIT to revert to all zeros as work-around for bugs.
INSTALL(dir) MALE NO Define alternate z390 install directory to run batch command.  The default is set from J2SE 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'10000' 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.
MAXCALL(50) M 50 Set limit for nested macro calls.
MAXESD(1000) AL 1000 Set limit for ESD sections or entries in one program.
MAXFILE(1000) M 1000 Maximum macro and copybook files
MACGBL(1000000) M 100000 Maximum global macro variables
MAXHEIGHT(600) E 600 Maximum pixel height for GUI dialog windows
MAXLCL(100000) M 100000 Maximum local macro variables
MAXLINE(200000) MA 200000 Maximum MLC, MAC, CPY, and BAL source lines that can be loaded into memory during an assembly.
MAXLOG(1000000) 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(100000) M 10000 Maximum length of any string during macro processing
MAXPC(50000) M 50000 Maximum pseudo code instructions held in cache before LRU replacement begins.
MAXQUE(1000) 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(10000) L 10000 Maximum RLD relocation records allowed in a program.
MAXSIZE(50) MALE 50 Maximum size of any output file in MB
MAXSYM(50000) MA 50000 Maximum symbols in one macro assembly
MAXWARN(4) MA 4 Maximum MNOTE warning level without generating error.
MAWIDTH(800) E 800 Maximum pixel width for GUI dialog windows
MEM(1) 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(150) E 150 Minimum pixel height for GUI dialog windows
MINWIDTH(150) E 150 Minimum 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.
OBJ A YES Generate relocatible 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.
PARM('text') E none Define character string parm to passed to executable program via address in R1 at startup pointing to half word length followed by EBCDIC characters. Default length is 0.
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 opcodes.
PROFILE(file) M NO Insert COPY file in front of MLC source file
PROLOG M YES Generate CICS prolog macro code if CICS option 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 24 bit address line.
RMODE31 LE NO Set 390 load module options to load module above the 31 bit address line.  Note this options requires option MEM be set to include enough memory above the 31 bit address line.
STATS or 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.
SYSPARM('text') M none Define text string which can be accessed by mz390 global macro variable &SYSPARM.
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.
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 suffix.
SYSCPY(dir) MA pgm dir Define one or more directories for retrieving CPY source input files.
SYSDAT(dir) M pgm dir Define directory for retrieving DAT source input files for AREAD. 
SYSERR(dir) MALE pgm dir Define directory for output ERR files
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 files
SYSLST(dir) AL pgm dir Define directory for output LST files.  This option may also override file name and suffix.
SYSMAC(dir) M mac dir Define one or more directories for source MAC files
SYSMLC(dir) MA pgm dir Define directory for source input MLC files
SYSOBJ(dir) AL pgm dir Define directory for OBJ relocatible object files
SYSOPT(dir) MALE pgm dir Define directory for @file option files
SYSPCH(dir) M pgm dir Define directory for PCH output files from PUNCH.  This option may also override file name and suffix.  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.
SYSPRN(dir) A pgm dir Define directory for assembler listing PRN output files.  This option may also override file name and 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.
TESTDD(file) E NO Define input command file to run TEST commands.  See regression test rt\test\TESTTST1.MLC for example.
TIME or TIME(seconds) MALE YES Limit execution time of each program to the number of seconds specified.  The default is 15 seconds. This option is turned off if NOTIMING specified.
TIMING MALE YES Calculate elapsed time and instructions per second statistics for display on START/END messages and STA statistics. Note NOTIMING is used in regression tests to force generated files to be identical by using fixed data/time stamp.
TRACE or TRACE(AEGLMPQTV) E NO TRACE or TRACE(E) will turn on ez390 execution trace generation on TRE file and turn off CON.  Any combination of the following trace options can be set using the TRACE(...) option.
TRACEA or TRACE(A) A NO TRACEA or TRACE(A) will turn on az390 assembly trace generation on TRA file and turn off CON.
TRACEALL MALE NO Turn on all trace options generating TRM, TRA, TRL, and TRE files and turn off CON.
TRACEC or TRACE(C) M NO Trace copy file code for TRACEM and TRACEP.  The default is NOTRACEC to eliminated 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.
TRACEL or TRACE(L) L NO TRACEL or TRACE(L) will turn on lz390 linker trace generation on TRL file and turn off CON.
TRACEM or TRACE(M) M NO TRACEM or TRACE(M) will turn on mz390 macro processor trace generation on TRM file and turn off CON.
TRACEP or TRACE(P) M NO TRACEP or TRACE(P) will turn on mz390 macro processor pseudo code generation and execution trace on TRM file and turn off CON.
TRACEQ or TRACE(Q) E NO TRACEQ or TRACE(Q) will turn on ez390 emulator QSAM/BSAM DCB I/O trace generation on TRE file and turn off CON.
TRACET or TRACE(T) E NO TRACET or TRACE(T) will turn on ez390 emulator TGET/TPUT and TCP/IO trace generation on TRE file and turn off CON.
TRACEV or TRACE(V) E NO TRACEV or TRACE(V) will turn on ez390 emulator VSAM ACB/RPL I/O trace generation on TRE file and turn off CON.
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.
XREF A YES Cross reference symbols to source lines in PRN assembly listing.

z390 GUI startup options

The following options can be added to the Z390.BAT startup command file in the install directory which is executed when you double click on the z390 desktop icon:

  • /SC maximize.ini -  the /sc option executes the z390 startup commands in the named file.  See the z390 User Guide for list of commands including changing the location and size of the z390 GUI dialog.
  • /NP – suppress all permissions to test web version

  • /NT – suppress the unique time stamp included in the default log file name (By default the unique time stamp insures a log of all z390 commands executed are retained for each instance of z390 GUI window, command line, and batch file executions. The log files can be deleted periodically.)

z390 GUI Environment Variable Options

Environment variables are supported on both Windows and Linux for setting the following z390 GUI options.  Environment variables are also used to define the file specifications for DDNAME's used in z390 macro assembler program extended AREAD and PUNCH statements and in DCB's and ACB's for file access.  The environment variables for batch execution must be set in z390 BAT command or in individual batch commands prior to executing program since each batch command runs in its own environment space.

  • Z390ACROBAT=cmd.exe /c Start - default started task for processing Acrobat PDF commands
  • Z390BROWSER=cmd.exe /c Start - default started task for web browser started by z390 to access www.z390.org online documentation.  For Windows Start invokes IE.  For Linux the default is firefox.
  • Z390COMMAND=cmd.exe - default batch command processor used by z390 GUI for unknown commands.  On Windows this is the standard Windows BAT file command processor.  For Linux this is a Perl script named cmd.pl which processes Windows compatible BAT command files and performs the same functions.
  • Z390EDITOR=notepad.exe - default GUI editor started by z390 GUI using the EDIT command.  For Linux the default is gedit.
  • INSTALL="c:\Program Files\Automated Software Tools\z390" - default z390 install location

J2SE runtime startup options

The following J2SE runtime startup options may be added to any of the following z390 commands:

  • z390.bat - start the z390 GUI which in turn runs z390 batch commands in the background
  • mz390.bat - run the z390 macro assembler (called from ASMLG, ASML, and ASM commands)
  • lz390.bat - run the z390 linker (called from ASMLG, ASML, and LINK commands)
  • ez390.bat - run the z390 emulator (called from ASMLG and EXEC commands)

Any of the following J2SE options can be added to the above command files by setting J2SEOPTIONS environment variable:

  • -classpath path to jar file (the z390.jar containing all z390 classes is in the install directory)
  • -verbose:gc trace garbage collection to detect memory leaks (useful for debugging memory leaks)
  • -XmsnK set initial memory allocation to nK (useful to force larger J2SE alloc memory, but can stall OS)
  • -XmxnK set max memory allocation to nK (useful to reduce default J2SE alloc memory if needed)
  • -Xrs allow control break interruption of java tasks (allows user CTRL-BRK interruptions)

 

z390 Default file types

TYPE Scope Format Description
BAL MA ASCII Basic Assembly Language generated ASCII source file generated by mz390 when option BAL is specified.  When option ASM is on (the default), mz390 starts az390 as a separate process running in parallel and passes generated BAL statements directly to it.  This allows the first pass of assembler processing to be overlapped with macro expansion and eliminates need to write and read external BAL file.
CPY MA ASCII Copybook source included in source programs, macros, or other copybooks
DAT M ASCII Text data input files read via AREAD statements in macro processor specifying ID=, DDNAME= or DSNAME= extended parameters.  AREAD with no extended parameters reads the next statement in the input stream.
ERR MALE ASCII Output log of all START and ENDED messages plus any errors plus any error file references.
LOG E ASCII Output log of for GUI or batch command execution controlled by CON option
LKD L ASCII Optional input command for linker (INCLUDE, ENTRY, ALIAS, NAME)
MAC M ASCII macro source files
MLC M ASCII macro assembler source programs read by mz390
OBJ AL EBCDIC
ASCII
Default is mainframe linker compatible relocatible object code 80 records (ESD, TXT, RLD, and END).  When OBJHEX option is specified for assembler, ASCII readable text extended format supporting 31 bit long sections is generated.  The linker can read either format by examining files.
OPT MALE ASCII Optional options files referenced via @file option from command line or other option files
PCH M ASCII Output text files written via PUNCH statements in macro processor using optional ID=, DDNAME=, or DSNAME= extended parameters.  The default is pgm.PCH.
PRN A ASCII Output assembly language listing from az390
STA MALE ASCII Output statistics file listing options set, program statistics, and file references
TRA A ASCII Trace output file for assembler (lists each line being assembled during each pass)
TRE E ASCII Trace output file for emulator (lists each instruction, address, and operand values)
TRL L ASCII Trace output file for linker (lists each OBJ record processed)
TRM M ASCII Trace output file for macro process (TRACEM lists each macro line executed, TRACEP lists every macro pseudo code instruction executed showing the current value of local and global variables used in SET statements and AIF statements etc.)
390 LE binary Executable z390 load modules created by linker from OBJ files and loaded by emulator.  390 load modules contain 16 byte header, binary image of executable code and data, plus relocation records if any)

This page last updated Thursday July 03, 2008.   Webmaster  Sitemap
Copyright 2005 Automated Software Tools Corporation