Year
2026
Status
Type
Development tool
Platforms
Any MSX computer running MSX-DOS2 or Nextor
License
Apache License, Version 2.0
Project URL
Tatara is a macro assembler and linker that I wrote for MSX computers. It runs on the MSX itself, under MSX-DOS2 or Nextor, and it reads the same source syntax as Microsoft's M80. Unlike M80, it supports MSX-DOS2 directories, environment variables, and is able to use the full memory mapper. Both tools are written in Z80 assembly, and they are built with themselves, on the MSX. I'm making it freely available under the Apache 2.0 license, together with a full user manual in English and Japanese.
The package has two programs: TATARA, the assembler, and TANREN, the linker. TATARA reads assembly source files and turns them into relocatable object files. TANREN takes one or more of those object files and links them into a finished program.
Most people who write MSX software today use cross-assemblers running on a PC. Tatara is different: it runs on the MSX, in the same environment as the programs it builds. It works on any MSX2, MSX2+ or MSX turbo R running MSX-DOS2 or Nextor, and also in emulators such as openMSX.
For years my assembler of choice on the MSX was the AS.COM/LD.COM pair by SOLiD (Egor Voznesensky). These tools work fine for smaller programs, but they run into issues when building bigger projects. Sadly, Egor passed away in 2014, his website disappeared some time later, and the tools are no longer maintained. Microsoft's M80/L80, the other common option, were written for CP/M and know nothing about MSX-DOS2 directories, environment variables or memory mappers.
I also wanted to learn how assemblers and linkers work internally, so I read David Salomon's excellent book Assemblers and Loaders, which gave me a high-level understanding of implementation strategies and the moving parts involved. It seemed doable.
There are already a number of excellent assemblers out there that generate Z80 code, such as Konamiman's Nestor80 or the sdas and sdld assembler and linker included with the SDCC compiler. However, these run on modern platforms (Windows, Linux, macOS), so they require doing the development on a different machine and then moving the binaries over to the MSX.
That doesn't work for me because I like doing my MSX development on the MSX itself.
The names come from the traditional way of making a Japanese sword. A tatara (たたら) is a clay furnace where iron sand and charcoal are burnt, over about three days, until they turn into raw steel. Tanren (鍛錬) is the forging that follows: the smith heats the raw steel, hammers it and folds it until it becomes a finished blade.
The two tools do the same two jobs for a program. TATARA turns source files into object files (real machine code, but not yet a program that can run), and TANREN forges them into the finished program.
I bootstrapped Tatara with SOLID's AS/LD. Now it assembles and links itself: every TATARA.COM and TANREN.COM is built from its own sources, on the MSX, by the previous version of itself.
Tatara comes with a full user manual, Tatara and Tanren User Manual, in English and Japanese, both online and as PDF. It is written for MSX users who are learning Z80 assembly, and it includes step-by-step guides that go from a first program to a 16 KB ROM cartridge. The example programs in the manual are included in the download.




The software is released under the Apache License, Version 2.0. The manual is under CC BY 4.0, and its example programs are under Apache 2.0.