2020-01-11 20:58:26 +00:00
|
|
|
# x65 Assembler
|
|
|
|
|
|
|
|
x65 is an open source 6502 series assembler that supports object files,
|
|
|
|
linking, fixed address assembling and a relocatable executable.
|
|
|
|
|
|
|
|
Assemblers have existed for a long time and what they do is well documented,
|
|
|
|
x65 tries to accomodate most expectations of syntax from Kick Assembler (a
|
|
|
|
Java 6502 assembler) to Merlin (an Apple II assembler).
|
|
|
|
|
|
|
|
For debugging, dump_x65 is a tool that will show all content of x65 object
|
|
|
|
files, and x65dsasm is a disassembler intended to review the assembled
|
|
|
|
result.
|
|
|
|
|
|
|
|
## Noteworthy features:
|
|
|
|
|
|
|
|
* Code with sections, object files and linking or single file fixed
|
|
|
|
address, or mix it up with fixed address sections in object files.
|
|
|
|
* Assembler listing with cycle counting for code review.
|
|
|
|
* Export multiple binaries with a single link operation.
|
|
|
|
* C style scoping within '{' and '}' with local and pool labels
|
|
|
|
respecting scopes.
|
|
|
|
* Conditional assembly with if/ifdef/else etc.
|
|
|
|
* Assembler directives representing a variety of features.
|
|
|
|
* Local labels can be defined in a number of ways, such as leading
|
|
|
|
period (.label) or leading at-sign (@label) or terminating
|
|
|
|
dollar sign (label$).
|
|
|
|
* String Symbols system allows building user expressions and macros
|
|
|
|
during assembly.
|
|
|
|
* Reassignment of symbols and labels by default.
|
|
|
|
* No indentation required for instructions, meaning that labels can't
|
|
|
|
be mnemonics, macros or directives.
|
|
|
|
* Supporting the syntax of other 6502 assemblers (Merlin syntax
|
|
|
|
requires command line argument, -endm adds support for sources
|
|
|
|
using macro/endmacro and repeat/endrepeat combos rather
|
|
|
|
than scoeps).
|
|
|
|
* Apple II GS executable output.
|
|
|
|
|
|
|
|
## Command Line Options
|
|
|
|
|
2020-01-11 21:16:34 +00:00
|
|
|
Controls the assembler for the entire file
|
|
|
|
|
2020-01-11 21:04:00 +00:00
|
|
|
See [Command Line Options](command_line_options.md)
|
2020-01-11 20:58:26 +00:00
|
|
|
|
|
|
|
## Directives
|
|
|
|
|
2020-01-11 21:16:34 +00:00
|
|
|
Controls the assembler on a line basis
|
|
|
|
|
2020-01-11 21:04:00 +00:00
|
|
|
See [Directives](directives.md)
|
2020-01-11 20:58:26 +00:00
|
|
|
|
2020-01-11 21:16:34 +00:00
|
|
|
## Eval Functions
|
|
|
|
|
|
|
|
Functions that returns values for use in expressions.
|
|
|
|
|
|
|
|
See [Eval Functions](eval_functions.md)
|
|
|
|
|
2020-01-11 20:58:26 +00:00
|
|
|
## Macro examples
|
|
|
|
|
2020-01-11 21:16:34 +00:00
|
|
|
Some info about the included example x65macro.i file.
|
|
|
|
|
2020-01-15 19:23:07 +00:00
|
|
|
See [Macro Samples](macro_samples.md)
|
|
|
|
|
|
|
|
## List of Errors
|
|
|
|
|
|
|
|
See [Error List](errors.md)
|