6502 Cross-Development Languages and Tools List

Compiled by Daniel Fandrich

December 2022

This list contains programming languages targeting the 6502 microprocessor (with an emphasis on Commodore 8-bit computers), which are hosted on another build system. A separate list of native languages for Commodore computers is also available. Please send any additions or corrections to Dan.

Legend

$ preceding the program name means it is commercial
# means it is shareware
? means the status is unknown
  no symbol means it can be obtained for free

Within (parenthesis), a year is either a copyright year or an upper bound on the initial release date (such as the date of a magazine ad). The programmer's name and software company or companies are included if known.

System abbreviations within [brackets] are the tool host systems which are known to work, and include the following:

Abbreviation Operating System
386 UNIX SCO UNIX?
Amiga Amiga
Apple Apple II
Atari ST Atari ST running TOS
CP/M CP/M-80 (8080)
CP/M-86 CP/M-86 (8086)
DOS MS-DOS
HP 700 HP 700 (HPUX?)
Linux Linux
Mac Macintosh
NT Windows NT
OS/2 OS/2
PCIX PCIX
RiscOS RiscOS (Acorn Archimedes)
source source code is included
Sun4 Sun Sparcstation running SunOS
Sun3 Old Sun 68xxx machines
ULTRIX ULTRIX
UNIX source can be compiled on one or more UNIX-like systems
VENIX VENIX
VMS Open VMS
Win MS Windows
Xenix Xenix

A URL is included (when known) to help obtain the freely available programs.

Contents

The cross-development languages and tools for Commodore 8-bit computers included in this list are:


Assemblers (6502)

$ 2500AD ADA Assembler [DOS,OS/2,Xenix,386 UNIX,NT,Sun4,HP700,VMS] (Avocet Systems Inc.)
Includes 65C02 assembler, relocatable linker and librarian. Supports conditional assembly, macros, cross-reference generating. (cost ~$250-$500)
On-line program information is available.
# 6502 Cross Assembler [source,DOS] (1988, John J. Haughey)
Mostly compatible with the ORCA/M assembler for the Apple. This assembler does not support macros. The maximum size for an object code file is 22.5k. Also included is a 6502 debugger/PROM burner/PROM reader compatable with Bay Technical Asso.'s model 953A EPROM programmer, and a utility to burn EPROMS of any type, on the PROMAC15. Source in Turbo Pascal is included. is available.
<ftp://ftp.elysium.pl/tools/pc/crossasm/6502asm.zip>
6502/65C02 Cross-Assemblers [DOS,UNIX,CP/M,CP/M-86] (1988, William C. Colley III)
These programs let you use your computer to assemble code for the MOS Technology 6502 and Rockwell 65C02 microprocessors. The program is written in portable C. All assembler features are supported except relocation, linkage, and macros. Executables are called as65 and as65c.
Available from the C Users' Group Library, disk #219.
6502 SDK [source,Win] (Valerio Gionco)
6502 Software Development Kit is an integrated development environment that allows you to write, assemble, test and debug your 6502 assembly programs. If you have a Commodore 64, a VIC-20, an old Apple or any other 6502-based machine, you can cross-assemble your own software on the PC under Windows 3.1. It includes: Multi-window text editor; Integrated assembler with macro capabilities; 6502 emulation with disassembler/debugger; Project manager; Memory and stack dump; Object disassembler; Breakpoints, expression watching, step-by step execution.
<ftp://ftp.funet.fi/pub/cbm/programming/msdos/s6502b10.zip>
<ftp://ftp.funet.fi/pub/cbm/programming/msdos/s6502src.zip> (source)
# 6502/65C02 Turbo Assembler [DOS] (© 1996 Taboo Productions)
100% compatible with Commodore 64's TASS v5.1 and most of its further releases.
<ftp://ftp.funet.fi/pub/cbm/programming/msdos/6502tass.zip>
A65 [source,DOS] (2001)
Cross assembler for 6502 based on As6502 by Ornum & Swank. Generates object files in binary, Intel hex or MOS Technology hex formats.
<https://www.nic.funet.fi/pub/cbm/programming/msdos/a65v10.zip>
ACME [source,DOS,Win,Amiga,Linux,RiscOS] (Smørbrød Software)
Cross assembler for 6502, 65C02 and 65816. Supports macros, conditional assembly and looping assembly.
On-line program information is available.
<http://www.esw-heim.tu-clausthal.de/~marco/smorbrod/acme/current/acme091src.zip> (source)
as65 [DOS] (© 1990-1994 Frank A. Vorstenbosch, Kingswood Software)
Cross assembler for 6502/65SC02. Can generate binary, Intel hex and Motorola S-record output. Linking modules is not possible.
<ftp://oak.oakland.edu/pub/simtelnet/msdos/crossasm/as65_108.zip>
as6502 [source,DOS,UNIX] (1993, Marko Mäkelä, Alan R. Baldwin)
Linking 65C02 cross assembler. Uses non-standard syntax. Includes source in C.
<ftp://ftp.funet.fi/pub/cbm/programming/unix/as6502-1.60.tar.gz>
? as6502 [source,DOS] (1993)
as6502 is a 2 pass cross assembler for the 6502 microprocessor. It has been modified by Todd Greenfield to output object code in Atari binary file format. See the source and other documentation files for more information.
<ftp://ftp.kerneli.org/pub/atari/8bit/unix/as6502_atari.tar.gz>
As6502 [source,Amiga] (1987, J. H. Van Ornum, Joel Swank)
A portable 6502 assembler including source in C.
On-line program information is available.
<ftp://ftp.plig.net/pub/aminet/dev/cross/As6502.lha>
asl [source,DOS,OS/2,UNIX] (Alfred Arnold)
Cross macro assembler for 6502, 65816 and about 40 other processor families. Documentation in German.
On-line program information (for old version) is available.
On-line program information is available.
<ftp://ftp.uni-stuttgart.de/pub/systems/msdos/programming/crossasm/makroasm/as*> (old version)
<http://metalab.unc.edu/pub/Linux/devel/lang/assemblers/asl-1.41r8.tar.gz>
asm6502 [RiscOS] (1998, Alain Brobecker)
CLI based 6502 cross assembler, provided with some examples for c64. Has some restrictions (no macros, includes or local labels) but is handy for small projects.
<http://membres.lycos.fr/abrobecker/tools/asm6502.zip>
AssemTools [Amiga] (1989, Jukka Marin)
Includes a 65C02 cross macro assembler along with a collection of files and routines for Amiga programmers.
<ftp://ftp.sunet.se/pub/amiga/aminet/dev/asm/AssemTools.lha>
Atasm [source]
6502 command-line cross-assembler that is compatible with the original Mac/65 macroassembler for Ataris. Features bank support for creating large images, rich macro support, Atari specific assembler directives. Produces Atari native binary load object files and .XFD or .ATR disk images.
On-line program information is available.
<https://sourceforge.net/project/showfiles.php?group_id=55819>
$ AvMAC [DOS?] (Avocet Systems Inc.)
65816 macro assembler. Conditional assembly, allows complex relocatable expressions, special segment types, produces listing, cross-reference and relocatable object files. Cost (~$350).
# C64ASM [DOS] (© 1995-1996 Bálint Tóth)
Supports labels, symbolic constants, mathematical expressions, include files and can create a detailed report. Includes C64DISA disassembler. Supports the Commodore emulator T64 tape file format and P00 emulator file format.
<http://www.simtel.net/pub/simtelnet/msdos/crossasm/c64asm11.zip>
<https://www.funet.fi/pub/cbm/programming/c64asm11.zip>
ca65 [source,Linux] (© 1998, Ullrich von Bassewitz)
Part of the cc65 (Commodore) suite. Includes one-pass assembler, linker and librarian. Supports 65C02 and 65816 CPUs using standard syntax, and provides conditional assembly, produces relocatable code, and supports segments.
CASM [DOS] (1995, Peter Gonzalez)
CASM is a freeware cross-assembler for the 6502 that runs on the IBM PC. It is specifically designed for large Commodore 64 projects, but will work for any 6502-based system. Includes a disassembler and some other utilities. Assembler has a handy bitmap data feature for defining graphics in source code.
$ Cross-32 V2.0 Meta Assembler [DOS,Win] (Data Sync Engineering)
Table-based absolute macro cross assembler using manufacturer's assembly mnemonics. Supports macros and conditional assembly. Uses C language arithmetic and logical operators. Includes tables for 6502, 65C02, 65816 and >40 other CPUs and can be expanded to even more. Generates Intel hex, Motorola S hex and binary output. Originally made by Universal Cross-Assemblers. (cost ~$100)
On-line program information is available.
<https://www.datasynceng.com/c32demo.zip> (DOS demo version)
<https://www.datasynceng.com/c32dem95.zip> (Windows 95 demo version)
Cross64 [DOS] (Feb. 1996?, 64er Magazine)
Cross assembler for Commodore 64 code.
DASM [source,MS-DOS,Amiga,Linux,Mac,Win] (© 1987 Matthew Dillon)
6502 (and others) cross assembler which generates Intel hex output. Includes source in C.
On-line program information is available.
<https://github.com/dasm-assembler/dasm/releases/> (source,binaries)
? Foxy [Amiga]
Cross assembler with macros, conditional assembly, include files and other features. Linker is called Lynx which can produce a padded scatter-loaded object file and optionally add a start address. It can generate a text version of the object (may be Motorola S-record format).
Available on The Transactor's first Amiga disk.
Frankenstein Cross Assemblers [source,DOS,UNIX] (1990, Mark Zenier)
No macros, relocatable linkers, fancy print controls or structured control statments. Source code in Yacc and C included. Executables are called as6502, as65c00 and asr65c00.
On-line program information is available.
On-line program information is available.
Available from the C Users' Group Library, disk #335.
<ftp://ftp.sterling.com/usenet/alt.sources/volume90/Dec/ 901206.02/3/4, 901209.07/8>
<http://ftp.unina.it/pub/Other/electronics/microprocs/assemblers/Frankasm/>*
# GASS [Amiga] (© 1993 Kajetan Hinner)
6502/6510 assembler for the Commodore Amiga.
On-line program information is available.
<ftp://ftp.plig.net/pub/aminet/dev/cross/gass110.lha>
HXA [DOS,Win] (© 2004-2013 by Anton Treuenfels)
Hobby Cross Assembler (HXA) is a macro assembler capable of producing absolute output files in several formats. HXA is meant to be straightforward to use for simple programs, requiring little setup before assembly may begin. There are also optional features intended to make it easier to handle more advanced projects, such as the equivalent of a simple built-in linker. HXA is designed to be fairly portable between various processors, and is GPL-licensed freeware. Supports 6502, 65C02, R65C02, W65C02S and W65C816S.
On-line program information is available.
<http://home.earthlink.net/~hxa/>
Generic Assembler [source,DOS] (1986, Lyle McElhaney)
Generic 6502/6803/8085 cross assembler which generates Intel hex output. Includes source in C.
<http://www.simtel.net/pub/simtelnet/msdos/crossasm/assemblr.zip>
# HyperSource macro assembler [Amiga] (Ralf Steines)
HypAss10 is the initial evaluation version of a new universal shareware cross assembler currently featuring the complete 65xx, 68xx and PICxx family microprocessors and microcontrollers. HypAss was designed to be the 'compatibility machine' one day, and currently supports 10 different selectable syntax sets, so you needn't learn the complete pseudo opcode set and expression syntax of a new assembler whenever you use a new CPU!
On-line program information is available.
<http://wuarchive.wustl.edu/pub/aminet/dev/cross/hypass10.lha>
Kick Assembler [Linux,Win,Mac]
Written in Java. Used by the KickC compiler.
On-line program information is available.
<http://theweb.dk/KickAssembler/KickAssembler.zip> (binaries)
$ Logisoft Cross Assembler [DOS] (Logisoft)
Includes 65C02 & 65C112 macro assembler, linker, locater, librarian, etc. Will generate Intel hex, Intel OMF85, Tek hex, Motorola S-record, Zilog ABS and binary output. Inexpensive trial diskette is available. (cost up to ~$350)
Luna [source,UNIX] (1996, Daniel Dallmann)
Small, fast 6502 cross assembler written in GNU C. Can generate object code for linking with lld.
# ma22 Cross Assemblers (Series II) [DOS] (1992, Jocelyn)
These programs are shareware distributed versions of high quality Macro Cross Assemblers which you get when you register. These versions however do not support macros, conditional assembly and included files like their expanded versions do. These programs are basic two-pass assemblers.
MacQFORTH [Mac] (Toshi Morita, Ronald T. Kneusel)
See entry in the Emulators section.
Mad-Assembler (MADS) [source,Win]
Atari-oriented.
On-line program information is available.
MAS65 [DOS,CP/M] (© 1996 Douglas Beattie Jr)
Macro cross-assembler for 6502. Features macro nesting to 25 levels, long labels, deep conditional nesting, conditional assembly and assembly-time arithmetic.
On-line program information is available.
<http://www.hytherion.com/beattidp/comput/x65tools/mas65.exe>
masm6502 [DOS,Linux,Sun3,Sun4] (1992, Thomas J. Klehr)
Table-driven 6502 macro cross-assembler. Prepends Commodore-style start addresses to executables.
On-line program information is available.
<ftp://bbs.cc.uniud.it/c64/tools/coding/cross_compilers/masm6502.zoo>
MOS6502 [source,DOS] (1997, BTTR Software)
Simple 6502 cross assembler supporting labels, conditional assembly but no macros. Written in 8086 assembly language.
<ftp://ftp.funet.fi/pub/cbm/crossplatform/programming/msdos/mos6502.zip>
# MXASS [DOS] (1998, Michael Steil)
Assembler for the MOS6502/65C02/WDC65816 and Z80 CPUs that runs on an MS-DOS platform. Its main purpose is to assemble programs for a C64 or a C128. Supports undocumented opcodes. Object code can also be saved to hard disk in one of these formats: N64 (for 64NET), P00 (for PC64), PRG (for several C64 programs) and OBJ (raw). Can automatically send object code to host machine via 64NET.
<ftp://ftp.funet.fi/pub/cbm/programming/msdos/mxass28.zip>
? Nasty assembler [source?,Atari ST] (1993)
6502 cross assembler.
<ftp://ftp.cs.tu-berlin.de/pub/atari/Programming/nasm20b.lzh> (binaries?)
<ftp://ftp.cs.tu-berlin.de/pub/atari/Programming/nasm20s.zoo> (source?)
? OMC [Atari ST] (1995, OurSoft)
MOS 6502 macro assembly language compiler for Atari ST/STE/TT/Falcon. Fully compatible with OSS's MAC/65 (for 8-bit Ataris?).
# PseudoSam 65 Assembler [DOS] (1986, PseudoCode)
UNIX SysV syntax 6502 cross assembler. V1.2 does not support macros, relocatability, include files or conditional assembly.
<http://www.simtel.net/pub/simtelnet/msdos/crossasm/ps65a12.zip>
Qasm [Win]
Polish origin.
On-line program information is available.
# RAsm [Mac] (1995, Michael Hamel)
Supports macros and conditionals and can assemble and disassemble for a number of 8/16-bit processors, including 6502, Intel 8051, Zilog Z8, etc. You can also write your own processor definition files. However, there doesn't seem to be any support or updates. And it doesn't seem to have the facility to use < and > operators to extract hi/lo bytes.
On-line program information is available.
SMAL [source,DOS,UNIX] (1982, Douglas W. Jones, Roger Z.T. Marty)
Symbolic Macro Assembly Language. The SMAL assembler comes in various versions. It was developed by Douglas W. Jones and his students. Source code in portable Pascal is included. smal6502.p.Z -- Pascal source for a version of SMAL developed for the 6502 with help from Roger Marty. smal6502.txt.Z -- The user's guide for smal6502.p, in plain text format.
On-line program information is available.
<ftp://ftp.cs.uiowa.edu/pub/jones/smal/smal6502.*>
$ SMAL/80X65 [CP/M] (1984, Chromod Associates)
Cross assembler which produces both Z80 and 6502 object code. It uses a unique syntax which replaces standard assembly mnemonics with algebraic notation and allows control structures like BEGIN...END, LOOP..REPEAT WHILE, and IF...THEN...ELSE which eliminate the need for up to 90% of labels with no overhead.
# svasm02 [DOS] (1988, John Michne)
65C02 cross assembler which generates Intel hex format output. Ver. 1.0 does not include macros.
<http://www.simtel.net/pub/simtelnet/msdos/crossasm/svasm02.zip>
# TASM [DOS] (1985, Thomas N. Anderson, Speech Technology Inc.)
Table-driven cross assembler for many CPUs including 6502 & Z80.
<http://www.simtel.net/pub/simtelnet/msdos/crossasm/tasm301.zip>
TMPx [source,UNIX,Win] (Style)
Highly compatible with the syntax of the old Turbo Assembler Macro.
On-line program information is available.
<http://turbo.style64.org>
tpasm [source,UNIX]
Cross assembler for many CPUs including 6502, 65C02 & Z80. Started as replacement for mpasm (for PIC microprocessors). Features true multi-pass assembly, multiple segments, sophisticated expressions, macros, repeats, conditionals.
On-line program information is available.
<ftp://ftp.ct0.com/pub/tpasm.tgz>
Turbo Rascal Syntax Error [Linux,Mac,Win]
See the Turbo Rascal Syntax Error entry in the Pascal section.
VACS [DOS?] (1987, A.C. Verschueren, W.H. Taphoorn)
6502 cross assembler. Many other processors are supported by members of the family.
<ftp://ftp.stack.nl/pub/68hc11wg/crossasm/vacs65.zip>
$ W65C02S/W65C816S Assembler/Linker [DOS] (Western Design Center)
Fast two pass assembly to object code. Over 100 assembler directives and MODULE and SECTION directive for complete control over linking. Full macro and conditional support. Linker is full featured object module linker supporting multiple output formats.
On-line program information is available.
win2c64 [Win] (Aart J.C. Bik)
6510 cross assembler that generates T64 images for C64 emulators. Supports common macros and undocumented 65xx opcodes.
On-line program information is available.
xa65 [source,DOS,Linux,Amiga,Atari ST] (© Andre Fachat)
Fast 6502/65C02 assembler producing raw binaries. Ver. 2.1.4 can produce a custom relocatable binary format (o65) and plain binaries. Includes a simple linker. Has C-like preprocessor for macros. Includes C source code and ST binaries. Not Commodore-specific.
On-line program information is available.
<https://www.floodgap.com/retrotech/xa/dists/xa-2.1.4h.tar.gz>
<https://www.floodgap.com/retrotech/xa/dists/xa-2.1.4f-amiga.lha> (Amiga binary)
<ftp://ftp.funet.fi/pub/cbm/programming/msdos/xa214f.lzh> (DOS)
<ftp://frodo.hiof.no/pub/c64/util/xa-207b.tgz>
# xasm Rel. 2.2 [DOS] (1983, Dave Dunfield, Dunfield Development Systems)
Many-targeted macro cross assemblers. Not Commodore specific.
On-line program information is available.
<http://www.simtel.net/pub/simtelnet/msdos/crossasm/xasm220.zip>
xasm [DOS] (1998-2005, Piotr Fusik)
Atari oriented assembler, compatible with Quick Assembler. Provides pseudo addressing modes and pseudo instructions (e.g. indexing with autoincrementation, add, sub, inw, mva etc.) Supports conditional assembly, Atari floating-point numbers and Atari executable and raw output formats.
On-line program information is available.
<http://atariarea.histeria.pl/x-asm/xasm252.zip>
$ XASM65 [DOS,CP/M,CP/M-86] (Avocet Systems Inc.)
ZooEY [source,UNIX] (Rafal Ciepiela)
ZooEY is a crossassembler designed for 6502 processors. Binaries are generated specially for 8-bit Atari systems (AtariDosII and SpartaDOS X formats supported). This tool is compatible with Quick Assembler - the most popular assembler in Poland.
On-line program information is available.
<https://sourceforge.net/project/showfiles.php?group_id=98917>

BASIC

XC=BASIC [Linux,Win,Mac] (XC=BASIC home page)
BASIC cross-compiler targeting most 8-bit Commodore platforms. The language syntax was designed to be similar to that of QuickBASIC and CBM BASIC. Both compilation and assembly run very fast even with multiple passes over the source code, The runtime library depends on KERNAL only; the BASIC ROM is banked out while running. Relies on DASM to assembling.
On-line program information is available.
<https://github.com/neilsf/xc-basic3/tags> (source & binaries)

C

$ 2500AD ADC C Compiler [DOS,OS/2,Xenix,386 UNIX,NT,Sun4,HP700,VMS] (Avocet Systems Inc.)
Includes compiler, macro preprocessor, assembler, linker, librarian, object libraries and simulator/debugger. Compiler has floating point math, in-line assembly, ROMable code and memory bank switching. Library source is available. Not Commodore-specific. (cost ~$650-$1000)
On-line program information is available.
$ Avocet C Compiler [DOS?] (Avocet Systems Inc.)
Complete source level compatibility with most leading in-circuit emulators. Run-time and floating point libraries including source code. Supports register variable type optimization. Link separate assembly functions with C modules, or embed assembly instructions in your C code using #asm, #endasm & asm() directives. Floating Point Uses IEEE 32-Bit formats. Interrupt functions may be vectored from ROM based vectors and also using RAM based vectors for test boards. Include AvMAC assembler.
$ Aztec C65 [DOS,ULTRIX,VENIX,PCIX,Apple,CP/M,CP/M-86] (1984, Manx Software Systems)
Includes optimizing ANSI compiler, assembler, linker, librarian, run-time libraries, etc. Can generate Intel hex or Motorola S-records output. Produces three resulting sections: executable code, initialized global/static data, uninitialized global/static data; code is executable ROMable. Source for libraries and startup code is included. COP C Optimizer is also available. (cost ~$500)
cc65 (Atari) [source,UNIX,OS/2]
C cross-compiler designed for Atari 8-bit computers. Optimizer sometimes produces bad code (unoptimized code works fine), and there seem to be bugs in some of the support programs. Source code is fairly portable.
On-line program information is available.
<ftp://archive.umich.edu/atari/8bit/Languages/Cc65/*>
cc65 (Commodore) [source,Linux,DOS,OS/2] (Ullrich von Bassewitz)
CC65 is C compiler that was originally adapted for the Atari 8bit computers by John R. Dunning. It is a Small C descendant but has several extensions, and some of the limits of the original Small C compiler are gone. The compiler is almost ISO C compatible, so you should be able to translate many sources from other systems. The compiler is only one of the tools available in this package. The assembler suite (assembler, linker, archiver) is a complete development environment for itself. The assembler is a one pass macroassembler and is able to output code for the 6502, the 65SC02 and 65SC816. The linker has a flexible output format and is able to support ROMable code (different load and run addresses for data), systems with multiple ROMs, unlimited segments, more than one BSS segment and lots of other things. The output targets most Commodore 8-bit computers including GEOS, as well as Atari 8-bit machines, Apple ][, Oric Atmos, NES, Supervision and Atari Lynx.
On-line program information is available.
<ftp://ftp.musoftware.de/pub/uz/cc65/>
$ EZPro Cross Compiler [DOS] (American Arium)
Optimizing C compiler. (cost ~$900)
KickC [source,Linux,Win,Mac]
A C-compiler for 6502-based platforms creating optimized and readable assembler code. The language is 95% standard C with a few limitations and a few extensions. Uses Kick Assembler for assembly.
On-line program information is available.
<https://gitlab.com/camelot/kickc/-/releases> (source)
lcc65 (cc65) [source,DOS,Linux] (Fabrice Frances, Ian Stephenson)
Retargeted version of of David Hanson's lcc compiler to the ORIC 6502-based computer. Both 16-bit and 32-bit integer versions are available.
This compiler has been vastly modified and repackaged and is now available as a part of OSDK (Oric SDK).
On-line program information is available.
<ftp://arlesienne.ensica.fr/pub/ORIC/ORIC-C/DOS/*> (DOS)
<ftp://arlesienne.ensica.fr/pub/ORIC/ORIC-C/Linux/*> (Linux)
lcc816 [source,DOS,UNIX] (Toshi Morita)
This is a C compiler front end from ATT/Princeton University which has had a 65816 code generator written for it. It uses 32-bit ints and currently runs on Unix boxes or MS-DOS machines. It doesn't run on a 65816 since it can't compile itself yet. At the time I received info about it, it was missing floating point support and most of the libraries.
OSDK [Win] (Mickaël Pointier)
Oric Software Development Kit is a complete cross-development system allowing you to create software for the Oric range of computers. Besides a compiler/assembler/linker, it also contains picture converters, tools to convert data to binary, supports cross-BASIC development, data packer, tape and disk utilities, etc. Compiler is based on lcc65.
On-line program information is available.
Small-C for the BBC Micro [source,DOS] (© 1989 A.J.Travis)
Port of James E. Hendrix's Small-C from Dr. Dobb's Journal for the BBC Micro. Written in C which the compiler can compile itself.
<ftp://ftp.uni-stuttgart.de/pub/systems/acorn/6502/lang/c/smallc/*>
Quetzalcoatl [Win32,Linux] (1998, Brendan Jones)
Queztalcoatl is a Cross Compiler for 6502 Processors. It can compile and link programs written in a subset of ANSI C, Assembler, the 1983 UPL language or any combination thereof. Queztalcoatl was developed as a test-bed for experimenting with native code optimisation. Accordingly, the code that is produced is already reasonably efficient. Queztalcoatl comes with a full-blown linker that can select smaller versions of the runtime library, based on whatever functions you happen to use.
On-line program information is available.
<http://www.kdef.com/guest/*>
$ W65C02S C Compiler [DOS] (Western Design Center)
Full ANSI standard compiler, includes IEEE floating point, pre-compiled headers, 16 bit int type. Uses zero-page locations as pseudo-registers and allows in-line assembly. 65C816 version also available.
On-line program information is available.
On-line program information is available.

Disassemblers (6502)

? 6502dasm [CP/M]
6502 disassembler for CP/M-80.
<http://oak.oakland.edu:8080/pub/cpm/6502/6502dasm.lbr>
AUTO-DIS [source,DOS] (Ruud Baltissen)
This 6502 disassembler does not only disassemble your file but also tries to determine which part of the program is code and which part is data by analysing the complete program. Source code in Turbo Pascal is available on request.
On-line program information is available.
# C64DISA [DOS] (© 1995 Bálint Tóth)
Part of the C64ASM assembler package.
<http://www.simtel.net/pub/simtelnet/msdos/crossasm/c64asm.zip>
ChkExe [source,DOS] (1995, Jindrich Kubec)
Atari executable checker/decompiler. Creates disassembly output for Andre Fachat's XA or Piotr Fusik's xasm.
On-line program information is available.
<http://www2.asw.cz/cgi-bin/download.pl?data/asoft/chkexe_src.zip> (source)
<http://www2.asw.cz/cgi-bin/download.pl?data/asoft/chkexe_bin.zip> (binaries)
d65 [source,UNIX] (Marko Mäkelä)
6502 disassembler (reassembler) that uses a recursive scanning algorithm. It detects any data blocks very reliably, and produces a symbolic disassembly output. It runs on Unix but should port to PC easily.
<ftp://ftp.funet.fi/pub/cbm/programming/unix/d65-0.2.1.tar.gz>
DASM [Mac] (© 1987,1988 Matthew Dillon)
See entry in the Assemblers section.
# dis6502 [Win] (1996, Eric Bacher)
6502 disassembler designed for Atari 8-bit code.
On-line program information is available.
<http://www.nacs.net/~classics/dis6502/dis6502.zip>
dis6502 [source,UNIX] (1988, Robert Bond)
6502 disassembler designed for Atari 8-bit code.
<ftp://ftp.cis.ohio-state.edu/pub/comp.sources.unix/Volume15/dis6502.Z>
? Dis6502 [source,Amiga] (1993, Robert Bond, Udi Finkelstein)
Disassembler for the 6502-processor family with support for C64 binary files. Amiga port of dis6502.
# Dis6502 [Amiga] (1993, Morten Eriksen)
Disassembler for the 6502-processor family with support for C64 binary files.
On-line program information is available.
<ftp://ftp.plig.net/pub/aminet/dev/cross/Dis6502.lha>
Distella [MS-DOS,Amiga] (1997, Bob Colbert)
A smart disassembler for Atari 2600 video game cartridges. It uses recursive tracing routines to determine code and data blocks, and it replaces calls to Atari 2600 hardware registers with defined names. Produces code compatible with DASM.
On-line program information is available.
<http://members.cox.net/rcolbert/zip/distella.zip>
$ Logisoft Cross Disassembler [DOS] (Logisoft)
Automatic label generation. Includes Logisoft Cross Assembler. (cost ~$600)
# RAsm [Mac] (1995, Michael Hamel)
See entry in the Assemblers section.
recomment [source,UNIX] (© 1994 Jouko Valta)
recomment is a database driven reassembler written in PERL. It generates output which can include labels and comments taken from a separate file. Included in the x64 C64 emulator distribution.
<ftp://ftp.funet.fi/pub/cbm/crossplatform/programming/unix/recomment-4.07a.tar.gz>
# WFDis [DOS] (1996, David Holz)
Full-featured disassembler for C64 binaries. Can separates assembly code from BASIC loaders and data, generates labels for every jump/branch, has built-in label descriptions for ROM entry points and important RAM locations. Has capability to display data as BASIC code, assembly code, hex dump, word dump, ASCII dump, character data, sprite data, and bitmap screen data. Nifty scrollable color interactive interface.
On-line program information is available.
<http://www.geocities.com/ResearchTriangle/Lab/1767/files/c64/wfd_dem1.zip> (demo version)
<ftp://ftp.funet.fi/pub/cbm/programming/msdos/wfd_dem2.zip> (demo version)
WFDis (Web) [Web] (2017, David Holz)
Graphical interactive disassembler for the 6502 family that runs in your web browser. Supports 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.
On-line program is available.
$ XDASM [DOS] (1996, Data Sync Engineering)
Accepts Intel hex, Motorola S and binary file formats and creates "assembler-ready" code. Uses manufacturer's assembly language mnemonics and allows user configurable assembler directives. Deblocks source code into subroutines. Source code for all CPU tables provided and users may create tables for other processor types. Supports 6502, 65C02, 65816 and 28 other CPUs. (cost ~$250)
On-line program information is available.
<https://www.datasynceng.com/xdemo.zip> (demo version)

Emulators/Debuggers

Many emulators are available to emulate the C64, C128, VIC-20, Apple II, Atari 400, 800 and 2600 machines on the following platforms: Amiga, Atari ST, DOS, Macintosh, UNIX. Those are not listed here; see the comp.emulators.cbm FAQ, the comp.emulators.apple FAQ, and the comp.sys.atari.8bit FAQ for detailed lists.

$ 2500AD ADS Simulator/Debugger [DOS,OS/2,Xenix,386 UNIX,NT,Sun4,HP700,VMS] (Avocet Systems Inc.)
Full-colour menu driven source debugger, supporting interrupts, I/O, cycle-count breakpoints, stack control and memory traps. Not Commodore-specific. (cost ~$150-$250)
On-line program information is available.
? 6502sim [CP/M]
Runs 6502 code on 8080/Z80 system.
<http://oak.oakland.edu:8080/pub/cpm/6502/6502sim.lbr>
$ Avocet 6502 Simulator/Debugger [DOS?] (Avocet Systems Inc.)
6502 simulator/debugger. Not Commodore specific.
On-line program information is available.
$ Cactus 6502 In-Circuit Emulator [DOS?] (Avocet Systems Inc.)
Hardware ICE which allows symbolic and source-level debugging. Not Commodore-specific. Includes "free" single board computer with purchase, so this isn't going to be cheap.
On-line information is available.
emul6502 [RiscOS] (1998, Alain Brobecker)
A fast 6502 emulator+debugger (~5MHz on a 30MHz Arm610) which will serve as basis of a forthcoming Acorn ATOM emulator.
<http://membres.lycos.fr/abrobecker/tools/emul6502.zip>
$ IAdea QuickModeler [Win] (IAdea Corporation)
6502 emulator featuring real-time accuracy, allowing music synthesis, speech synthesis and mechanical control be simulated before implementing on a costly system. Not Commodore specific. Other MCUs to be supported in the future.
On-line information is available.
MacQFORTH [Mac] (Toshi Morita, Ronald T. Kneusel)
This is actually a simple FORTH development system written in Apple II 6502 assembly language and running in a 65C02 simulator on a Macintosh. The simulator includes a system monitor. The package includes a 6502 assembler.
<http://www.geocities.com/oneelkruns/macqforth.cpt.hqx>
# NoICE [DOS] (© 1992-94 John Hartman)
NoICE is a PC-hosted debugger for use with a variety of microprocessor targets. It is intended to replace the hex monitor programs often used for such debugging, but is much more powerful. The debugger consists of a target-specific DOS program, NOICExxx.EXE, and a small target-resident monitor program. The two programs communicate via RS-232.
<ftp://ftp.duth.gr/pub/simtel/disk1/debug/noi25_02.zip>
$ W65C02S/W65C816S Simulator/Debugger [Win] (Western Design Center)
Full window-based source-level debugger/simulator supporting remote cross-debugging.
On-line program information is available.

FORTH

$ LMI FORTH [DOS,OS/2,CP/M] (Laboratory Microsystems Inc.)
FORTH-83 metacompiler compiles compact ROMable or disk-based applications. Excellent error handling. Produces headerless 6502 code, compiles from intermediate states and performs conditional compilation. Produces royalty-free executables. Not Commodore specific.
MacQFORTH [Mac] (Toshi Morita, Ronald T. Kneusel)
See entry in the Emulators section.

Pascal

Turbo Rascal Syntax Error [Linux,Mac,Win] (2018, Nicolaas Ervik Groeneboom)
A complete suite (IDE, compiler, programming language, resource editor) intended for developing games/demos for 8 / 16-bit line of computers, with a focus on the MOS 6502, the Motorola 68000, the Z80 and the x86. TRSE currently supports application development for the C64, C128, VIC-20, PLUS4, NES, Gameboy, PET, ZX Spectrum, TIKI 100, Amstrad CPC 464, Atari 2600, 8086AT, Amiga 500, Atari 800, BBC Micro, Super Nintendo (SNES), Mega65, VZ200, MSX, Apple II and the Atari ST 520. Includes a Pascal compiler and assembler.
On-line program information is available.

Other

65CM [source,DOS,Win] (Mattias Hansson)
Structured programming language designed to translate into straightforward 6502 machine language. It gives the programmer the choice of writing readable code while maintaining near-pure-assembler speed in execution. The latest version has been rewritten in Virtual Pascal and is under the GPL.
On-line information is available.
<http://hem.bredband.net/b129764/Siders/Download/65cmbin.zip> (Windows)

Credits

Thank-you to the following people for contributing to this list: Ruud Baltissen, Douglas Beattie Jr, Daniel Dallmann, David Evans, Ed, Ed Fisher, Andre Fachat, Kevin A. Foss, Piotr Fusik, David Holz, John C. Wang, Mattias Hansson, John Kastner, Brian Ketterling, Lukas Kumpera, John Matthews, Toshi Morita, Oliver Reed, Eric Odland, Mickaël Pointier, Roy Tate, Jouko Valta, Martijn van Buul, Ron Widitz


Valid HTML 4.01!

back arrow Back to Dan's Commodore page

© 1995-2022 Dan Fandrich dan@coneharvesters.com