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.
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.
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.
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.
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:
Entry | Offset | Default DDNAME |
---|---|---|
1 | +0 | SYSLIN or SYSGO |
2 | +8 | not used |
3 | +16 | not used |
4 | +24 | SYSLIB |
5 | +32 | SYSIN |
6 | +40 | SYSPRINT |
7 | +48 | SYSPUNCH |
8 | +56 | SYSUT1 |
9 | +64 | SYSUT2 |
10 | +72 | SYSUT3 |
11 | +80 | not used |
12 | +88 | SYSTERM |
13 | +96 | not used |
14 | +104 | not used |
15 | +112 | not used |
16 | +120 | SYSADATA |
17 | +128 | not used |
18 | +136 | not used |
19 | +144 | not used |
20 | +152 | ASMAOPT |
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 |
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.