付録E
制限値
この付録では、TATARAとTANRENの決まった制限値を、それぞれの上限、それを超えたときのメッセージ、説明している節とともに示します。E.4節では、決まった制限のないものを示します。
E.1 TATARA
|
対象 |
上限 |
メッセージ |
節 |
|
|
|||
|
ソースの1行 |
255文字 |
source line too long. |
6.6 |
|
シンボルの名前 |
255文字。すべて区別される |
|
7.2 |
|
マクロの名前 |
64文字 |
a macro name may be at most 64 characters. |
7.2 |
|
セグメントやグループの名前 |
16文字 |
a segment or group name may be at most 16 characters. |
7.2 |
|
コマンド・ラインのファイル名 |
3つ |
too many filenames. |
5.6 |
|
同時に開いているファイル |
4つ |
too many source files open at once. |
13.5 |
|
インクルード・ファイル、マクロの展開、繰り返しブロックの入れ子 |
16段 |
sources nested too deeply. |
16.7 |
|
1回のアセンブルで開くファイル(ソースを含む) |
32回 |
too many different source files. |
D.2 |
|
メッセージの先頭のファイル名 |
最初の31文字を表示 |
|
20.1 |
|
同時に開いている条件付きアセンブル |
16 |
conditionals nested too deeply. |
15.6 |
|
マクロのパラメーター |
16 |
too many macro parameters. |
16.9 |
|
展開したあとのマクロや繰り返しブロックの1行 |
255文字 |
macro line too long. |
16.2 |
|
外部の名前 |
254 |
too many segments, groups or externals. |
12.5 |
|
タイトルとサブタイトル |
最初の28文字を残す |
|
18.2 |
|
ページの長さ |
10から255行 |
a PAGE length must be 10 to 255. |
18.2 |
|
127文字 |
the TATARA variable is too long. |
13.3 | |
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
長すぎるマクロ、セグメント、グループの名前は、切り詰められるのではなく、拒否されます。同じファイルを2回開くと、1回のアセンブルの32回のうちに2回と数えます。メッセージの先頭のファイル名は最初の31文字に切り詰められるので、長いパスではファイルそのものの名前が見えなくなることがあります。included fromの行とcannot openのメッセージは、名前をすべて表示します。
TATARAはTANRENより多くの名前付きセグメントとグループを受け付けるので、実際にはE.2節の制限が適用されます。
E.2 TANREN
|
対象 |
上限 |
メッセージ |
節 |
|
|
|||
|
1つのモジュールのセグメント |
16。デフォルトのコード・セグメントとデータ・セグメントを含む |
too many segments or groups in one module. |
27.4 |
|
1つのモジュールのグループ |
16 |
too many segments or groups in one module. |
27.4 |
|
1つのモジュールの外部の名前 |
512 |
too many external symbols in one module. |
D.3 |
|
リンクの語(コマンド・ラインとリンク・ファイルの合計) |
4096文字 |
too many words on the command line or in the file list. |
22.4 |
|
1つの語 |
128文字 |
同上 |
22.4 |
|
リンク・ファイル |
1つ。ほかのリンク・ファイルは指定できない |
only one file list may be given.、a file list may not name another one. |
22.4 |
|
127文字 |
the TANREN variable is too long. |
23.5 | |
|
プログラム |
FFFFh以下で終わる |
the linked image would run past FFFFh. |
24.6 |
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
そのため、1つのモジュールには、デフォルトのコード・セグメントとデータ・セグメントのほかに、名前付きセグメントを14まで置けます。制限はプログラム全体ではなくモジュールごとのものなので、それより多く必要なプログラムは、いくつかのモジュールに分ければすみます。TATARAは外部の名前254で止まるので、TATARAが作ったオブジェクト・ファイルが512の制限に達することはありません。
E.3 コマンド・ライン
MSX-DOSがプログラムに渡すコマンド・ラインは127文字までで、残りはメッセージなしで捨てられます。これはツールではなくMSX-DOSの制限で、どちらのツールにもあてはまります。TANRENは、コマンド・ラインがちょうど 127文字のときには一部が欠けているかもしれないので警告します。リンク・ファイルにはこの制限はありません(21.5節)。
E.4 決まった制限のないもの
シンボルの数、マクロの数と大きさ、プログラムの大きさは、メモリ・マッパーによってだけ制限されます。TATARAはそこに表を置き、TANRENはそこでプログラムを組み立てます。マッパーがいっぱいになると、ツールはout of mapper memory.で止まります。ツールのメモリの使い方は付録Gで説明します。