yas80 実行
コマンド書式
> yas80 -h
Usage: yas80 [options] file [file...]
Options:
-I, --I strings directories to search for include/incbin/charmap
-D, --D strings define numeric constants
-o, --output string output file name
--mzt output with MZT format
--t88 output with T88 format
-e, --entry int program start address (default -1)
-n, --load-name string load file name
-a, --auto-proc generate PROC from normal label
-f, --fill int filler for DS and Segment Gap (default 255)
-R, --R800 assmble for R800
-l, --l generate list file
--lst string lst filename
--list int LIST value (default 1)
-m, --m generate map file
--map string map filename
-s, --s generate symbol file
--sym string symbol filename
-v, --verbose verbose mode
-V, --version print version
オプション(option)
- オプションは大文字・小文字を区別します。
- オプションは引数がないか、引数の 1 つをとるかのいずれかです。
- 引数を取らないオプション
--mztなど - 引数を 1 つとるオプション
-Iなど
- 引数を取らないオプション
- 複数の引数を取るオプションはありませんが、複数の項目を取るものがあります(
strings)- 複数回指定可能なオプション
- 引数は 1 つで、
","で複数の項目のオプション
ソースファイル(file)
- オプションの次にソースファイルを指定します。
- ソースファイルは複数指定可能です。
オプション
-h --help
- 簡単なヘルプを表示します。
-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は不要です。
--list
- LIST疑似命令の初期値(0-2)を指定します。
- 本オプションを指定しない場合 1 が設定されます。
-s --sym
- シンボルファイルを出力します。
-s,--symの扱いは-l,--lstと同様です。
-m --map
- マップファイルを出力します。
-m,--mapの扱いは-l,--lstと同様です。
-v --verbose
- 実行状況詳細を表示します。
- 本オプションが指定されておらず、エラー・警告・情報メッセージもない場合、何も表示されません。
-V --version
- yas80 のバージョンを表示して終了します。
-a --auto-proc
- ailz80asm からソースファイルを移行する際に使用します。
- 通常のラベルと
"."で始まるラベルとを自動的にPROCに変換してからアセンブルします。 - 処理内容については次項のとおりです。
auto-proc 処理
【注意】
本処理は実験的に実装しているものであり、確実な変換を保障するものではありません。
エラーが出る場合等は、シンボルの置き換え、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