出力ファイル

出力ファイル形式

  • 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

results matching ""

    No results matching ""

    results matching ""

      No results matching ""