Interdata_v6/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