Interdata732/usr/doc/man/man1/as.1

.th AS I
.sh NAME
as - UNIX Interdata assembler
.sh SYNOPSIS
as [ -u ] [ -m ] [ -sN ] [ -o object-file ] file [ ... ]
.sh DESCRIPTION
Assembles the Interdata CAL source code in the named file(s),
leaving the object-code output on
.it a.out.
If multiple filenames are given, only the last may have an END statement;
they are concatenated together and assembled as one program.

.lp +8 4
-u	Uppercase characters (other than those within quoted strings)
are to be translated to lowercase.
.ti -4
-m	Multiple redefinitions by EQU statements are to be
considered legal
(mainly for the benefit of the stupid Interdata Fortran V compiler).
.ti -4
-o	Leave the object-code output on the file named by the next argument,
instead of "a.out".
.ti -4
-sN	Specifies the extent of 'SQUEZ' optimization performed.
.nf
-s0  NOSQZ - use longest form of all instructions
-s1  NORX3 - squeeze RX3 instructions to RX2 or RX1
             (where possible)
-s2  SQUEZ - shorten all possible instructions:
             RX branches to SF branches
             RX3 instructions to RX2 or RX1
             RI1 instructions to SF or RI2
.fi
The default is -s2 (full SQUEZ optimization).
.i0
.dt

The input format is compatible with 32-bit CAL assembly language,
with the following main exceptions:
.lp +6 2
-	if `-u' is not specified, opcodes must be lowercase,
and uppercase and lowercase symbols are distinct (FRED is different from
fred)
.ti -2
-	fields may be separated by tabs and/or blanks
.ti -2
-	a BSS pseudo-op is available for defining storage in the uninitialized
data segment, as well as the text (PURE) and initialized data (IMPUR) segments.
There is no ABS segment.
.ti -2
-	external references and common-block members may be used in
assembly expressions
.ti -2
-	data definitions of type D'', E'' and T'',
and externals of type Z() are not implemented
.ti -2
-	pseudo-ops BATCH, CAL, COPY and TARGT,
and symbols ABSTOP, PURETOP and IMPTOP are not implemented
.ti -2
-	no listings
.i0
.dt

.ne 28
.sh DIAGNOSTICS
.ta 4
.in +4
.nf
A:	previously-defined absolute symbol required
B:	short branch out of range
C:	illegal or missing opcode
D:	illegal data within COMN, STRUC or BSS
E:	unexpected input after the END statement
G:	garbage character
I:	illegally nested IF, COMN, or STRUC
L:	missing label
M:	multiply defined symbol
N:	syntax error in number
O:	org to illegal address
P:	symbol value changed between assembly passes
Q:	missing quote
R:	relocatability error
S:	missing symbol
U:	undefined symbol
V:	illegal value (e.g. register field > 15)
X:	syntax error
Z:	division by 0
.i0
.dt
.fi
.sh AUTHOR
Richard Miller
.br
University of Wollongong