xasm.atari.org

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).

Target audience

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.

Features

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

Usage

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:

6502 code in Code-Genie


Hosted by Atari Area