tniASM - Macro Assembler

tniASM v1.0 is a powerful yet easy to use processor-agnostic and assembly-agnostic macro assembler for 32-bit Windows and 64-bit Linux.

It is ideal for customized assembly, custom FPGA CPU, and even does non-assembly work like file manipulation. Continuing tniASM tradition, great care has been taken in remaining very easy to use while providing powerful features.

The most important feature, the base of everything, is the powerful macro processor. It provides:

  • Multiple CPU support, even within the same source file
  • Customized assembly, use the (pseudo-)instructions YOU like
  • Ability to be compatible with other assemblers

Other features include:

  • Multi-pass design
  • Conditional assembly
  • Local label mechanism
  • Extensive expression parser with precedence levels
  • Source and binary file inclusion
  • Nestable block comments
  • Output to multiple files
  • Update/patch existing files

tniASM v1.0 comes with macro definitions for:

  • Z80, R800, Gameboy Z80 (GBZ80), Z180 and Z380 processors
  • Code, data and reserved data sections
  • tniASM v0.45, asMSX and Sjasm compatibility

Additional contributions include a (Windows-only) MemMan TSR Development Kit by Albert Beevendorp.

Beta testing

tniASM v1.0 is in production use for all projects by, among others, The New Image and Infinite. You too can participate in the private beta test by making a donation of at least 15 Euro to bank account BIC:INGBNL2A, IBAN:NL42INGB0006268083, of Patriek Lesparre in Almere, The Netherlands. Don't forget to indicate your e-mail address! If you prefer to use Paypal, donate to paypal (at) tni.nl.

Beta testers will receive the latest development versions and can give their input on the development of the program. Once considered fit for the public, tniASM v1.0 is expected to be sold for 25 Euro, but beta testers will receive it for free.

Freeware version

Versions in the v0.x release series are freeware, but do not support macros.

tniASM v0.45 is a Z80, R800 and GBZ80 cross assembler running in Windows. Version v0.3 (also) runs in MS-DOS.

tniASM is written by Patriek Lesparre, © 2000-2013 by The New Image

News

2 November 2011 - In celebration of the official death of the v0.x series of tniASM, a bugfix version v0.45 with codename "Magnum mercy shot" was released. At the same time, a sponsorship program identical to the one in place for MoonSound Music Studio was launched for the upcoming tniASM v1.0, which is poised to replace it (and pretty much any other assembler you've ever used).

What's new:

  • Fixed: Generate error for LD L,IXL (or similar) instead of simply outputting LD IXL,IXL.
  • Now supports using expressions for the fixed numeric operands in IM, RST, BIT, RES and SET instructions. Previously generated an error or wrong result!
  • Officially the last version of the v0.x series. See Chapter 3.3 of the manual for more information about tniASM v1.0.

2 March 2005 - Released v0.44! Another quick fix release.

What's new in v0.44:
- Fixed: $ during PHASE