Development Tools: Assemblers and Disassemblers  Projects  Code  Documents  Tools  Forum

**  Assemblers and IDEs

  • 6502Asm - James Salvino's 6502Asm is an open-source (GPL-licensed) assembler written in Python that supports the NMOS 6502 instruction set.
  • A6 - Simon Collis has written a multiplatform 6502 cross-assembler geared towards Commodore 64/128 development. Executables and source code of A6 are available for DOS, Unix, and AmigaOS.
  • ACME - Marco Baye's ACME cross-assembler has been recommended by several 6502.org visitors. This assembler has been ported to several platforms including Amiga, DOS, and Linux. It supports convenient features like macros and local labels, and assembles for the 6502, 65C02, and 65C816. See also the SourceForge page
  • asmx - Bruce Tomlin's asmx cross-assembler supports the 6502 (with undocumented opcodes), 65C02, and has partial support for the 65C816. The assembler is provided as source code that should compile on most Unix-like operating systems.
  • BeebAsm - BeebAsm is a 6502 assembler designed specially for developing assembler programs for the BBC Micro. It uses syntax reminiscent of BBC BASIC's built-in assembler, and is able to output its object code directly into emulator-ready DFS disc images. See also the current source on GitHub
  • DASM - A cross-platform, versatile macro assembler with support for target microprocessors including 6502, 68HC11, 68705, 6803, HD6303, F8 and 6507. Full source-code and selected target-machine runtimes are included in the distribution package.
  • HXA - Anton Treuenfels' Hobby Cross Assembler (HXA) is a program written in the TAWK language. It currently handles 6502, 65C02/R65C02/W65C02S, and W65C816S instruction sets, does macros, includes, conditional assembly, and more. Its source code is available under the GNU Public License.
  • MAS65: 6502 Macro Cross Assembler - Douglas Beattie wrote this macro cross-assembler for use with his DIY-6502 homebuilt computer, and also has a version of figFORTH that support communication through the 6551 ACIA.
  • SB-Assembler - San Bergmans created this cross-assembler for DOS that includes some interesting features like a random-fill directive and multi-processor support.
  • xa65: 6502 Cross Assembler - Andre Fachat's open-source assembler is written in C and supports the standard 6502 opcode list, as well as the Rockwell R65C02 CMOS opcodes. It now supports the 65816 instruction set thanks to Jolse Maginnis. xa65 has a C-alike preprocessor and supports label-hiding in a block structure. It produces plain binary files, as well as special o65 object files. Further tools include a linker, file and relocation utilities for o65 files.
  • ATasm: A Mostly Mac/65 Cross-Assembler - Mark Schmelzenbach has created this 6502 cross-assembler that is compatible with the original Mac/65 macro-assembler from OSS software. It is specially designed for Atari computers and emulators.
  • 6502/Microlab Assembler - David Jordan has written this very simple assembler for use with the EPE Microlab trainer board. This page contains the Linux 2.x binary and C source code.
  • MXASS - A shareware cross-assembler which supports the 6502, 65C02, illegal 6502, 65816, and Z-80. It can handle macros, local labels, and many other things. A demo version is available on this site from the author, Michael Steil.
  • WLA DX - Ville Helin is a Finnish progammer that has written "Yet Another GB-Z80/Z80/6502/6510/65816 Macro Assembler Package" that runs on several platforms including MS-DOS, Linux, and the Amiga.
  • Piotr Fusik's XASM - A portable, open source assembler. Although geared towards Atari 8-bits, it may be used for other 6502 applications as well.
  • P65 Assembler - Michael Chapman Martin has written a highly-portable 6502 cross-assembler written entirely in Perl.
  • Charles R. Bond's Assembler - A four-pass assembler for the 6502 that is bundled with a source code generator that can read "H6X" files and generate assembly source.
  • Win2C64 - Aart Bik has written a 6510 cross-assembler for Windows. It supports the undocumented opcodes as well as most commonly used directives.
  • Dev65 - Andrew Jacobs has written the Dev65 Portable 65xx Development System, supporting 65xx, 65C02, and 65816 assembly-language programming. It runs on any system with Java and the source can be found on SourceForge.
  • cc65 - Ullrich von Bassewitz maintains cc65 which is a cross development package for 65(C)02 systems, including macro assembler, C compiler, linker, and other tools. The assembler supports the 65816. Its cross platform and binaries are available.
  • Ophis assembler - Michael Martin's "Ophis" is a cross-assembler for 65xx, supporting the stock 6502 opcodes, 65c02 extensions, and syntax for the undocumented opcodes in the NMOS 6502. (Syntax for these opcodes matches those given in the VICE team's documentation.) It supports macros too. Ophis is written in pure Python and should be highly portable. Special emphasis is given toward developing Commodore 64 applications.
  • UniAsm - Jörg Schreiber has written a shareware cross-assembler that supports 6502, 65c02, 65816 and his own 65JS24. The page also has links to Jörg's text editor, emulator and BASIC compiler for 65JS24, and other tools.
  • FASM10.ZIP - FASM is a macro-assembler written in C by as a quick replacement for 2500 AD. It has been released under GNU Public License and full source code is included.
  • TASM301.ZIP - TASM 3.01 from Speech Technology is sort of the "de facto" for DOS cross-assemblers. It supports quite a few different processors, including the 6502 and 65C02.
  • max65 - 0xC0DE's max65 is a command-line macro cross-assembler for the 65xx CPU family. It is useful for many systems but it specifically targets 8-bit Acorn computers like the Electron and BBC Micro.

**  Web-based Assemblers and IDEs

  • 6502 - Norbert Landsteiner's online suite of assembler, disassembler and emulator.
  • 6502asm - Stian Søreng's web-based emulator includes an assembler.
  • 8bitworkshop - Steven Hugg's web-based IDE includes emulation of the Atari VCS and other platforms. Source on GitHub.
  • Asm80 - Martin Malý's web-based IDE with examples, emulates various platforms including a simple 6502 SBC. Source on GitHub.
  • beebide - Matt Godbolt's web-based IDE offers BeebAsm syntax and embeds an emulation of Acorn's BBC Micro. Source on GitHub.
  • Dodo Playground - Peter Noyes' web-based IDE includes a tutorial and emulation of his 6502 game platform. Source on GitHub.
  • Easy 6502 - Nick Morgan's web-based 6502 tutorial embeds assembler and emulation of a simple SBC. Source on GitHub.
  • Imaginary 6502 - Matt Dawson's web-based assembler with emulation of a simple SBC.

**  Disassemblers

  • DCC6502 - A code disassembler for the 6502 microprocessor. It features accurate cycle counting, fast table-based disassembly, portability, and special features for NES developers. Previous closed-source version can be found here.
  • radare2 - Portable, multi-architecture "unix-like reverse engineering framework and commandline tools."
  • run6502 - Ian Puimarta's portable command line emulator includes a simple disassembler.
  • 6502 Disassembler - An in-browser disassembler by Norbert Landsteiner. Emulator and assembler nearby.
  • BeebDis - a disassembler that outputs BeebAsm compatible code, for Windows or Linux, by PhillHS. This is a tracing disassembler which uses a control file to allow successive runs to converge on complete labelled disassembly. (Announcement, discussion.)
  • WFDis - Graphical interactive disassembler for the 6502 family, including NMOS, 65c02, and Rockwell variants. Traces code to separate it from data. An emulator is included to run relocation or decompression routines, and continue disassembling from there. Strong support for Commodore 64 file formats, including BASIC launchers, .d64 and .sid file formats, and displaying character/sprite graphics. Part of a larger ongoing AI-based reverse engineering project.
  • dis6502 - A flow-tracing disassembler for the 6502 by Robert Bond, Udi Finkelstein, Eric Smith, and (more recently) Peter H. Froehlich. Most recently, as updated by Steve Fosdick.
  • dis6502 - "Interactive 6502 Disassembler for Atari binary files on Windows" by Eric Bacher.
  • A simple 6502 disassembler - in C, by forum member Cray Ze.
  • Minimal disassembler - To fit an FPGA's block RAM, as part of an embedded debugger. By forum member hoglet.
  • Auto Disassembler - A flow-tracing disassembler by Ruud Baltissen (source on request)
  • The Flaming Bird Disassembler - "The most powerful Apple IIgs disassembler in the galaxy"
  • DASMx - A flow-tracing disassembler for Windows command line. Allows input of a symbol file.
  • PVU6502.ZIP - picoViewer 6502 version is a free interactive disassembler for PalmOS. More information can be found on the Picodoc website.
  • IDA37FW.ZIP - IDA 3.7 from DataRescue is an excellent freeware multi-processor, interactive disassembler for DOS. It now grown to a commercial product and a link to it can be found in the Commercial Support section.
  • 6502bench SourceGen - Windows GUI program for interactive disassembly of 6502, 65C02, and 65C816 binaries. It is written in C# .NET and open source.

**  Optimizers

  • 6502/10 Peephole Optimizer [archive.org] - Daniel Dallmann created this C program to aid development with his C64 operating system "Lunix". The peephole optimizer works with standard 6502 code and the source is very portable.