Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MZT出力の追加とCMT不具合の修正 #384

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

dogatana
Copy link

@dogatana dogatana commented Jan 3, 2025

内容

  • MZT 出力のオプション追加と実装
  • CMT 出力の不具合修正

2件の修正になりましたが、相互に関係するので1件の PR となっているのをご承知おきください。
手動でのテスト、既存のテストが問題なく実行できることまでは確認しています。
申し訳ないですがMZT用のテストコードは追加できていません。

MZT 出力のオプション追加と実装

ヘルプ出力も含めて関連しそうな箇所は修正しているつもりです。
修正内容に不備、過不足ありましたら訂正お願いします。

CMT 出力の不具合修正

不具合内容

現在の処理では CMTヘッダのアドレスに実行開始アドレスを設定しているため、
格納先頭アドレス≠実行開始アドレスの場合に不整合が発生します。

不具合再現例

        org     $1200

data1:  db      "01234567"
start1: ld      de,data1
        ret

        end     start1

このアセンブル結果は次のとおりになります。
ここで開始アドレスが 1208 になっているため、ローダは 1208 からプログラムを配置します。
これは 1200 となるのが正しいです。

00000000: 3a 12 08 e6 3a 0c 30 31  32 33 34 35 36 37 11 00  |:...:.01234567....l:
00000010: 12 c9 6c 3a 00 00                                 |..l:..

3a 1208(開始アドス)
   e6(チェックサム)
3a 0c(出力長)
   30 31 32 33 34 35 36 37 11 00 12 c9
   6c(チェックサム)
3a 0000(終了)                               

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant