asm68 cross assembler
asm68 is an enhanced derivative of the Motorola Freeware assemblers.
The enhancements include:
- listing goes to file instead of standard output
- in listing, two byte quantities in object code are shown as a single
16-bit value
- one assembler supports all Motorola 8-bit processors, using
a "MACHINE" pseudo-op (e.g., MACHINE 6809), or a -mach option on
the command line. Invoke asm68 with the -help option for a list
of supported processors.
- include files with "INCLUDE" pseudo-op (e.g., "INCLUDE /FOO.ASM/"). Any
character may be used as the delimiter for the filename.
- source file names and options may occur in any order on the command
line. Options must ALL be preceded with a "-".
- new "-def sym[=val]" command line option to define a symbol, with the
value defaulting to one. The value may be in binary, octal, decimal,
or hexadecimal, using either Motorola or Intel notation. Note that
a leading dollar sign ("$") for either the symbol name or value may
need to be escaped in order to prevent a command shell from trying
to do a variable expansion.
- parenthesis are allowed in expressions (but no operator precedence)
- correct timings for CMOS 6805s (1468[7]05, 68HC[78]05)
- incorrect timings for 6800, 68[7]01, 6802, 68[7]03, 6808, 68120
- FCS pseudo-op (like FCC, but sets the MSB of the last byte)
- SETDP pseudo-op for 6809 supported.
- SET pseudo-op (like EQU, but may redefine existing symbol)
- conditionals (IFxxx, ELSE, ENDIF)
- IF <expr> true if expression not equal to 0
- IFE <expr> true if expression equal to 0
- IFDEF <name> true if name is defined
- IFNDEF <name> true if name is undefined
- IF1 true if pass 1
- IF2 true if pass 2
- PRINT pseudo-op to output string to standard output during assembly.
- WARN, ERROR, FATAL pseudo-op for user defined warnings, errors, and
fatal errors.
- MS-DOS lost cluster problem fixed
- symbols made case insensitive
- comments may begin with a semicolon
- comments alone on a line don't have to begin in column 1
- a period (".") may be used to refer to the location counter.
- new binary operators:
- << shift left
- >> shift right
- ^ exclusive or
- % modulo
- new unary operators:
- numeric constants may now be Motorola style or Intel style.
- character literals (introduced by "\" delimiter) must have closing
delimiter ("\") if used other than at the end of an expression
Download
asm68 is made available under the terms of the Free Software
Foundation's
General Public License, Version 2.
Source code as well as an executable for Fedora Core 1 (x86) are available for
download.
asm68 development uses the
Subversion revision control
system. Instructions for access to the Subversion repository for
Altogether are found at
http://svn.brouhaha.com/,
and there is a web interface to browse the repository at
http://svn.brouhaha.com/viewcvs/asm68.