NAME
       avra - Atmel AVR assembler

SYNOPSIS
       avra     [--define     <symbol>[=<value>]]     [--listmac]
       [--max_errors <number>] [--version] [--help] [-h]

DESCRIPTION
       avra is an assembler for  the  Atmel  AVR  microcontroller
       series,  and it is almost compatible to Atmel's own assem-
       bler. 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 a macro is possible, and  even  recursive
              macros.  Global labels in macros are also possible.

       Directives for conditional assembly
              Added directives: .define .undef .if .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
       --define <synbol>[=<value>]
              Define a symbol. Can be set to a specific value, or
              1 if no value is given.

       --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.
       You can force expressions to be calculated before they are
       parsed by enclosing them inside {}-signs.

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.  Using  {}-signs
       around  an  expression to calculate the expression is also
       very useful inside macros.

       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.   You  can  make a local label into a
       global one by adding the global keyword before the  label.
COPYRIGHT
       Copyright (C) 1998-1999 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>
