Version 1.2.0 · for MSX-DOS2 and Nextor
A Z80 assembler and linker that runs on the MSX
Tatara turns programs written in Z80 assembly language into programs that run on an MSX. You write, assemble, link and run on the same machine, or in an emulator. It reads the assembly language of Microsoft’s MACRO-80, so programs and books written for MACRO-80 can be used with it.
Download Tatara 1.2.0 Read the manual
Free software under the Apache License 2.0. The manual is in English and Japanese, online and as PDF.
A:\TATARA\EXAMPLES\HELLO>tatara hello.as hello.tro Tatara MSX Macro-Assembler v1.2.0 Copyright (C) 2026 Javier Lavandeira https://tatara.tools ended at HELLO.AS(22) A:\TATARA\EXAMPLES\HELLO>tanren /o:hello.com hello.tro Tatara MSX Linker v1.2.0 Copyright (C) 2026 Javier Lavandeira https://tatara.tools 1 module, 7 records, ends at EOF. Wrote HELLO.COM, 0100-0121 (34 bytes), entry 0100. A:\TATARA\EXAMPLES\HELLO>hello Hello from Tatara.
Two programs in one package
TATARA the assembler
Reads your source files and turns them into object files: machine code, but not yet a program you can run.
TANREN the linker
Joins one or more object files, decides where in memory each part goes, and writes the finished program.
What it can do
Long symbol names
Names of up to 255 characters, and case-sensitive names with the /C option.
Macros and conditional assembly
Write a piece of code once and use it many times, and include or leave out parts of a program when it is assembled.
Custom data, code, and transient segments
Keep code and data in separate segments, and give them names. In a transient segment, data that only one part of a program needs at a time shares the same memory.
Full support for subdirectories
Sources, include files and object files can be anywhere in the MSX-DOS2 directory tree. Included files are looked for in three places, and the TATARA and TANREN environment variables add more.
Include files for the whole MSX system
Nine include files define the BIOS and SUB ROM entry points, the hooks, the system work area, the MSX-DOS2 functions and error codes, the I/O ports and the extended BIOS, with the names the MSX documentation uses. Write CHPUT, H.TIMI or _STROUT instead of looking up their addresses and numbers.
Build large programs
Tables, and the program being linked, are kept in the memory mapper. The limit is the memory in your MSX, not what MSX-DOS leaves free.
Read instructions from an external file
Give TANREN its list of files and its options in a text file, beyond the 127 characters of an MSX-DOS command line.
Errors that point to your line
A message names the file and the line you wrote, even when the line came from a macro or an included file.
Build ROMs, .COMs and binaries for BLOAD
TANREN writes ROM cartridge images, programs for MSX-DOS, binaries for MSX-BASIC’s BLOAD, and code images for any address.
R800 instructions
MULUB and MULUW, the multiplication instructions of the MSX turbo R.
Undocumented instructions
SLL, and the instructions that use IXH and IXL, as MSX programs use them.
What you need
- An MSX2 or later running MSX-DOS2 or Nextor, or an emulator that runs them.
- A memory mapper. Every MSX that runs MSX-DOS2 already has one.
- An editor that saves plain text files.
Getting started explains how to install Tatara and build a first program.
Where the names come from
A tatara (たたら) is the clay furnace in which iron sand and charcoal are burnt, over about three days, into raw steel. Tanren (鍛錬) is the forging that follows: the smith heats, hammers and folds the steel until it becomes a blade. The assembler and the linker do the same two jobs for a program.