From C64-Wiki
Jump to navigationJump to search
Developer Soci
Publisher http://c64.rulez.org
Release 1996
Licence GPL v2
Platform MS-DOS, Linux, Windows
Genre Cross-Assembler
Operation Command line
Media C source
Language(s) Language:english
Information 64tass Manual
This article refers to modern open source cross-assembler 64tass which should not be confused with native C64 assembler TurboAssembler produced by Omicron or the TASM Turbo Assembler produced by Borland for MS-DOS.

64tass, is a multi-pass optimizing macro assembler for the 65xx series of processors. It is fully open source and and actively developed in highly portable C. While it shares no code in common with the similarly named C64 native TurboAssembler produced by Omicron, the 64tass assembler nonetheless strives to achieve 100% syntax compatibility with Omicron TAS. Often, 64tass can assemble unmodified 6502 assembly code produced in Omicron TASS without issue.

What is now known as 64tass was originally written for MS-DOS by Marek Matula (MMS) of Taboo under the name 6502 Turbo Assembler or 6502TASS. At that time the MS-DOS binaries were freely available but the application was closed source. The final closed source release was v1.31 released in 1998. By 2000 it was renamed 64tass and ported to ANSI C. Soon thereafter the source code released by Breeze demo group. By 2002 the source code was released under the GPL v2 free software license. The software remains in active development and is hosted on SourceForge and has an extensive manual.

Currently 64tass supports the following notable features among many others:

  • All major 6502 CPU variants including the MOS 6502, 65C02, R65C02, W65C02, 65CE02, 65816, DTV, 65EL02, 4510 are supported.
  • Arbitrary-precision integers and bit strings, double precision floating point numbers.
  • Character and byte strings, array arithmetic.
  • UTF-8, UTF-16 and 8 bit RAW encoded source files, Unicode character strings.
  • Supports Unicode identifiers with compatibility normalization and optional case insensitivity.
  • Built-in linker with section support.
  • Various memory models, binary targets and text output formats (also Hex/S-record).
  • Assembly and label listings available for debugging or exporting
  • Conditional compilation, macros, structures, unions, scopes.