z390 Portable Mainframe Assembler and Emulator

z390 Project Statistics

Automated Software Tools Corporation
The following statistics have been compiled on the z390 Project:

Java Open Source Code Statistics as of v1.5.06 with zcobol COMPUTE implied decimal support

Program Files Source lines Description
z390.java 1 3646 Graphical User Interface using J2SE Swing GUI Support
az390.java 1 9377 Assembler to convert BAL to OBJ
ez390.java 1 570 Execute 390 load module running pz390 and sz390 on thread)
gz390.java 1 3493 GUAM Graphical User Access Method dialog support with MCS console, TN3270, and graphic display views
iz390.java 1 160 Installation verification program (run IVP.BAT)
lz390.java 1 1277 Link one or more OBJ files into binary 390 load module
mz390.java 1 12502 Macro Processor to expand MLC to BAL
pz390.java 1 19566 Instruction processor for ez390 including z9 and z10 opcodes
sz390.java 1 7859 Service processor with SVC, test, and trace support for ez390
tz390.java 1 8210 Shared tables and methods
vz390.java 1 4277 VSAM file access for ESDS, RRDS, and KSDS files
Java source 9 73061 z390 Project open source J2SE Java programs
Batch cmds 42 781 Batch task BAT  commands such as ASM, ASMLG, JOB, EXEC which run on separate thread from GUI interface
z390 Macros 127 9830 Assembler macros  which generate executable code using ez390 svc calls: WTO, WTOR, WAIT, TGET, TPUT, TIME, LINK, LOAD, DELETE, GETMAIN, FREEMAIN, OPEN, CLOSE, GET, PUT, READ, STIMER. STORAGE, TN3270, GUAM, WRITE, POINT, CHECK, ESPIE, ESTAE, ABEND
MVS macros 544 214232 MVS 3.8J public domain macro library in ascii format which can be used with z390 assembler to generate executable object code which can be executed with Hercules MVS 3.8J emulator.
z390 Demos 14 599x Demo MLC macro assembler programs (run RTDEMO.BAT)
z390 Regression tests 154 30590 Regression test MLC macro assembler programs (run RT.BAT job from GUI file menu or command line)
   zcobol component statistics
zc390.java 1 1726 Translate COBOL CBL source to HLASM compatible MLC source code using regular expression parser
zcobol 119 7019 COBOL language verb macros called from MLC source plus shared support copybooks ZC_WS and ZCGETFLD.
zcobol\z390 48 15465 HLASM source code generation macros called by COBOL verb macros using ZC390CLG plus OPT file
zcobol\java 7 116 java source code generation macros called by COBOL verb macros using ZCJAVCLG plus OPT file. (When zcobol\z390 is complete, it can be copied to zcobol\java and modified.)
zcobol\vce 7 114 C source code generation macros called by COBOL verb macros using ZCVCECLG plus OPT file. (When zcobol\z390 is complete, it can be copied to zcobol\vce and modified.)
zcobol\i586 7 118 HLA/MASM source code generation macros called by COBOL verb macros using ZC586CLG plus OPT file. (When zcobol\z390 is complete, it can be copied to zcobol\i586 and modified.)
zcobol\demo 4 145 zcobol demo programs
zcobol\test 46 8749 zcobol regression test programs
cics 13 5601 EXEC CICS COBOL test programs

Java Open Source Code Statistics as of v1.4.01 with VSAM and z10 support added

Program Files Source lines Description
z390.java 1 3628 Graphical User Interface using J2SE Swing GUI Support
az390.java 1 8694 Assembler to convert BAL to OBJ
ez390.java 1 549 Execute 390 load module running pz390 and sz390 on thread)
gz390.java 1 3284 GUAM Graphical User Access Method dialog support with MCS console, TN3270, and graphic display views
iz390.java 1 157 Installation verification program (run IVP.BAT)
lz390.java 1 1182 Link one or more OBJ files into binary 390 load module
mz390.java 1 10517 Macro Processor to expand MLC to BAL
pz390.java 1 16474 Instruction processor for ez390 including z9 and z10 opcodes
sz390.java 1 6589 Service processor with SVC, test, and trace support for ez390
tz390.java 1 6530 Shared tables and methods
vz390.java 1 4258 VSAM file access for ESDS, RRDS, and KSDS files
Java source 9 61862 z390 Project open source J2SE Java programs
Batch cmds 46 640 Batch task BAT  commands such as ASM, ASMLG, JOB, EXEC which run on separate thread from GUI interface
z390 Macros 107 8437 Assembler macros  which generate executable code using ez390 svc calls: WTO, WTOR, WAIT, TGET, TPUT, TIME, LINK, LOAD, DELETE, GETMAIN, FREEMAIN, OPEN, CLOSE, GET, PUT, READ, STIMER. STORAGE, TN3270, GUAM, WRITE, POINT, CHECK, ESPIE, ESTAE, ABEND
MVS macros 544 214232 MVS 3.8J public domain macro library in ascii format which can be used with z390 assembler to generate executable object code which can be executed with Hercules MVS 3.8J emulator.
Demos 14 599 Demo MLC macro assembler programs (run RTDEMO.BAT)
Regression tests 131 23695 Regression test MLC macro assembler programs (run RT.BAT job from GUI file menu or command line)
 

Java Open Source Code Statistics as of v1.3.08

Program Files Source lines Description
z390.java 1 3671 Graphical User Interface using J2SE Swing GUI Support
az390.java 1 7987 Assembler to convert BAL to OBJ
ez390.java 1 533 Execute 390 load module running pz390 and sz390 on thread)
gz390.java 1 3289 GUAM Graphical User Access Method dialog support with MCS console, TN3270, and graphic display views
iz390.java 1 157 Installation verification program (run IVP.BAT)
lz390.java 1 972 Link one or more OBJ files into binary 390 load module
mz390.java 1 10301 Macro Processor to expand MLC to BAL
pz390.java 1 14303 Instruction processor for ez390 with z9 opcodes
sz390.java 1 6416 Service processor with SVC, test, and trace support for ez390
tz390.java 1 5146 Shared tables and methods
vz390.java 1 2348 VSAM file access for ESDS, RRDS, and KSDS files
Java source 9 55123 z390 Project open source J2SE Java programs
Batch cmds 46 640 Batch task BAT  commands such as ASM, ASMLG, JOB, EXEC which run on separate thread from GUI interface
z390 Macros 101 7836 Assembler macros  which generate executable code using ez390 svc calls: WTO, WTOR, WAIT, TGET, TPUT, TIME, LINK, LOAD, DELETE, GETMAIN, FREEMAIN, OPEN, CLOSE, GET, PUT, READ, STIMER. STORAGE, TN3270, GUAM, WRITE, POINT, CHECK, ESPIE, ESTAE, ABEND
MVS macros 544 213,232 MVS 3.8J public domain macro library in ascii format which can be used with z390 assembler to generate executable object code which can be executed with Hercules MVS 3.8J emulator.
Demos 14 599 Demo MLC macro assembler programs (run RTDEMO.BAT)
Regression tests 126 21911 Regression test MLC macro assembler programs (run RT.BAT job from GUI file menu or command line)

z390 Java Program Limits

 
  • Global limits in tz390
    • max_errors = 100 (override with ERR(nnn))
    • max_file_size  = 50 MB (override with MAXSIZE(mb))
    • max_time_seconds = 15 maximum elapsed time in seconds (override with TIME(sec))
  • Global limits z390 GUI Interface
    • max_cmd -    100  maximum command history for scrolling
  • mz390 Macro Processor
    • max_mac_name = 5000 maximum macro files concurrently loaded
    • max_mac_file_name = 1000 maximum concurrent files (MLC, MAC, and CPY's)
    • max_mac_line = 200,000 maximum source lines in files
    • max_mac_lab = 10,000 maximum macro statement labels in loaded macro files
    • max_mac_call_level = 50 maximum current active macro call nesting
    • max_pos_parm = 10,000 maximum concurrent positional macro parms
    • max_kwd_parm =  10,000 maximum concurrent keyword parsm
    • max_lcl_name = 10,000 maximum concurrent local macro variables
    • max_lcl_set = 10,000 maximum local seta, setb, and setc variables
    • max_gbl_name = 100,000 maximum global variable names
    • max_gbl_set =  100,000 maximum global seta, setb, and setc variables
    • max_exp_stk = 500 maximum set expression stack
    • max_pc = 50,000 macro peudo op codes
  • az390 Assembler
    • max_pass = 4 maximum passes to resolve formward nested symbol references
    • max_bal_line = 200,000 maximum MLC source lines loaded
    • max_sym = 50,000 maximum ordinary symbols defined
    • max_lit = 20,000 maximum literals defined
    • max_esd = 1,000 maximum external symbols defined (CSECT, ENTRY, EXTRN)
    • max_use = 500 maximum concurrent USING definitions
    • max_exp_stk = 500 maximum expression stack
    • max_exp_rld = 500 maximum expression relocation definition stack
    • max_rld = 50,000 maximum relocation definitions generated from reduced expression RLD's
  • lz390 Linker
    • max_gbl_esd = 10,000 maximum global RLD references
    • max_obj_files = 1,000 maximum loaded OBJ files
    • max_obj_esd = 1,000 maximum ESD entries in single OBJ file
    • max_rld = 100,000 maximum RLD's in final binary 390 load module
  • ez390 Emulator
    • max_mem = 1 maximum main memory allocated (override with MEM(mb)
    • max_pc_stk = 50 maximum PC instruction nesting stack size
    • max_tiot_files = 100 maximum concurrent files open
    • max_cde_pgms = 500 maximum programs loaded via LOAD or LINK svcs
    • max_link_stk = 50 maximum nested LINK svcs
  • General Limitations
    • All source files are ASCII vs EBCDIC so z390 macro assembler programs are restricted from using extended EBCDIC characters in literal character strings.  The workaround is to recode such characters in hex source string format (i.e. binary zero can be coded as X'00').
    • The az390 assembler default object code format is OBJ mainframe compatible which limits single CSECT's to 16MB.  Use OBJHEX option to generate ascii hex format object code which supports single CSECT's over 16MB (see TESTOBJ1.MLC).  The OBJHEX format is also readable for debugging and the lz390 will read either without option required.
    • The ez390 emulator supports problem state instructions including 32 and 64 bit instructions plus HFP and BFP floating point instructions.  The ez390 emulator does not support supervisor state instructions and instructions that relate to multiple address spaces such as MVCP and MVCS.  See regression tests TESTINS1, TESTINS2, and TESTFP1 for instruction tests.
    • The ez390 emulator will support allocation of main memory up to physical limit of machine it is running on.  The default is 1 MB to minimize overhead for single assembler program execution.  There is support for AMODE24 and AMODE31 but not AMODE64.
    • The ez390 runtime supports basic MVS type system macros at the macro interface level.  The lower level SVC interfaces are different.  MVS type control block support is limited to those control blocks that have DSECT definitions and only those fields that are defined in the DSECT's.  See CVTD, DCBD, and DECBD macros for currently supported fields.  RPI requests for additional support are welcome.
    • The ez390 runtime supports QSAM and VSAM file access.  With v1.3.08 KSDS currently only supports random and skip sequential browsing.  Inserts and alternate index support is planned.
    • The ez390 runtime supports Graphical User Access Method (GUAM option) with 3 modes including MCS console, TN3270 data stream, and graphics mode.  The current gz390 GUAM graphics macros are not yet fully supported.
    • The ez390 runtime support TCPIO macro and svc for TCP/IP sockets connections.  This support is used to support Service Oriented Architecture (SOA) services (See soa directory for demos), and also EXEC CICS compatible transaction manager with local and remote TN3270 clients accessing EXEC CICS assembler applications running on server.  See cics directory for more information.
    • The z390 executable classes mz390, az390, lz390, and ez390 typically use between 30-40 MB of memory.  However the largest assembly tested with v1.2 with over 450 macros used 88 MB which is larger than the default J2RE runtime memory allocation of about 50 MB.  For this reason the mz390.bat command has been updated in v1.2 to set J2RE parameter of -Xmx100000000 to set mz390 defualt memory allocation to 100 MB.  Memory can be allocated up to physical limit of memory but allocating too much can cause system to stall when running multiple applications.

IBM, CICS, HLASM, MVS, OS/390, VSAM, z9, z10, and z/OS
 are registered trademarks  of International Business Machines Corporation

This page last updated Wednesday May 23, 2012.   Webmaster 
Copyright 2011 Automated Software Tools Corporation