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:
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.
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.
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.
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.
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.
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.
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).
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).
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.
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).
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.
Macro cross-assembler for 6502. Features macro nesting to 25 levels,
long labels, deep conditional nesting, conditional assembly and
assembly-time arithmetic.
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.
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.
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.
$ 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).
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.
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.
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.
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.
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.
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.
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.
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).
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.
Full-colour menu driven source debugger, supporting interrupts, I/O,
cycle-count breakpoints, stack control and memory traps. Not
Commodore-specific. Expensive (~$150-$250).
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.
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.
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.
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.