CP/M-8000のリンカ ld8kのソースコードがP-CP/M-Z8k SOURCESの中に見つかったので、Programmer's Guideと共に読み進めています。
最初、ソースコードを修正してLinuxで動くようにしようとしたのですが、文法が古典過ぎて最近のコンパイラは通りません。また、バイトオーダの違いもあって、素直には動かせそうにないので、ソースコードを参考に書き直すことにしました。
ソースコードだけからでは意味がわからなかった部分も、Programmer's Guideにコマンドファイルフォーマットとリンカの使用方法の説明があったおかげで、再配置データやシンボルテーブルが読み出せるようになりました。
下はcpmsys.relのシンボルテーブルを読み出した例。
このファイル中のシンボルは、225個あることがわかります。どうやら、セグメント番号0xffでタイプ2のシンボルが外部定義シンボルのようです。
リンクの仕方は、ソースコード読み進めてこれから理解していきます。
最初、ソースコードを修正してLinuxで動くようにしようとしたのですが、文法が古典過ぎて最近のコンパイラは通りません。また、バイトオーダの違いもあって、素直には動かせそうにないので、ソースコードを参考に書き直すことにしました。
ソースコードだけからでは意味がわからなかった部分も、Programmer's Guideにコマンドファイルフォーマットとリンカの使用方法の説明があったおかげで、再配置データやシンボルテーブルが読み出せるようになりました。
下はcpmsys.relのシンボルテーブルを読み出した例。
このファイル中のシンボルは、225個あることがわかります。どうやら、セグメント番号0xffでタイプ2のシンボルが外部定義シンボルのようです。
リンクの仕方は、ソースコード読み進めてこれから理解していきます。