Tatara

第5章
TATARAの実行

4章では、TATARAをtatara hello.as hello.tro という1つの形で実行しました。この章では、コマンド・ライン全体について説明します。指定するファイル名、ファイル名を省いたときの動作、すべてのオプション、そしてTATARAが自分から表示するすべての内容です。セッションは HELLOを使い、A:\TATARA\EXAMPLES\HELLOで実行します。

5.1 コマンド・ライン

TATARAのコマンドは、次の形をしています。

tatara [options] source [object [listing]]
 

角かっこの中は省略できます。sourceはアセンブルするファイル、objectは書き出すオブジェクト・ファイル、listingはリスティングを書き出すファイルです。リスティングについては5.5節で説明します。

オプションは、/Qのように、スラッシュのあとに1文字を続けたものです。文字は大文字でも小文字でもかまいません。オプションは、ファイル名の前、間、後ろのどこに置いてもよく、1つずつ別の語として書きます。/lsではなく/l /sと書いてください。TATARAはスラッシュのあとの最初の1文字だけを読み、その語の残りは無視するので、/lsは/lと同じになります。

5.2 ファイル名

ファイル名は順番どおりに扱われます。1つ目がソース・ファイル、2つ目がオブジェクト・ファイル、3つ目がリスティング・ファイルです。4つ目を書くとエラーになります(5.6節)。

5.2.1 拡張子は付け加えられない

TATARAは、それぞれの名前を入力されたとおりに使い、拡張子を自分で付け加えることはしません。表5.1はよく使われる拡張子で、サンプルもこれを使っていますが、入力するときには拡張子も書く必要があります。

ファイル よく使われる拡張子
ソース・ファイル .AS(.ASMと.Z80もよく使われます)
オブジェクト・ファイル .TRO
リスティング・ファイル .LSTまたは.PRN
表 5.1: よく使われる拡張子

警告.  tatara helloは、拡張子のないHELLOという名前のファイルを探し、見つからなければ止まります。

A:\TATARA\EXAMPLES\HELLO>tatara hello 
Tatara MSX Macro-Assembler v1.2.0 
Copyright (C) 2026 Javier Lavandeira 
https://tatara.tools 
 
ERROR: cannot open HELLO
 

名前には、MSX-DOS2のほかのファイル名と同じように、ドライブとディレクトリを含めることができます。tatara src\main.as obj\main.troは、ソースをディレクトリ SRCから読み、オブジェクト・ファイルをOBJに書き出します。

5.2.2 オブジェクト・ファイルを省く

2つ目のファイル名を書かないと、TATARAはソースを同じように読んでアセンブルし、エラーがあれば表示しますが、何も書き出しません。ソースにエラーがあるかどうかをすばやく確かめるのに便利です。

A:\TATARA\EXAMPLES\HELLO>tatara hello.as 
Tatara MSX Macro-Assembler v1.2.0 
Copyright (C) 2026 Javier Lavandeira 
https://tatara.tools 
 
ended at HELLO.AS(22)
 

5.2.3 オブジェクト・ファイルが書き出されるとき

TATARAはソースを2回読み、1回目の読み込みでソース全体を読み終えてからオブジェクト・ファイルを作ります。1回目の読み込みでエラーが見つかると、TATARAはその前に止まるので、同じ名前のオブジェクト・ファイルはそのまま残ります。次の例では、BAD.ASには命令ではない行が1行だけ書かれています。HELLO.TROは、前後で同じ時刻の同じファイルのままです。

A:\TATARA\EXAMPLES\HELLO>dir hello.tro 
 Volume in drive A: is MAIN 
 Directory of A:\TATARA\EXAMPLES\HELLO 
 
HELLO    TRO        93 26-09-29  2:15 
 93 bytes in 1 file   12384K free 
A:\TATARA\EXAMPLES\HELLO>tatara bad.as hello.tro 
Tatara MSX Macro-Assembler v1.2.0 
Copyright (C) 2026 Javier Lavandeira 
https://tatara.tools 
 
BAD.AS(1): ERROR: not a directive, a macro or an instruction. 
 
A:\TATARA\EXAMPLES\HELLO>dir hello.tro 
 Volume in drive A: is MAIN 
 Directory of A:\TATARA\EXAMPLES\HELLO 
 
HELLO    TRO        93 26-09-29  2:15 
 93 bytes in 1 file   12376K free
 

エラー・メッセージには、ファイル名と、かっこに入った行番号、そして何がいけないのかが表示されます。メッセージについては20章で説明します。

5.2.4 オブジェクト・ファイルとソースを同じにはできない

2つ目のファイル名が1つ目と同じだと、オブジェクト・ファイルを書き出すとソースが消えてしまうので、TATARAは実行を拒否します。

A:\TATARA\EXAMPLES\HELLO>tatara hello.as hello.as 
Tatara MSX Macro-Assembler v1.2.0 
Copyright (C) 2026 Javier Lavandeira 
https://tatara.tools 
 
ERROR: the output file is the input file.
 

TATARAは、入力されたとおりの2つの名前を比べます。hello.asとa:hello.asのように、同じファイルを別の書き方で指定した場合には気づかないので、名前の順番には注意してください。

5.3 オプション

表5.2は、ふだん使うオプションの一覧です。それぞれ、専用の章か、この章で説明します。

オプション 働き 章
/P リスティングを画面に表示する 18
/L 3つ目に書いたファイルにリスティングを書き出す 18
/S アセンブルの終わりにシンボル表を表示する 19
/C シンボル名とマクロ名の大文字と小文字を区別する 7
/Q バナーと要約行を表示しない 5
/V バナーを表示して終わる 5
/? 使い方の画面を表示して終わる 5
表 5.2: TATARAのオプション

/Cが変えるのは1つだけです。これを付けなければ、M80と同じようにStart、START、startは同じ名前ですが、付けると3つの別々の名前になります。命令、レジスター、疑似命令は、/Cの有無にかかわらず、大文字でも小文字でも書けます。

5.3.1 診断用のオプション

使い方の画面には、ほかに3つのオプションがあります。これらはTATARAがソースをどう解釈したかを表示するもので、ふだん使うためではなく、TATARA自身の問題を調べるためのものです。

/F

各行をリスティングする代わりに、TATARAがその行を分けた4つのフィールド(6章)を、それぞれ角かっこに入れて表示します。

/M

すべてのマクロ定義を、TATARAが保存したとおりに表示します。

/H

最後に、TATARAがマクロのために確保しているメモリのブロックのうち、まだ使われているものの数を表示します。

5.4 TATARAが表示するもの

5.4.1 バナーと要約行

ソースをアセンブルするときは、いつも最初にバナー(banner)が表示されます。プログラムの名前とバージョン、著作権表示、Webアドレスで、そのあとに空行が1行続きます。最後には要約行(summary line)が表示されます。ソースがどこで終わったか、つまりENDのあるファイルと行、ENDがなければ最後の行です。どちらも4章で見ました。ENDが取り込んだファイルの中にあれば、要約行にはそのファイルの名前が出ます(13章)。

/Qを付けると、どちらも表示されません。エラーは/Qの有無にかかわらず表示されるので、/Qを付けて何も表示されなければ、成功したということです。

A:\TATARA\EXAMPLES\HELLO>tatara /q hello.as hello.tro 
 
A:\TATARA\EXAMPLES\HELLO>
 

/Vはバナーを表示して終わります。ソースを指定しても、アセンブルはしません。

A:\TATARA\EXAMPLES\HELLO>tatara /v 
Tatara MSX Macro-Assembler v1.2.0 
Copyright (C) 2026 Javier Lavandeira 
https://tatara.tools 
 
 
A:\TATARA\EXAMPLES\HELLO>
 

5.4.2 使い方の画面

/?は、バナーと使い方の画面(usage screen)を表示して終わります。使い方の画面は、コマンド・ラインの要約です。ファイル名を1つも書かずにtataraとだけ入力しても、同じ画面が表示されます。

A:\TATARA\EXAMPLES\HELLO>tatara /? 
Tatara MSX Macro-Assembler v1.2.0 
Copyright (C) 2026 Javier Lavandeira 
https://tatara.tools 
 
Usage:  TATARA [options] <source> [output] 
        TATARA /P [options] <source> [output] 
        TATARA /L [options] <source> <output> <listing> 
 
Options:  /P Assemble to the screen 
          /L Write a listing file, named third on the line 
          /S Print the symbol table when the assembly ends 
          /C Make symbol and macro names case-sensitive 
          /F Print the fields of each line, for diagnosis 
          /M Print every macro definition, for diagnosis 
          /H Print how many heap blocks are still in use 
          /Q Omit the banner above and the summary line 
          /V Print the program version 
          /? Print this screen 
 
<source>  : The file to assemble, M80 syntax (.as, .asm or .z80) 
<output>  : The relocatable object it produces, usually .tro 
<listing> : The listing file, usually .lst or .prn
 

この画面はMSXの画面の24行をすべて使うので、コマンドの行は上にスクロールして見えなくなります。

5.5 リスティング

リスティング(listing)とは、TATARAがアセンブルしたソースを印刷用に整えたもので、ページに分かれ、各ページに見出しが付きます。/Pか/Lを付けたとき、または3つ目のファイル名を書いたときに作られます。

/Pは、リスティングを画面に表示します。次のセッションは、その始めの部分だけを示しています。

A:\TATARA\EXAMPLES\HELLO>tatara /p hello.as 
Tatara MSX Macro-Assembler v1.2.0 
Copyright (C) 2026 Javier Lavandeira 
https://tatara.tools 
 
        Tatara v1.2.0   29-Sep-26       PAGE    1 
 
 
; HELLO.AS - the smallest complete program. 
; 
; One source, one object, one .COM. It prints a line and gives the 
; machine back to MSX-DOS.
 

各ページはフォーム・フィードで始まり、MSXではこれで画面が消えます。そのため、1ページより長いリスティングは、読むより早く流れていってしまいます。/Pは、短いソースをさっと確認するのに向いています。

/Lは、3つ目に書いたファイルにリスティングを書き出します。このとき、各行の前にアドレスとバイトが付きます。

A:\TATARA\EXAMPLES\HELLO>tatara /l hello.as hello.tro hello.lst 
Tatara MSX Macro-Assembler v1.2.0 
Copyright (C) 2026 Javier Lavandeira 
https://tatara.tools 
 
ended at HELLO.AS(22)
 

リスティングには、ソースが取り込んだすべてのファイルの行が含まれ、最後にすべてのシンボルの表が付きます。そのため、HELLO.LSTでさえ約20 KBになり、その大部分はMSXDOS.INCです。リスティングの内容と、ソースからそれを制御する方法は、18章で説明します。

5.6 TATARAが実行を始めないとき

表5.3は、TATARAが1行もアセンブルしないうちに止まるときのメッセージです。TATARAは最初にコマンド・ラインを調べるので、一部のメッセージはバナーより前に表示されます。

メッセージ

意味

ERROR: Tatara needs MSX-DOS2 or Nextor.

MSXがMSX-DOS1で動いています。

ERROR: Tatara needs a memory mapper.

MSXにメモリ・マッパーがありません(1章)。

ERROR: unknown option.

スラッシュのあとに、TATARAのオプションではない文字が続いているか、何も続いていません。

ERROR: too many filenames.

ファイル名が4つ以上あります。

ERROR: the output file is the input file.

オブジェクト・ファイルがソースと同じ名前です。

ERROR: cannot open name

ソース・ファイルが存在しないか、名前を拡張子なしで入力しました。

ERROR: cannot create name

ディスクがいっぱいか、書き込み禁止になっているなどの理由で、オブジェクト・ファイルを書き出せません。

表 5.3: アセンブルの前に表示されるメッセージ

そのうちの2つは、次のように表示されます。

A:\TATARA\EXAMPLES\HELLO>tatara /x hello.as 
ERROR: unknown option. 
 
A:\TATARA\EXAMPLES\HELLO>tatara a b c d 
ERROR: too many filenames.