Tatara・Tanren
ユーザーマニュアル
バージョン
1.2.0、2026年
https://tatara.tools
Copyright © 2026 ハビエル ラバンデイラ
本書は、クリエイティブ・コモンズ 表示 4.0 国際 ライセンス (CC BY 4.0)の下で提供されています: https://creativecommons.org/licenses/by/4.0/deed.ja。本書に含まれる サンプル・プログラムは、Apache License, Version 2.0の下で提供されて います: https://www.apache.org/licenses/LICENSE-2.0。
MSXは、MSX Licensing Corporationの商標です。
MACRO-80(M80)およびLINK-80(L80)は、Microsoft Corporationの製品です。Microsoftは、Microsoftグループの企業の商標です。
アセンブラーASおよびリンカーLDの著作権は、Egor Voznesenskyに 帰属します。
PMextの著作権は、Yoshihiko Minoに帰属します。
Nextorの著作権は、Néstor Sorianoに帰属します。
CP/M、MSX-DOS、Z80、R800をはじめ、本書に記載されているその他の 製品名は、各社の商標または登録商標です。本書ではこれらの名前を製品を 特定するためにのみ使用しており、各社との提携や各社による推奨を意味する ものではありません。
このマニュアルについて
対象とする読者
このマニュアルで扱わないこと
構成
表記について
対象とするバージョン
I はじめの一歩
1 はじめに
1.1 TataraとTanrenとは
1.2 名前の由来
1.3 できること
1.4 必要なもの
1.5 次に読むところ
2 アセンブラーとリンカーのしくみ
2.1 2つの段階
2.2 アセンブラーがすること
2.3 アセンブラーにわからないこと
2.4 リンカーがすること
2.5 実例
2.6 コードとデータ:セグメント
2.7 2つの段階に分ける利点
2.8 この章で出てきた用語
3 インストール
3.1 配布されるもの
3.2 ファイルの置き場所
3.3 インストールの手順
3.4 PATHとTATARAの設定
3.5 インストールの確認
3.6 アップデート
4 最初のプログラム
4.1 始める前に
4.2 プログラム
4.3 アセンブルする
4.4 リンクする
4.5 実行する
4.6 ビルド・ファイル
4.7 2つのモジュールからなるプログラム
4.8 次に読む章
II アセンブラー Tatara
5 TATARAの実行
5.1 コマンド・ライン
5.2 ファイル名
5.3 オプション
5.4 TATARAが表示するもの
5.5 リスティング
5.6 TATARAが実行を始めないとき
6 ソースの書式
6.1 行
6.2 4つのフィールド
6.3 ラベルを書く場所
6.4 コメント
6.5 大文字と小文字
6.6 スペース、タブ、行の長さ、行末
7 名前
7.1 名前に使える文字
7.2 長さ
7.3 大文字と小文字
7.4 届きにくい名前
8 式
8.1 値は16ビット
8.2 数
8.3 文字
8.4 名前とロケーション・カウンター
8.5 演算子
8.6 値の種類
9 命令
9.1 命令セット
9.2 オペランド
9.3 相対ジャンプ
9.4 R800の命令
9.5 未公開命令
9.6 オペランドが正しくないとき
10 セグメントとロケーション・カウンター
10.1 ロケーション・カウンター
10.2 コード、データ、アブソリュート
10.3 ORG
10.4 領域の確保:DS
10.5 名前付きセグメント
10.6 トランジェント・データ・セグメント
10.7 メッセージ
11 データ
11.1 DB:バイト
11.2 文字列
11.3 DW:ワード
11.4 DC:自分で終わりを示す文字列
11.5 別の名前
11.6 メッセージ
12 シンボルの定義と共有
12.1 名前に値を与える3つの方法
12.2 ラベル
12.3 EQU
12.4 DEFL
12.5 モジュールどうしで名前を共有する
12.6 ENDと開始アドレス
12.7 メッセージ
13 ファイルの取り込み
13.1 INCLUDE
13.2 TATARAが探す場所
13.3 環境変数TATARA
13.4 ファイル名の中のパス
13.5 ファイルを取り込むファイル
13.6 同じファイルを2回取り込む
13.7 インクルード・ファイルの中のEND
13.8 メッセージ
14 インクルード・ファイル
14.1 ファイルの中身
14.2 取り込み方
14.3 MSXDOS.INCとsystemマクロ
14.4 BIOS.INCとSUBROM.INC
14.5 ERRORS.INC
14.6 そのほかのファイル
15 条件付きアセンブル
15.1 IF、ELSE、ENDIF
15.2 2つのパス
15.3 IFDEFとIFNDEF
15.4 IF1とIF2
15.5 IFB、IFNB、IFIDN、IFDIF
15.6 入れ子
15.7 メッセージ
16 マクロ
16.1 マクロの定義と使用
16.2 引数
16.3 &によるテキストの連結
16.4 本体の中のコメント
16.5 LOCAL
16.6 EXITM
16.7 マクロの中のマクロ
16.8 大文字と小文字
16.9 メッセージ
17 繰り返しブロック
17.1 REPT
17.2 IRP
17.3 IRPC
17.4 LOCAL、EXITM、入れ子
17.5 メッセージ
18 リスティング
18.1 リスティングの1行
18.2 ページ
18.3 リスティングを止める、再開する
18.4 マクロの展開
18.5 アセンブルされない行
18.6 メッセージ
19 シンボル表の出力と診断用スイッチ
19.1 シンボル表
19.2 シンボル表の読み方
19.3 シンボル表とリスティング
19.4 診断用スイッチ
20 エラーメッセージ
20.1 メッセージの内容
20.2 TATARAは最初のエラーで止まる
20.3 経路
20.4 第2パスで見つかるエラー
20.5 内部エラー
III リンカー Tanren
21 TANRENの実行
21.1 コマンド・ライン
21.2 出力ファイル
21.3 オプション
21.4 TANRENが表示するもの
21.5 127文字のコマンド・ライン
21.6 TANRENが始まらないとき
22 リンク・ファイル
22.1 最初のリンク・ファイル
22.2 リンク・ファイルの書き方
22.3 リンク・ファイルとコマンド・ライン
22.4 メッセージ
23 TANRENがオブジェクト・ファイルを探す場所
23.1 3つの場所
23.2 環境変数TANREN
23.3 名前の中のパス
23.4 出力ファイルの書き出し先
23.5 メッセージ
24 プログラムの配置
24.1 コードが先、データがあと
24.2 名前付きセグメント
24.3 コードとデータを動かす:/P:と/D:
24.4 モジュールをまたぐトランジェント・セグメント
24.5 アブソリュート・セグメント
24.6 メッセージ
25 モジュール間のシンボル
25.1 名前の対応のさせかた
25.2 外部の名前の値
25.3 どのモジュールも定義していない名前
25.4 2回定義された名前
25.5 大文字と小文字
25.6 すべてのモジュールがリンクされる
25.7 /Mの表示のすべて
25.8 メッセージ
26 出力形式
26.1 TANRENが書き出すもの
26.2 .COMのプログラム
26.3 ほかのアドレス用のイメージ
26.4 BLOAD用のファイル: /B
26.5 エントリー・アドレス
26.6 ROMイメージ
26.7 プログラムの大きさの限度
26.8 書き出すものがないとき
26.9 メッセージ
27 リンカーのエラーメッセージ
27.1 メッセージの形
27.2 TANRENは最初のエラーで止まる
27.3 壊れたオブジェクト・ファイル
27.4 セグメント
27.5 メッセージ
IV 実例
28 複数のモジュールからなるプログラム
28.1 この例
28.2 2つのモジュール
28.3 リンク・ファイル
28.4 作って実行する
28.5 TANRENがしたこと
28.6 試してみること
29 トランジェント・セグメントで共有する作業用変数
29.1 この例
29.2 ソース
29.3 作る
29.4 シンボル表を読む
29.5 マップを読む
29.6 試してみること
30 マクロとリスティングのモード
30.1 この例
30.2 ソース
30.3 作って実行する
30.4 3つのリスティングのモード
30.5 試してみること
31 長いシンボル名と大文字・小文字を区別する名前
31.1 この例
31.2 ソース
31.3 作る
31.4 2つのファイルを読む
31.5 モジュールをまたぐ長いシンボル名
31.6 マクロの名前と/C
32 MSX-BASICのBLOAD用のバイナリ
32.1 この例
32.2 ソース
32.3 作る
32.4 BASICから実行する
32.5 ファイルを置ける場所
32.6 試してみること
33 16 KBのROMカートリッジ
33.1 この例
33.2 ソース
33.3 作る
33.4 実行する
33.5 試してみること
34 複数のディレクトリにまたがるプロジェクト
34.1 この例
34.2 ソース
34.3 作って実行する
34.4 試してみること
35 TATARAとTANRENを自身のソースからビルドする
35.1 ソース
35.2 BUILD.BAT
35.3 実行する
35.4 ツール自身でツールをビルドする
A 疑似命令リファレンス
A.1 用途ごとの疑似命令
A.2 アルファベット順の疑似命令
A.3 疑似命令の行のラベル
A.4 別名
B 命令一覧
B.1 表の読み方
B.2 8ビットのロード
B.3 16ビットのロード、PUSHとPOP
B.4 交換、ブロック転送、サーチ
B.5 8ビットの算術演算と論理演算
B.6 汎用とCPU制御
B.7 16ビットの算術演算
B.8 ローテートとシフト
B.9 ビットのセット、リセット、テスト
B.10 ジャンプ
B.11 コール、リターン、リスタート
B.12 入出力
B.13 未公開命令
B.14 R800のかけ算
B.15 受け付けない書き方
C 演算子と優先順位
C.1 演算子
C.2 範囲の端
C.3 値
D エラーメッセージ
D.1 メッセージの形
D.2 TATARAのメッセージ
D.3 TANRENのメッセージ
D.4 TANRENの警告とお知らせ
E 制限値
E.1 TATARA
E.2 TANREN
E.3 コマンド・ライン
E.4 決まった制限のないもの
F .troオブジェクト・ファイルの形式
F.1 オブジェクト・ファイルが伝えること
F.2 例
F.3 ファイルの構成
F.4 レコード
F.5 TANRENがオブジェクト・ファイルを読む方法
G メモリ
G.1 メモリ・マップ
G.2 マッパーに置くもの
G.3 プログラムを作るのにツールが必要とするメモリの量
G.4 マッパーがいっぱいになったとき
H ハードウェアの入手先
H.1 ツールに必要なもの
H.2 カートリッジ
H.3 メーカーと購入先
H.4 入手のしやすさ
I 環境変数
I.1 環境変数の設定
I.2 PATH
I.3 TATARA
I.4 TANREN
I.5 両方に共通の規則
J M80とのソースの互換性
J.1 そのまま使えるもの
J.2 TATARAが受け付けないM80の疑似命令
J.3 そのほかの書き方
J.4 TATARAが加えるもの
J.5 そのほかの違い
J.6 ソースの変換
K インクルード・ファイル
K.1 MSXDOS.INC
K.2 ERRORS.INC
K.3 BIOS.INC
K.4 WORKAREA.INC
K.5 SUBROM.INC
K.6 HOOKS.INC
K.7 PORTS.INC
K.8 ASCII.INC
K.9 EXTBIO.INC
K.10 参考文献
L 用語集
索引