NAME
       avra - Atmel AVR assembler

SYNOPSIS
       avra     [--define     <symbol>[=<value>]]     [--listmac]
       [--max_errors <number>] [--coff]  [--devices]  [--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-2001 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@omegav.ntnu.no>
