as: VAX-Opts
9.49.1 VAX Command-Line Options
-------------------------------
The Vax version of 'as' accepts any of the following options, gives a
warning message that the option was ignored and proceeds. These options
are for compatibility with scripts designed for other people's
assemblers.
'-D (Debug)'
'-S (Symbol Table)'
'-T (Token Trace)'
These are obsolete options used to debug old assemblers.
'-d (Displacement size for JUMPs)'
This option expects a number following the '-d'. Like options that
expect filenames, the number may immediately follow the '-d' (old
standard) or constitute the whole of the command-line argument that
follows '-d' (GNU standard).
'-V (Virtualize Interpass Temporary File)'
Some other assemblers use a temporary file. This option commanded
them to keep the information in active memory rather than in a disk
file. 'as' always does this, so this option is redundant.
'-J (JUMPify Longer Branches)'
Many 32-bit computers permit a variety of branch instructions to do
the same job. Some of these instructions are short (and fast) but
have a limited range; others are long (and slow) but can branch
anywhere in virtual memory. Often there are 3 flavors of branch:
short, medium and long. Some other assemblers would emit short and
medium branches, unless told by this option to emit short and long
branches.
'-t (Temporary File Directory)'
Some other assemblers may use a temporary file, and this option
takes a filename being the directory to site the temporary file.
Since 'as' does not use a temporary disk file, this option makes no
difference. '-t' needs exactly one filename.
The Vax version of the assembler accepts additional options when
compiled for VMS:
'-h N'
External symbol or section (used for global variables) names are
not case sensitive on VAX/VMS and always mapped to upper case.
This is contrary to the C language definition which explicitly
distinguishes upper and lower case. To implement a standard
conforming C compiler, names must be changed (mapped) to preserve
the case information. The default mapping is to convert all lower
case characters to uppercase and adding an underscore followed by a
6 digit hex value, representing a 24 digit binary value. The one
digits in the binary value represent which characters are uppercase
in the original symbol name.
The '-h N' option determines how we map names. This takes several
values. No '-h' switch at all allows case hacking as described
above. A value of zero ('-h0') implies names should be upper case,
and inhibits the case hack. A value of 2 ('-h2') implies names
should be all lower case, with no case hack. A value of 3 ('-h3')
implies that case should be preserved. The value 1 is unused. The
'-H' option directs 'as' to display every mapped symbol during
assembly.
Symbols whose names include a dollar sign '$' are exceptions to the
general name mapping. These symbols are normally only used to
reference VMS library names. Such symbols are always mapped to
upper case.
'-+'
The '-+' option causes 'as' to truncate any symbol name larger than
31 characters. The '-+' option also prevents some code following
the '_main' symbol normally added to make the object file
compatible with Vax-11 "C".
'-1'
This option is ignored for backward compatibility with 'as' version
1.x.
'-H'
The '-H' option causes 'as' to print every symbol which was changed
by case mapping.