

            as6800 (3) --- Motorola 6800 cross-assembler             02/23/82


            _U_s_a_g_e

                 as6800 [-{l | d}]


            _D_e_s_c_r_i_p_t_i_o_n

                 'As6800'  is an extremely simplified cross-assembler for the
                 Motorola 6800 microprocessor.

                 It is designed to assemble the output of the  SSPL  compiler
                 in  a  single  pass,  producing a file of relocatable object
                 code with a symbol table (suitable for later  processing  by
                 'mot'  or  'lk').   It is also suitable for limited assembly
                 language coding by hand (allowing the SSPL run-time  package
                 to be assembled).

                 'As6800'  takes a source program on its first standard input
                 and produces an object program on the file ".o".  The assem-
                 bler differs from Motorola's standard in the following ways:

                 1.   Instruction mnemonics that make use of  an  accumulator
                      symbol  ("a"  or  "b")  may  not  be separated from the
                      accumulator symbol.  Thus, "add a #5" is  illegal;  the
                      correct form is "adda #5".
                 2.   Labels  may  appear  in  any mixture of upper and lower
                      case.   Character  case  is  significant.   Instruction
                      mnemonics  must  appear  in  lower  case.   Labels  may
                      include the underscore (_) and  the  grave  accent  (`)
                      characters;  those labels beginning with underscore are
                      not written to the object file symbol table and may  be
                      used  freely  as temporaries.  All characters in labels
                      are significant.
                 3.   Binary and octal number representations  are  not  sup-
                      ported.   Decimal  integers may be used, or hexadecimal
                      integers preceded by a dollar sign ($).
                 4.   The  following  pseudo-operations  are  totally  unsup-
                      ported:   end,  pag, opt, equ.  The fcb and fdb pseudo-
                      ops have been replaced by the 'byte' and 'word' pseudo-
                      ops (otherwise identical in function).  The rmb pseudo-
                      op has been  replaced  by  the  'res'  pseudo-op,  with
                      identical  function.   The  'org'  pseudo-op may not be
                      used to decrease the  location  counter;  only  forward
                      origins are allowed.
                 5.   Arithmetic expressions more complex than labels or sim-
                      ple   integers  are  not  supported.   (SSPL  does  not
                      generate them.)
                 6.   Comments are indicated  by  preceding  commentary  text
                      with  a percent sign (%).  This rule applies uniformly;
                      all comments must be preceded by a percent sign.
                 7.   Unless the "-l" option is specified, 'as6800' does  not
                      produce  an  assembly  listing.  When "-l" is used, the
                      assembly listing is produced on standard output one.
                 8.   Multiple statements may be place on one  line  provided
                      they are separated by semicolons (;).
                 9.   Unless  the  "-d"  option  is  specified,  the 'direct'


            as6800 (3)                    - 1 -                    as6800 (3)




            as6800 (3) --- Motorola 6800 cross-assembler             02/23/82


                      (page-zero) addressing mode is not used (since instruc-
                      tions using it cannot be  relocated).   When  the  "-d"
                      option is used, the user must take care that no direct-
                      address forward references are made.

                 The  object  file  produced by 'as6800' contains a number of
                 "segments," each consisting of a  one-byte  segment  header,
                 two  bytes  of  segment  size,  and the text of the segment.
                 Each byte of the object file occupies one 16-bit word in the
                 physical file.


            _E_x_a_m_p_l_e_s

                 rtr.as> as6800
                 mux.s> lex | sspl | opt6800 | as6800


            _F_i_l_e_s

                 ".o" for the object code file


            _M_e_s_s_a_g_e_s

                 Many error messages,  hopefully  some  of  which  are  self-
                 explanatory.


            _B_u_g_s

                 Locally supported.


            _S_e_e _A_l_s_o

                 sspl (3), opt6800 (3), as8080 (3), as11 (3), mot (3), lk (3)





















            as6800 (3)                    - 2 -                    as6800 (3)


