1

CP/M で由緒ある M80 および L80 ツールを使用して ROM イメージを構築しようとしています。(これは CP/M エミュレータ用であるため、CP/M ツールを使用している理由です。)

残念ながら、L80 は非常に粗雑なようです --- AFAICT では、各オブジェクト ファイルを絶対アドレスにロードし、修正してから、0x0100 からすべてをディスクにダンプします。これは、自身のワークスペース外のアドレスに基づくオブジェクト ファイルがまったく機能していないように見えることを意味します (エラー メッセージが表示されるだけです)。私の ROM には 0xd000 のベース アドレスがあり、これはかなり外側にあります。

M80 と L80 を使用してこれを行うことが可能かどうかは誰にもわかりません。または、CP/M アセンブラー/リンカー スイートを推奨する (そして私を指差す!) ことはできますか?

(可能であれば、クロスコンパイルを避けたいことに注意してください。)

4

2 に答える 2

3

1 つのファイルをアセンブルするだけの場合は、M80 の .phase ディレクティブを使用して、アセンブラに出力を配置させることができます。

  .phase 0D000h

複数のソース ファイルをビルドして最後にリンクする場合は、M80 を引き続き使用できますが、 http: //www.cpm.z80.de/download にある DRI のリンカー LINK.COM が必要になります。 /pli80_13.zip . 使用する LINK コマンド ラインは次のようになります。

LINK result=module1,module2,module3[LD000

(最も近い L80 相当物は、私が思うに、

L80 /P:D000,module1,module2,module3,result/N/E

ただし、結果のファイルの先頭から 0xCF00 バイトを削除する必要があります)。

于 2013-02-22T20:35:14.667 に答える