EUCSD Motorola M6800 Assembler  -  User Notes

     This assembler is a local implementation of the  Motorola  M6800  cross
  assembler,  documented  in  the 'M6800 Microprocessor Programming Manual'.
  Wherever possible it is upward compatible with the Motorola assembler  and
  like it, contains no macro facilites.


  Differences

     A) Restrictions

        1) Only one program may be assembled in a single input stream.  As a
           result the MON and END directives are synonymous and optional.

        2) Only object tapes are produced by the assembler.  As a result the
           OPT  directive  options  MEMORY  and OTAPE and their variants are
           illegal.

        3) Error messages are of a different and fixed form  and  hence  the
           OPT directive options SERROR and SER are synonymous with ERROR.


     B) Extensions

        1)  The  mnemonics  LSL, BHS and BLO are provided and are synonymous
           with ASL, BCC and BCS respectively.

        2) The delimited form of  the  FCC  directive  accepts  the  doubled
           delimiter  as a single instance of the delimiter in the generated
           text.

              e.g.                     FCC   /A//B/
              is the same as           FCC   'A/B'

        3) The OPT directive has the following additional options:

           Long form  Short form   

           BLANK      B            Ignores  redundant  spaces   in   operand
                                   field. e.g. around ',' and '+'.

           NOBLANK    NOB          No   spaces   allowed  in  operand  field
                                   (selected by default).

           CYCLE      C            Print execution time  in  machine  cycles
                                   for each executable statement.

           NOCYCLE    NOC          No  execution  times printed (selected by
                                   default).

           FULL       F            Allows  fully  parenthesised   arithmetic
                                   expressions as operands (see (4) below).

           NOFULL     NOF          Only      unparenthesised     expressions
                                   evaluated strictly from left to right are
                                   allowed   as   operands   (selected    by
                                   default).

           WRAP       W            Long input lines are wrapped around on to






                                   next line of listing.

           NOWRAP     NOW          Long input lines are truncated in listing
                                   (selected by default).

           XREF       X            Symbol  cross  reference is listed at end
                                   of listing.

           NOXREF     NOX          No  cross  reference  table  is   printed
                                   (selected by default).

        4)   By   specifying   OPT   FULL,  fully  parenthesised  arithmetic
           expressions evaluated in the usual algebraic order are acceptable
           as operands.  The valid binary operators are (in increasing order
           of precedence):

                      ! (or), \ (exclusive or)
                      & (and)
                      +, -
                      *, /, | (remainder)
                      < (left shift), > (right shift)

           The unary  operators  +  (ignored),  -  and  \  (complement)  are
           accepted and take precedence over all binary operators.

        5) Apart from catastrophic failures, error messages are generated in
           the  final  pass  only  and always immediately follow the line to
           which they apply.

        6) This is a multi-pass assembler in which there are no  constraints
           on  the  order  of  definition  of  symbols and which attempts to
           optimise the use of direct addressing.


     Implementations

        A) LEGOS

           assem.M6800 <source>/<object>,<listing>
           eprom.m6800 <source>/<object>,<listing>

           No default file names are provided.   The ASSEM version generates
           object  code in Motorola M6800 loader format.   The EPROM version
           produces a binary file suitable for the  SOFTY  EPROM  programmer
           and M6802 personality cards.

        B) VAX

           M6800

           The  user  is  promted  for  i/o streams.   The object code is in
           Motorola M6800 loader format.