出力ファイル
出力ファイル形式
- yas80 は次の 3 種類の形式に対応しています。
- 形式は実行時のオプションによって指定します。
BIN 形式
- ロードアドレス等のメタ情報(ヘッダ)を含まない形式です。
- 形式を明示的に指定しない場合のデフォルト形式です。
; sample.asm
org $1200
nop
start: ret
end start
; sample.bin
00000000: 00 c9
MZT 形式
- MZT ヘッダ(128 バイト)として次の情報を含む形式です。
- 16 文字までのファイル名(ASCII)
- ロードアドレス
- 実行開始アドレス
; sample.mzt
00000000: 01 73 61 6d 70 6c 65 2e 6d 7a 74 0d 20 20 20 20 |.sample.mzt.
00000010: 20 0d 02 00 00 12 01 12 00 00 00 00 00 00 00 00 | ...............
00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................
00000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................
00000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................
00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................
00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................
00000080: 00 c9
T88 形式
| 項目 |
出力内容 |
| magic |
"PC-8801 Tape Image(T88)\0" |
| tag: version |
0x0100 |
| tag: blank |
tick len 0x01e0 |
| tag: space |
tick len 0x12c0 |
| tag: mark |
tick len 0x2ee0 |
| tag: data |
ファイル名(6文字まで) |
| tag: mark |
tick len 0x03c0 |
| tag: data |
ロードアドレス、アセンブル結果(レコード長は最大 0xff) |
| tag: mark |
tick len 0x1860 |
| tag: space |
tick len 0x2ee0 |
| tag: blank |
tick len 0x3fc0 |
| tag: end |
|
; sample.t88
00000000: 50 43 2d 38 38 30 31 20 54 61 70 65 20 49 6d 61 |PC-8801 Tape Ima
00000010: 67 65 28 54 38 38 29 00 01 00 02 00 00 01 00 01 |ge(T88).........
00000020: 08 00 00 00 00 00 e0 01 00 00 02 01 08 00 e0 01 |................
00000030: 00 00 c0 12 00 00 03 01 08 00 a0 14 00 00 e0 2e |................
00000040: 00 00 01 01 15 00 80 43 00 00 8c 01 00 00 09 00 |.......C........
00000050: cc 01 24 24 24 73 61 6d 70 6c 65 03 01 08 00 0c |..$$$sample.....
00000060: 45 00 00 c0 03 00 00 01 01 18 00 cc 48 00 00 10 |E...........H...
00000070: 02 00 00 0c 00 cc 01 3a 12 00 ee 3a 02 00 c9 cb |.......:...:....
00000080: 3a 00 00 03 01 08 00 dc 4a 00 00 60 18 00 00 02 |:.......J..`....
00000090: 01 08 00 3c 63 00 00 e0 2e 00 00 00 01 08 00 1c |...<c...........
000000a0: 92 00 00 c0 3f 00 00 00 00 00 00 |....?......
リストファイル
- 書式は次のとおりです。
- ファイル名
- 行番号 アドレス コード [クロック数] ソース行
- 条件付きジャンプなど、複数のクロック数を持つ命令は大きい方の値を示しています。
- リストファイルのエンコーディングは UTF-8 です。
charmap MZ700, "mz700.json"
init_display equ $2364
org $1200
start:
call mz_setup_pcg
call mz_init_8253
call init_display
halt
mz_setup_pcg proc
ret
endp
mz_init_8253 proc
ret
endp
loader.asm:
1 charmap MZ700, "mz700.json"
2
3 2364(9060) init_display equ $2364
4
5 org $1200
6 1200 [ ] start:
7 1200 cd 06 12 [17] call mz_setup_pcg
8 1203 cd 07 12 [17] call mz_init_8253
9 1206 cd 64 23 [17] call init_display
10 1209 76 [ 4] halt
11
12 mz_setup_pcg proc
13 120a c9 [10] ret
14 endp
15
16 mz_init_8253 proc
17 120b c9 [10] ret
18 endp
19
シンボルファイル
- 定義されたシンボルのうち、ラベル情報を出力します。
- 書式は次のとおりです。
- 相対セグメントを利用している場合に同一アドレスに複数のラベルが定義されている場合、それら全て出力します。
1200 START
1206 MZ_SETUP_PCG
1207 MZ_INIT_8253
マップファイル
- 生成コードの配置結果を示すファイルです。
- 書式は次のとおりです
- ファイルオフセット セグメント種別(ABS/REL/GAP) セグメント範囲 セグメントサイズ
org $20 ; ロードアドレス $20 から配置
jp $ ; jp $0020
org $100, REL ; 相対セグメント
top1:
jp top1 ; jp $0100
org $100, REL ; 相対セグメントは他のセグメントとアドレス重複可能
top2:
jp top2 ; jp $0100
org $10 ; ロードアドレス $10 から配置
jp $ ; jp $00-10ld a, 1
00000 ABS 0010 - 0012, size 0003
00003 GAP 0013 - 001f, size 000d
00010 ABS 0020 - 0022, size 0003
00013 REL 0100 - 0102, size 0003
00016 REL 0100 - 0102, size 0003