Appendix G - Tachyon Legacy Assembler for MVS 3.8

This chapter describes the Tachyon Legacy Assembler for MVS 3.8. This is a special version of the assembler for use only on MVS 3.8 running on Hercules and for the purpose of developing programs that will be run in a System/370 or System/360 environment by the Hercules emulator.

Installing the assembler on MVS 3.8

The Tachyon Legacy Assembler for MVS 3.8 is provided in a ZIP file that contains the HTML version of the documentation and a TSO XMIT file named legacy.xmi for a load module library. The load module library is named TACHYON.LOADLIB in the XMIT file, but it may be renamed to any other data set name. TACHYON.LOADLIB contains a single load module named X390, which is the Tachyon Legacy Assembler program.

TACHYON.LOADLIB can be extracted from the legacy.xmi TSO XMIT file using either the dasdload program supplied with Hercules or the RECV370 program for MVS 3.8. Please see the appropriate documentation for these programs. TACHYON.LOADLIB has a block size of 18432 and so must be loaded to a 3350, 3380 or 3390 volume.

Before the Tachyon Legacy Assembler can be run, the license information must be installed into the TACHON.LOADLIB load library as a load module named TACHYON. The license key information for the Tachyon Legacy Assembler for MVS 3.8 is in the form of JCL that must be executed to assemble and linkedit the license information module.

Running the assembler on MVS 3.8

The Tachyon Legacy Assembler for MVS 3.8 can be invoked via JCL or from via the LINK or ATTACH services. The program name is installed as X390, but can be renamed to another name such as IFOX00, IEV90 or ASMA90.

Invoking the assembler via JCL

Sample JCL:

//TACHYON  JOB
//ASM      EXEC PGM=X390,REGION=8M,PARM='LOAD,ASA,SIZE(3M)'
//STEPLIB  DD DSN=TACHYON.LOADLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSTERM  DD SYSOUT=*
//SYSLIB   DD DSN=SYS1.MACLIB,DISP=SHR
//         DD DSN=SYS1.AMODGEN,DISP=SHR
//SYSGO    DD DSN=&&GOSET,DISP=(NEW,PASS,DELETE),
// UNIT=SYSDA,SPACE=(CYL,(1,1)),
// DCB=(DSORG=PS,LRECL=80,BLKSIZE=3200,RECFM=FB)
//SYSUT1   DD DSN=&&SYSUT1,DISP=(NEW,DELETE,DELETE),
// UNIT=VIO,SPACE=(CYL,(10,10)),DCB=(DSORG=PS)
//SYSUT2   DD DSN=&&SYSUT2,DISP=(NEW,DELETE,DELETE),
// UNIT=VIO,SPACE=(CYL,(10,10)),DCB=(DSORG=PS)
//SYSUT3   DD DSN=&&SYSUT3,DISP=(NEW,DELETE,DELETE),
// UNIT=VIO,SPACE=(CYL,(10,10)),DCB=(DSORG=PS)
//SYSIN    DD *
IEFBR14  CSECT
         SR    15,15
         BR    14
         END   IEFBR14
/*
//

Note: The REGION size should be as large as possible to improve performance of the assembler. The default of SIZE(MAX) improves performance, but it can cause the assembly to fail if it cannot be performed in memory. If the assembly is too large to be performed in memory, specify a SIZE option that is no more than half of the region size. For very large assemblies, SIZE(0) has been found to cause the assembler to run almost as fast as any other value less than SIZE(MAX) and provides the maximum opportunity for assemblies to complete successfully.

Invoking the assembler via LINK or ATTACH

The assembler program can be invoked via the MVS LINK or ATTACH services. When invoked, general register 1 must contain the address of a parameter list. The parameter list must consist of one or two words, with the high-order bit of the last word set on.

The first parameter list word must contain the address of a halfword containing the number of characters which follow, followed by a string containing the assembler options. The options may be zero to 32767 characters.

If present, the second parameter list word must contain the address of a halfword containing the number of characters in the DDNAME override list, followed by the DDNAME override list. The DDNAME override list can consist of zero or more 8-character entries. Unused entries must be set to binary zeros. If an entry is not binary zeros, the 8-character name will be used as the DDNAME instead of the default DDNAME. The DDNAME override entries are:
EntryOffsetDefault DDNAME
1+0SYSLIN or SYSGO
2+8not used
3+16not used
4+24SYSLIB
5+32SYSIN
6+40SYSPRINT
7+48SYSPUNCH
8+56SYSUT1
9+64SYSUT2
10+72SYSUT3
11+80not used
12+88SYSTERM
13+96not used
14+104not used
15+112not used
16+120SYSADATA
17+128not used
18+136not used
19+144not used
20+152ASMAOPT

Input, Output and Work Files

SYSIN
The open-code assembler source statements are read from SYSIN. The source statements must be 80-byte fixed length records from one or more concatenated files, each of which can be an in-stream data set, a sequential data set or a partitioned data set member. The SYSIN DD is required.
SYSLIB
Macros and copy members are read from SYSLIB. SYSLIB must be one or more concatenated partitioned data sets with 80-byte fixed-length records. The SYSLIB DD is not required if there are no COPY statements or macro calls.
ASMAOPT
Assembler options will be read from ASMAOPT if the DD is present. ASMAOPT must consist of one or more concatenated files, each of which can be an in-stream data set, a sequential data set or a partitioned data set member. Fixed, variable and undefined record length of any size are allowed. Any options read from ASMAOPT are processed before the options from the EXEC PARM are processed.
Each record read from ASMAOPT may be blank, may be a comment line, or may contain one option. If the first non-whitespace character is an asterisk (*), it is assumed to be a comment line and is not processed. If the first non-whitespace character is not an asterisk, it is assumed to contain an option. To provide a comment on an option line, follow the option by at least one blank, the remainder of the line will then be ignored.
SYSLIN or SYSGO
If one of the OBJECT(OMF), OBJECT(XOBJ) or OBJECT(GOFF) options are active, the object code will be written to SYSLIN or SYSGO, depending on which is allocated. SYSLIN or SYSGO must be defined for 80-byte fixed length records and should be a sequential data set or partitioned data set member.
SYSPUNCH
If the OBJECT(DECK) option is active, the object code will be written to SYSPUNCH. SYSPUNCH must be defined for 80-byte fixed length records and should be a sequential data set or partitioned data set member.
SYSPRINT
If the LIST option is active, the assembly listing will be written to SYSPRINT. SYSPRINT must be defined for 121 to 133 byte fixed-length records or 125 to 137 byte variable-length records with either ASA or machine control characters. The record length must be 133 for fixed-length or 137 for variable-length if the LIST(133) option is set. SYSPRINT can be allocated to a SYSOUT data set, sequential data set or partitioned data set member.
SYSTERM
If the TERM option is active, assembly messages will be written to SYSTERM. SYSTERM may be defined as for fixed, variable or undefined length records and should be a SYSOUT data set or sequential data set. If an error prevents the assembler from starting, messages will be written to SYSTERM and therefore, SYSTERM should always be defined.
SYSADATA
If the ADATA option is active, ADATA records will be written to SYSADATA. SYSADATA must be defined for variable length records of at least 8188 bytes and should be a sequential data set.
SYSUT1, SYSUT2 and SYSUT3
These work files are used when the memory specified via the SIZE option is exhausted. If DD statements for any of these files are not present, data sets named &&SYSUT1, &&SYSUT2 and &&SYSUT3 will be dynamically allocated. The DD statements should be present if the default SPACE allocations are insufficient. The default allocations are for a primary and secondary space of 100 tracks on unit SYSALLDA.

Assembler Option Support Differences

Option Tachyon 390 Cross Assembler Tachyon Legacy Assembler for MVS 3.8 Tachyon z/Assembler
ACONTROL Supported ACONTROL(AFPR) is not supported Supported
ADATA Not supported The record size and format parameters are not supported. The SYSADATA DCB attributes are used to determine the record size and format. Supported
ADATALEVEL Not supported Supported Supported
ALIGN Supported Supported Supported
ASA Supported Supported Supported
BATCH Supported Supported Supported
CODEPAGE Supported Not supported Supported
COMPAT Supported Supported Supported
DBCS Supported Supported Supported
DECK Supported Supported Supported
DXREF Supported Supported Supported
ESD Supported Supported Supported
FLAG Supported Supported Supported
FOLD Supported Supported Supported
GOFF Not supported Supported Supported
IDR Supported Supported Supported
INCLUDE Supported Supported via ASMAOPT DD Supported
INFO Supported Supported Supported
LANGUAGE Supported Supported Supported
LIBEXIT Supported Not supported Supported
LIBMAC Supported Supported Supported
LINECOUNT Supported Supported Supported
LINEWIDTH Supported Supported via SYSPRINT DCB attributes only Supported
LIST Supported Supported Supported
LOAD Not supported LOAD is supported as an alias for the OBJECT option and NOLOAD is supported as an alias for the NOOBJECT option. Not supported
MACHINE S370, S370XA, S370ESA, S390 and S390E are supported. ZSERIES, ZSERIES-2, ZSERIES-3, and ZSERIES-4 are not supported. Only S370 is supported and the vector instructions are not included. Supported
MAKEDEPEND Supported Not supported Supported
MAKEFILE Supported Not supported Supported
MSGLEVEL Supported Supported Supported
MXREF Supported Supported Supported
OBJECT OMF and XOBJ formats are supported. GOFF and ELF formats are not supported. OMF and XOBJ formats are supported. GOFF and ELF formats are not supported. Supported
OPTABLE UNI, ESA, XA, 370 and DOS tables are supported. ZOP, YOP, ZS3, and ZS4 tables are not supported. UNI, 370 and DOS tables are supported. XA, ESA, ZOP, YOP, ZS3, and ZS4 tables are not supported. UNI is the same as 370 and the vector instructions are not included in any instruction set. Supported
PARM Supported Supported via JCL EXEC PARM Supported
PCONTROL Supported Supported Supported
PESTOP Supported Supported Supported
PRINTCTL Supported ASA and MCH parameters are supported. NL, FF and HP parameters are not supported Supported
PROCESS BATCH, DCBS, JCL, PESTOP, THREAD and NOWARN0 parameters are supported. CICS, DLI, GAS and SQL parameters are not supported. BATCH, DCBS, PESTOP, THREAD and NOWARN0 parameters are supported. CICS, DLI, GAS, JCL and SQL parameters are not supported. Supported
PROFILE Supported Supported Supported
RA2 Supported Supported Supported
RENT Supported Supported Supported
RLD Supported Supported Supported
RXREF Supported AR and VR parameters are not supported Supported
SIZE Supported Supported Supported
SECTALGN Supported Not supported Supported
SUPPRESS Supported Supported Supported
SUPRWARN Supported Supported Supported
SYSADATA Not supported Supported via SYSADATA DD Supported
SYSLIB Supported Supported via SYSLIB DD Supported
SYSLIN Supported Supported via SYSLIN DD Supported
SYSPARM Supported Supported Supported
SYSPRINT Supported Supported via SYSPRINT DD Supported
SYSPUNCH Supported Supported via SYSPUNCH DD Supported
SYSTEMID Supported Supported Supported
SYSTERM Supported Supported via SYSTERM DD Supported
TERM Supported Supported Supported
TEST Supported Supported Supported
THREAD Supported Supported Supported
TRANSLATE Supported Not supported Supported
TYPECHECK Supported Supported Supported
USING Supported Supported Supported
USINGLIMIT Supported Supported Supported
USINGMAP Supported Supported Supported
WORKFILE Supported Supported Supported
XOBJECT Not supported Supported Supported
XOPTS Not supported Not supported Supported
XREF Supported Supported Supported
ASCII Translation Supported Not supported Supported

Assembler Language Support Differences

Most of the assembler language supported by the Tachyon z/Assembler is fully supported by the Tachyon Legacy Assembler for MVS 3.8, except for the following:

External functions called via SETAF and SETCF are only supported in the MVS version of the assembler.

Except as noted above, the language compatibility notes and language extensions notes apply to the Tachyon Legacy Assembler.


Frames No Frames Previous Next Contents
Introduction Setup Running Options Macros Translation Compatibility Messages
© Copyright 2003-2008, Tachyon Software® LLC.
Last modified on September 15, 2008