オプション
-I
INCLUDE,INCBIN,CHARMAPがファイルをロードするフォルダを指定します。-Idir,-I dirのようにフォルダを指定します。-Idir1 -Idir2のように複数回指定できます- さらに
-Idir1,dir2のように","で区切って複数のフォルダを指定可能です。 - 検索順は次のとおりです
- ソースファイルと同じフォルダ
-Iで最初に指定したフォルダ-Iで次に指定フォルダ- 以降
-Iの指定数まで繰り返し
-I dir1 -Idir2,dir3
-D
- シンボルを定義します。ソースファイル内で
CONST/EQUを使用したのと同じ効果です。 -Dname=valueもしくは-D name=valueのように名前と値を指定します。- 値として指定できるのは数値のみです。
- 10進数の他、
0x, 0oのプレフィックスで、16進数、8進数も指定可能です。 -Dnameのように名前のみ指定した場合は-Dname=1と指定したものとして扱います。-Dname1=1 -Dname2=2のように複数回指定できます。-Dname1=1,name2=2のように","で区切って複数のシンボルを定義可能です。
-D name=1,name2 -Dname3=3
-o --output
- 出力ファイル名を指定します(※)
- 出力ファイル名の拡張子に応じた出力形式で出力します。
--mzt
- MZT 形式で出力します。
-o --outputで指定した拡張子が t88 の場合、エラーとします。
--t88
- T88 形式で出力します
-o --outputで指定した拡張子が mzt の場合、エラーとします。
オプション組み合わせ
-o拡張子 | --mzt | --t88 | 出力形式 |
|---|---|---|---|
.mzt | MZT | ||
| ✓ | MZT | ||
| n/a | ✓ | エラー | |
.t88 | T88 | ||
| ✓ | n/a | エラー | |
| ✓ | T88 | ||
.mzt .t88以外 | BIN | ||
| ✓ | MZT | ||
| ✓ | T88 |
-e --entry
-n --load-name
- 出力ファイルの形式が MZT 形式 、T88 形式の場合で有効です。
- 出力ファイル内に記載されるファイル名を指定します。
- デフォルトではソースファイル名(複数の場合は最初のファイル)を元にファイル名を決定しますが、このオプションの指定を優先します。
-f --fill
- 生成コードの配置,
ALIGN,DSで領域を埋める際の値を指定します。 - 10進数の他、0x, 0o のプレフィックスで、16進数、8進数も指定可能です。
- このオプションを指定しない場合、255 を使用します。
ALIGN,DS/DSB,DSWで個別に値が指定されている場合は、そちらの値が使用されます。
-R --R800
- Z80 でなく R800 をターゲットとしてアセンブルします。
MUL命令がアセンブル可能- リストファイルの実行クロック(TStates)表記が R800 のものに変わる
-l
- リストファイルを出力します。
- ソースファイル名(複数指定した場合は最初のファイル名)と同じフォルダに、ソースファイルの拡張子を
.lstとしたファイルです。 - ファイル名を指定したい場合は次の
--listオプションを使用します。
--lst
- 出力するリストファイル名を指定します。
--listを指定した場合、-lは不要です。
-s, --sym
- シンボルファイルを出力します。
-s,--symの扱いは-l,--lstと同様です。
-m, --map
- マップファイルを出力します。
-m,--mapの扱いは-l,--lstと同様です。
-a, --auto-proc
- ailz80asm からソースファイルを移行する際に使用します。
- 通常のラベルと
"."で始まるラベルとを自動的にPROCに変換してからアセンブルします。 - 処理内容については次項のとおりです。
auto-proc 処理
【注意】 本処理は実験的に実装されているものであり今後削除・修正する可能性があります。
PROC 範囲開始と判定する文
- ラベルのみの文
- ラベル付きの文
- Z80/R800 命令文
DB/DW/DD文DS文MACRO呼出し文REPT文
PROC 範囲終了と判定する文
"."で始まらないラベルのみの文"."で始まらないラベル付きの文- Z80/R800 命令文
DB/DW/DD文DS文MACRO呼出し文REPT文
PROC文MACRO文FUNC/FUNCTION文ENUM文
PROC 変換条件
開始、終了範囲に . で始まるラベルを含まない場合は PROC 文への変換は行いません。
適用例
addr1: nop
.local1: nop
.local2: nop
addr2:
.local1: nop
addr3: nop add1 proc \ nop
.local1: nop
.local2: nop \ endp
addr2 proc
.local1: nop \ endp
addr3: nop