NAME
       avra - Atmel AVR assembler

SYNOPSIS
       avra   [--listmac]   [--max_errors  <number>]  [--version]
       [--help] [-h]

DESCRIPTION
       avra avra is an assembler  for  the  Atmel  AVR  microcon-
       troller series, and it is almost compatible to Atmel's own
       assembler. This means it can handle  the  same  code  that
       Atmels assembler can, but it has some extra features.

       Better macro support
              More  flexible  with  arguments.  Calling  of other
              macros in macro is  possible,  and  even  recursive
              macros.

       Directives for conditional assembly
              Added  directives:  .define  .undef  .ifdef .ifndef
              .else .elif .endif

       avra is currently supporting these systems:
           Linux
           AmigaOS
           win32 (windows 95++ and NT)

       And it should be possible to compile on anything that  can
       eat ANSI-C.

OPTIONS
       Several  option  can  be  given  after  one '-', but if an
       option requires an argument; the argument  must  be  given
       after that option.

       --listmac
              List  macro  expansion in the list file. Same func-
              tion as the listmac directive.

       --max_errors <number>
              Specifies the maximm number of errors before  exit.
              Default: 10

       --version
              Print out version information.

       -h --help
              Print out a short help text.

EXPRESSIONS
       There  is one extra function that avra supports in expres-
       sions, and that  is  the  function  defined(<name>)  which
       returns  1 if <name> is a defined symbol, and 0 otherwise.
DIRECTIVES
       avra supports all directives supported by Atmel's  AVRASM,
       but there are some extra directives added to avra.

       .define <name> [<expression>]
              Same  as the .EQU directive, but uses no =-sign. If
              you don't specify a expression it will be set to 1.

       .undef <name>
              Not yet implemented.

       .ifdef <name>
              Parse  following  lines if <name> is a defined sym-
              bol.

       .ifndef <name>
              Negated version of .ifdef

       .if <expression>
              Uses an expression to determine parsing of  follow-
              ing lines.

       .else  Else.

       .elif <expression>
              Combined else and if.

       .endif Terminates conditional assembly.

       .message <text>
              Print out a message text.

       .warning <text>
              Print out a warning text.

       .error <text>
              Print out a error text.

MACROS
       avra  uses  the  same  consept  for arguments that Atmel's
       AVRASM uses, but it will expand a macro as pure text,  and
       this makes it more powerfull than AVRASM.

       Macros  can call macros, and also call itself (recursive).

       Labels defined in a macro is local to that  macro.  Macros
       called  inside  a macro will herritage the local labels of
       the parrent macro.

COPYRIGHT
       Copyright (C) 1998 Jon Anders Haugum

       This program is free software;  you  can  redistribute  it
       and/or modify it under the terms of the GNU General Public
       License as published  by  the  Free  Software  Foundation;
       either  version  2 of the License, or (at your option) any
       later version.

       This program is distributed in the hope that  it  will  be
       useful, but WITHOUT ANY WARRANTY; without even the implied
       warranty of MERCHANTABILITY or FITNESS  FOR  A  PARTICULAR
       PURPOSE.   See  the  GNU  General  Public License for more
       details.

       You should have received a copy of the GNU General  Public
       License along with this program; see the file COPYING.  If
       not, write to the Free Software Foundation, Inc., 59  Tem-
       ple Place - Suite 330, Boston, MA 02111-1307, USA.

AUTHOR
       Jon Anders Haugum <jonah@colargol.tihlde.hist.no>
