6502 Cross-Development Languages and Tools List

Compiled by Daniel Fandrich

August 1, 1997

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

Legend

A $ preceding the program name means it is commercial; a preceding # means it is shareware; a preceding ? 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:

   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
   source     portable 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 Assembler [DOS,OS/2,Xenix,386 UNIX,NT,Sun4,HP700,VMS] (2500AD Software Inc.)
Includes 65C02 assembler, relocatable linker and librarian. Supports conditional assembly, macros, cross-reference generating. Expensive (~$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.
<ftp://ccnga.uwaterloo.ca/pub/cbm/INCOMING/programming/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 [Windows] Valerio Gionco
6502 SDK 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.
On-line program information is available.
<http://www.cclinf.polito.it/~s74454/s6502b10.zip>
# as [DOS,OS/2] (Alfred Arnold)
Cross macro assembler for 6502, 65816 and about 40 other processor families. Documentation in German.
On-line program information is available.
<ftp://ftp.uni-stuttgart.de/pub/systems/pc/programming/crossasm/makroasm/as*>
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.
On-line program information is available.
<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/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://src.doc.ic.ac.uk/packages/atari/umich/8bit/Languages/as6502_atari.tar.gz>
As6502 [source,Amiga] (1987, J. H. Van Ornum, Joel Swank)
A portable 6502 assembler including source in C.
<ftp://ftp.netnet.net/pub/aminet/dev/cross/As6502.lha>
AssemTools [Amiga] (1989, Jukka Marin)
Includes a 65C02 cross macro assembler along with a collection of files and routines for Amiga programmers.
<ftp://src.doc.ic.ac.uk/packages/amiga/dev/asm/AssemTools.lha>
$ 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. Expensive (~$350).
On-line program information is available.
# 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.
On-line program information is available.
On-line program information is available.
<ftp://micros.hensa.ac.uk/mirrors/simtel/msdos/crossasm/c64asm.zip>
<http://www.student.informatik.th-darmstadt.de/~mepk/c64/assembler/c64asm11.zip>
<http://www.funet.fi/pub/cbm/programming/c64asm11.zip>
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.
On-line program information is available.
<http://www.cs.wm.edu/~pbgonz/files/casm13.zip>
<http://www.student.informatik.th-darmstadt.de/~mepk/c64/assembler/casm13.zip>
$ Cross-32 V2.0 Meta Assembler [DOS] (Universal Cross-Assemblers)
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. Expensive (~$200).
On-line program information is available.
On-line program information is available.
<http://www.datasynceng.com/c32demo.zip> (demo version)
Cross64 [DOS] (Feb. 1996?, 64er Magazine)
Cross assembler for Commodore 64 code.
DASM [source,MS-DOS,Amiga] (© 1987,1988 Matthew Dillon)
6502 (and others) cross assembler which generates Intel hex output. Includes source in C.
On-line program information is available.
On-line program information is available.
<ftp://ftp.funet.fi/pub/cbm/programming/dasm21204.tar.gz>
<ftp://ftp.netnet.net/pub/aminet/dev/cross/dasm202.lha> (Amiga)
<http://www.student.informatik.th-darmstadt.de/~mepk/c64/assembler/dasm2120.zip>
<http://www.novia.net/~rcolbert/dasm.zip> (MS-DOS)
? 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>
<ftp://ftp.njit.edu/pub/msdos/frankasm/frankasm.zoo>
# GASS [Amiga] (© 1993 Kajetan Hinner)
6502/6510 assembler for the Commodore Amiga.
<ftp://ftp.netnet.net/pub/aminet/dev/cross/gass110.lha>
Generic Assembler [source,DOS] (1986, Lyle McElhaney)
Generic 6502/6803/8085 cross assembler which generates Intel hex output. Includes source in C.
<ftp://oak.oakland.edu/pub/simtelnet/msdos/crossasm/assemblr.zip>
$ 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. Expensive (up to ~$350).
Luna [source,UNIX] (1996, Daniel Dallmann)
Small, fast 6502 cross assembler written in GNU C.
On-line program information is available.
# 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.
Available from CompuServe's PCPROG library 1 as file MA22#2.ZIP.
MacQFORTH [Mac] (Toshi Morita, Ronald T. Kneusel)
See entry in the Emulators section.
On-line program information is available.
<ftp://kreeft.intmed.mcw.edu/q/pub/mac/macqforth.cpt.hqx>
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.whidbey.net/~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.
<http://www.student.informatik.th-darmstadt.de/~mepk/c64/assembler/masm65.tgz>
<ftp://ccnga.uwaterloo.ca/pub/cbm/programming/CROSS_COMP/masm6502.zoo>
<http://www.ensica.fr/LOCAL/ORIC/SRC/masm6502.zip>
? Nasty assembler [source?,Atari ST] (1993)
6502 cross assembler.
<ftp://src.doc.ic.ac.uk/packages/atari/umich/Languages/Nasm20/nasm20b.zoo> (binaries?)
<ftp://src.doc.ic.ac.uk/packages/atari/umich/Languages/Nasm20/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?).
<ftp://src.doc.ic.ac.uk/packages/atari/umich/Languages/omc_6502.zip>
# PseudoSam 65 Assembler [DOS] (1986, PseudoCode)
UNIX SysV syntax 6502 cross assembler. V1.2 does not support macros, relocatability, include files or conditional assembly.
<ftp://oak.oakland.edu/pub/simtelnet/msdos/crossasm/ps65a12.zip>
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.
# TASM [DOS] (1985, Thomas N. Anderson, Speech Technology Inc.)
Table-driven cross assembler for many CPUs including 6502 & Z80.
<ftp://oak.oakland.edu/pub/simtelnet/msdos/crossasm/tasm301.zip>
# svasm02 [DOS] (1988, John Michne)
65C02 cross assembler which generates Intel hex format output. Ver. 1.0 does not include macros.
<ftp://oak.oakland.edu/pub/simtelnet/msdos/crossasm/svasm02.zip>
VACS [DOS?] (1987, A.C. Verschueren, W.H. Taphoorn)
6502 cross assembler. Many other processors are supoorted by members of the family.
On-line program information is available.
<ftp://ftp.stack.urc.tue.nl/pub/scrumpel/vacs_assemblers/vacs65.zip>
<ftp://ftp.stack.urc.tue.nl/pub/scrumpel/vacs_assemblers/>
xa65 [source,Linux,Amiga,Atari ST] (© Andre Fachat)
Fast 6502/65C02 assembler producing raw binaries. Ver. 2.1.0 can produce a custom relocatable binary format (o65). Has C-like preprocessor for macros. Does not include linker or library manager, Includes C source code and ST binaries. Not Commodore-specific.
On-line program information is available.
<http://www.tu-chemnitz.de/~fachat/c64/xa/xa-2.1.0e.tar.gz>
<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.
<ftp://oak.oakland.edu/pub/simtelnet/msdos/crossasm/xasm220.zip>
$ XASM65 [DOS,CP/M,CP/M-86] (Avocet Systems Inc.)

C

$ 2500AD C Compiler [DOS,OS/2,Xenix,386 UNIX,NT,Sun4,HP700,VMS] (2500AD Software 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. Expensive (~$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.
On-line program information is available.
$ 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. Expensive (~$500).
cc65 [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/Cc65/*>
<http://www.agate.net/~rfoss/kevin/cc65.zip> (DOS & OS/2)
$ EZPro Cross Compiler [DOS] (American Arium)
Optimizing C compiler. Expensive (~$900).
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.
On-line program information is available.
<ftp://arlesienne.ensica.fr/incoming/ORIC/ORIC-C/DOS/docc05.zip> (DOS)
<ftp://arlesienne.ensica.fr/incoming/ORIC/ORIC-C/Linux/locc05.tgz> (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.
<ftp://ftp.winternet.com/users/tm/lcc*.taz>
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/*>

Disassemblers (6502)

? 6502dasm [CP/M]
6502 disassembler for CP/M-80.
<http://oak.oakland.edu:8080/pub/cpm/6502/6502dasm.lbr>
# C64DISA [DOS] (© 1995 Bálint Tóth)
Part of the C64ASM assembler package.
<ftp://oak.oakland.edu/pub/simtelnet/msdos/crossasm/c64asm.zip>
? 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/d65-0.2.0.tar.gz>
# 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.
<ftp://ftp.netnet.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://www.novia.net/~rcolbert/distella.zip>
$ Logisoft Cross Disassembler [DOS] (Logisoft)
Automatic label generation. Includes Logisoft Cross Assembler. Expensive (~$600).
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/c64/emulation/x64-0.3.0.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.
<ftp://ccnga.uwaterloo.ca/pub/cbm/INCOMING/programming/wfd_dem1.zip> (demo version)
$ 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. Expensive (~$250).
On-line program information is available.
<http://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 Simulator/Debugger [DOS,OS/2,Xenix,386 UNIX,NT,Sun4,HP700,VMS] (2500AD Software Inc.)
Full-colour menu driven source debugger, supporting interrupts, I/O, cycle-count breakpoints, stack control and memory traps. Not Commodore-specific. Expensive (~$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?] (Cactus Logic)
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.
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.
On-line program information is available.
<ftp://kreeft.intmed.mcw.edu/q/pub/mac/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://oak.oakland.edu/pub/simtelnet/msdos/debug/noi25_02.zip>

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.
<ftp://kreeft.intmed.mcw.edu/q/pub/mac/macqforth.cpt.hqx>

Credits

Thank-you to the following people for contributing to this list:


Back to Dan's Commodore page Sponsored by Wimsey

© 1995-6 Dan Fandrich dan@fch.wimsey.bc.ca