2019年9月22日日曜日

CP/M-8000は移植できるのか リンカ 2

libcpm.a をリンクする必要があるので、こちらのフォーマットも調べておきます。ar8kのソースコードが P-CP/M-Z8k SOURCES に、コマンドの説明はProgrammer's Guide に存在していました。

構造は単純です。先頭の2byteがマジックナンバで、ar ヘッダーと x.out フォーマットのオブジェクトがその後に続いてゆくだけです。先頭から手繰っていけば、すべてのオブジェクトが読んでいけます。

CP/M-8000では、ブートセクタに書き込まれたローダがCPMLDRを実行し、ファイルシステム上にあるCPM.SYSを読み込み実行する2段階の起動方法になっています。
The Unofficial CP/M Web Site で公開されているファイルでは、Olivetti M20用のCPMLDRが、CPMLDER.REL とLIBCPM.A をリンクするとできるようなので、当面は、これらをリンクできるようになることを目標とします。