Retro Assembler Version 1.2 is ready with 65C02 and 65SC02 CPU support.
After the last release of V1.1 I received a lot of support and encouragement from Commodore 64 and MOS6502 enthusiasts on Facebook, it was nice. As a result of it, the assembler has been fixed to work on Linux using Mono, I even set up my dusty Raspberry Pi 3 with an environment that can run it.
I began researching other CPU types and ended up adding support for the 65C02 and 65SC02 CPUs. They looked like small updates at first with a few new instructions, but the 65C02 has these weird bit instructions that combine a zero page address for bit testing and a relative address for branching. That was a bit of a trouble for the assembler, as it couldn't deal with instructions that use two parameters. However, it was added and it works nicely.
Notepad++ syntax highlighting was made for 65C02 (you can use that for 65SC02 code too), and the catch-all syntax highlighter language file contains the new instructions. You should update the file for 6502 because now it has the .memory and .break directives too as keywords.
The CPU names have been slightly changed, instead of "MOS6502" you should just refer to "6502". Although backwards compatibility is still provided, you should update the .config file for the assembler. The sample code files have been updated to reflect this change.
The D64 maker option has been adjusted a bit to work properly on Linux, by calling "c1541" instead of "c1541.exe".
A new directive .break has been added for breakpoint creation, for debugging in VICE Monitor. It can either just save a breakpoint, or save one with an optional IF condition. It also adds all global labels to the "moncommands.txt" output file.
I planned to also add support for 65C816 but that requires even more special additions, including 24-bit addressing in certain instructions and long branch support. So I'll just roll out Version 1.2 now without that, and spend some time on the 65C816 implementation and source code clean up for Version 1.3 sometime in January.
See the documentation for details.
RetroAssembler.zip Version 1.2 (76KB)
Platform: Windows/Linux command line (Requires .net Framework 4.7 or Mono)
Related post: Retro Assembler