HELP MACRO — VMS 4.6
Invokes the VAX MACRO assembler to assemble one or more assembly
language source programs. This description provides a functional
overview of the MACRO command, emphasizing DCL syntax and grammar.
For a complete functional description of the VAX MACRO assembler
directives, see the VAX MACRO and Instruction Set Reference Volume.
Format:
MACRO file-spec[,...]
Additional information available:
ParametersCommand QualifiersExamples
Parameters
file-spec[,...] Specifies one or more VAX MACRO assembly language source files to be assembled. If you do not specify a file type for an input file, the assembler uses the default file type of MAR. You can specify more than one input file. If you separate the file specifications with commas, each file is assembled separately. If you separate the file specifications with plus signs, the files are concatenated and assembled as a single input file, producing single object and listing files. If a file already exists with the same name as the object or listing file produced by the command, a new file with a version number one higher than the previously existing file will be created. No wildcard characters are allowed in the file specifications.
Command Qualifiers
Additional information available:
/CROSS_REFERENCE/DEBUG/DISABLE/ENABLE/LIBRARY/LIST
/OBJECT/SHOW/UPDATE
/CROSS_REFERENCE
/CROSS_REFERENCE[=(function[,...])]
/NOCROSS_REFERENCE (default)
Controls whether a cross-reference listing is included in the
listing file. A cross-reference listing is a list of the places in
the source file where the item specified is defined or referred to.
The /CROSS_REFERENCE qualifier includes a cross-reference listing,
and therefore requires that you specify the /LIST qualifier to
produce a listing file. The /NOCROSS_REFERENCE qualifier excludes
the cross-reference listing.
You can specify one or more of the functions listed below. If you
specify /CROSS_REFERENCE without any functions, it is equivalent to
/CROSS_REFERENCE=(MACROS,SYMBOLS).
ALL Cross-references directives, macros, operation
codes, registers, and symbols
DIRECTIVES Cross-references directives
MACROS Cross-references macros
OPCODES Cross-references operation codes
REGISTERS Cross-references registers
SYMBOLS Cross-references symbols
If you specify more than one function, separate them by commas and
enclose the list in parentheses.
/DEBUG
/DEBUG[=option]
/NODEBUG (default)
Controls whether local symbols are included in the symbol table, and
whether traceback information is included in the object module.
You can use these qualifiers in place of the /ENABLE and /DISABLE
qualifiers, when the DEBUG and TRACEBACK functions are used. The
/DEBUG or /NODEBUG qualifiers will override debugging
characteristics set with the .ENABLE or .DISABLE assembler
directives.
You can specify one or more of the functions listed below. If you
specify /DEBUG without any functions, it is equivalent to
/DEBUG=ALL.
ALL All local symbols are included in the symbol
table, and all traceback information is provided
in the object module for the debugger.
Specifying this qualifier is equivalent to
specifying the qualifier
/ENABLE=(DEBUG,TRACEBACK).
NONE No local symbols and no traceback information are
made available to the debugger in the object
module. Specifying this qualifier is equivalent
to specifying the qualifier
/DISABLE=(DEBUG,TRACEBACK).
SYMBOLS All local symbols are made available to the
debugger in the object module. No traceback
information is made available to the debugger.
Specifying this qualifier is equivalent to
specifying the qualifiers /ENABLE=DEBUG and
/DISABLE=TRACEBACK.
TRACEBACK Traceback information is made available to the
debugger in the object module. No local symbols
are made available to the debugger. Specifying
this qualifier is equivalent to specifying the
qualifiers /ENABLE=TRACEBACK and /DISABLE=DEBUG.
/DISABLE
/DISABLE=(function[,...]) /NODISABLE Provides initial settings for the functions controlled by the assembler directive .DISABLE. See /ENABLE for a list of these functions. The default is /DISABLE=(ABSOLUTE,DEBUG,TRUNCATION). If you specify more than one function, separate them by commas and enclose the list in parentheses. The /NODISABLE qualifier has the same effect as not specifying the /DISABLE qualifier, or negates the effects of any /DISABLE qualifiers specified earlier on the command line.
/ENABLE
/ENABLE=(function[,...])
/NOENABLE
Provides initial settings for the functions controlled by the
assembler directive .ENABLE. You must specify at least one of the
functions listed below. You can enable or disable:
ABSOLUTE Assembly of relative addresses as absolute
addresses
DEBUG Inclusion of local symbol table information in the
object file for use with the debugger
TRUNCATION Truncation of floating-point numbers (if
truncation is disabled, numbers are rounded)
GLOBAL Assumption that undefined symbols in the assembly
are external symbols
SUPPRESSION Suppression of the listing of unreferenced symbols
in the symbol table
TRACEBACK Provision of information to the debugger traceback
mechanism
The default is /ENABLE=(GLOBAL,TRACEBACK,SUPPRESSION).
If you specify more than one function, separate them by commas and
enclose the list in parentheses.
The /NOENABLE qualifier has the same effect as not specifying the
/ENABLE qualifier, or negates the effects of any /ENABLE qualifiers
specified earlier on the command line.
/LIBRARY
/LIBRARY /NOLIBRARY Positional qualifier. The /LIBRARY qualifier cannot be used with the /UPDATE qualifier. The /LIBRARY qualifier requires that the associated input file be a macro library. If you do not specify a file type, the assembler uses the default file type of MLB. The maximum number of libraries that can be searched in any given assembly is 16, one of which is always STARLET.MLB. If you specify more than one macro library in an assembly, the libraries are searched in reverse order of their specification. When a macro call is issued in a source program, any libraries specified with the .LIBRARY directive are searched first, in the reverse order in which they were declared; if the macro definition is not found in any of the libraries specified with the .LIBRARY directive, any libraries specified in the DCL MACRO command line are then searched (again, in the reverse order in which they were specified); finally, if the macro definition is not found in the libraries specified in the command line, STARLET.MLB is searched. The /NOLIBRARY qualifier has the same effect as not specifying the /LIBRARY qualifier, or negates the effects of any /LIBRARY qualifiers specified earlier on the command line.
/LIST
/LIST[=file-spec] /NOLIST Controls whether an output listing is created, and optionally provides an output file specification for the listing file. If you issue the MACRO command interactively, the assembler, by default, does not create a listing file. When /NOLIST is present, either explicitly or by default, errors are reported on the current output device. If you execute the MACRO command in a batch job, /LIST is the default. When you specify /LIST, you can control the defaults applied to the output file specification by the placement of the qualifier in the command. See Section 2.4 of the VAX/VMS DCL Concepts Manual for more information on entering output file qualifiers. The default file type provided for listing files is LIS. No wildcard characters are allowed in the file specification.
/OBJECT
/OBJECT[=file-spec] /NOOBJECT Controls whether an object module is created by the assembler. It also defines the file specification for the file. By default, the assembler creates an object module with the same file name as the first input file. The default file type for object files is OBJ. When you specify /OBJECT, you can control the defaults applied to the output file specification by the placement of the qualifier in the command. See Section 2.4 of the VAX/VMS DCL Concepts Manual for more information on entering output file qualifiers. No wildcard characters are allowed in the file specification.
/SHOW
/SHOW[=(function[,...])
/NOSHOW[=(function[,...])]
Provides initial settings for the functions controlled by the
assembler directives .SHOW and .NOSHOW. You can specify one or more
of the functions listed below. If you specify /SHOW without any
functions, the listing level count is incremented. If you specify
/NOSHOW without any functions, the listing level count is
decremented.
Since the /SHOW qualifier affects the listing, you must use the
/LIST qualifier to produce a listing in order to use the /SHOW
qualifier.
CONDITIONALS Lists unsatisfied conditional code associated with
.IF and .ENDC directives
CALLS Lists macro calls and repeat range expansions
DEFINITIONS Lists macro definitions
EXPANSIONS Lists macro expansions
BINARY Lists binary code generated by the expansion of
macro calls
If you omit the /SHOW qualifier, the default is equivalent to
/SHOW=(CONDITIONALS,CALLS,DEFINITIONS).
If you specify more than one function, separate them by commas and
enclose the list in parentheses.
For additional details on these functions, see the VAX MACRO and
Instruction Set Reference Volume.
/UPDATE
/UPDATE[=(update-file-spec[,...])] /NOUPDATE Positional Qualifier. The /UPDATE qualifier cannot be used with the /LIBRARY qualifier. The /UPDATE qualifier requires usage with an associated input file that is to be updated with the specified update file or files. No wildcard characters are allowed in the update file specifications. The update process uses the batch editor, SLP, to update the input file with the update file or files. By default, the assembler uses update files with the same name as the input source file and a file type of UPD. When multiple update files are specified with the /UPDATE qualifier, the assembler merges the contents into a single list of updates before applying the updates to the source file. You must separate multiple update files with commas and enclose the list in parentheses. The input source file and update files are not changed by the update operation. The effects of the update appear in the compiled output. The listing also provides an audit trail of the changes if you specify /LIST with /UPDATE. If an update file is not found, the assembler prints an informational message but continues the assembly. The /NOUPDATE qualifier has the same effect as not specifying the /UPDATE qualifier, or negates the effects of any /UPDATE qualifiers specified earlier on the command line.
Examples
1. $ MACRO ORION
The MACRO assembler assembles the file ORION.MAR and creates an
object file named ORION.OBJ. If this command is executed in a batch
job, the assembler also creates a listing file named ORION.LIS.
2. $ MACRO/LIST CYGNUS, LYRA/OBJECT=LYRAN
This MACRO command requests two separate assemblies. The MACRO
command assembles CYGNUS.MAR to produce CYGNUS.LIS and CYGNUS.OBJ.
Then it assembles LYRA.MAR and creates a listing file named LYRA.LIS
and an object module named LYRAN.OBJ.
3. $ MACRO ALPHA/LIST+MYLIB/LIBRARY-
$_ + [TEST]OLDLIB/LIBRARY + []BETA
$ PRINT ALPHA
The MACRO command concatenates the files ALPHA.MAR and BETA.MAR to
produce an object file named ALPHA.OBJ and a listing file named
ALPHA.LIS. MYLIB.MLB (in the current default directory) and
OLDLIB.MLB (in the directory [TEST]) are specified as libraries to
be searched for macro definitions. When macro calls are found in
BETA.MAR, OLDLIB, MYLIB, and the system library STARLET.MLB are
searched, in that order, for the definitions.
The PRINT command prints the listing file ALPHA.LIS.
4. $ MACRO DELTA+TESTLIB/LIBRARY, ALPHA+MYLIB/LIBRARY
This MACRO command requests two separate assemblies. TESTLIB.MLB
and the system library STARLET.MLB are searched for macro
definitions when macro calls are found in DELTA.MAR, and MYLIB.MLB
and the system library STARLET.MLB are searched for macro
definitions when macro calls are found in ALPHA.MAR.