xasm is a 6502 cross-assembler for DOS/Windows. It is mainly targeted at Atari 8-bit computers, but it can be also used for programming Atari 2600/5200/Lynx, Commodore C64, Apple ][ and others. xasm is freeware.
Download version 2.6.0 (22 KB, includes full documentation)
xasm no longer includes the tools X-BOOT, X-LOAD and X-HEAD. If you really need them, download version 2.5.2 (38 KB).
xasm is for people who are fluent in the 6502 assembly language. There is no sample code for beginners, no easy-to-use libraries. You are warned that programming 8-bit machines in the assembly language is a tedious work.
There are several 6502 cross-assemblers to choose from and new ones still appear. Just search the web. Make sure to not overlook the cc65 compiler which includes a cross-assembler, portable across many host and target platforms.
Although xasm does not support user-defined macros, it has a rich set of built-in facilities.
Here is some typical 6502 code (also valid in xasm):
lda #<dest sta ptr lda #>dest sta ptr+1 ldx #192 do_line ldy #39 do_byte lda pattern,y sta (ptr),y dey bpl do_byte lda #40 clc adc ptr sta ptr bcc skip inc ptr+1 skip dex bne do_line
And here is the same code rewritten in a xasm-specific way:
mwa #dest ptr ldx #192 do_line ldy #39 mva:rpl pattern,y (ptr),y- lda #40 add:sta ptr scc:inc ptr+1 dex:bne do_line
Although xasm comes with no editor, the documentation describes integration (syntax highlighting and single-keystroke compilation) with a few general-purpose text editors. Here is a screenshot of the Code-Genie editor:
Hosted by Atari Area