2019年7月28日日曜日

CP/M-8000は移植できるのか CPMLDRを探る 1

The Unofficial CP/M Web site にある CP/M-8000 1.1 で確認を始めています。
CPMLDRのソースコードは、disk4 に収まっています。

BIOSは、Olibetti M20 というマシン用に書かれています。幸いなことに、ネット上にはマシンのハードウェア情報があるので参考になりそうです。

bios.sub がBIOSをビルドするためのサブミットファイルです。そこから読み進めると、コンパイルとアセンブルが必要なファイルは、
  • bios.c
  • biosasm.8kn
  • biosdefs.8kn
  • biosboot.8kn
  • biosif.8kn
  • biosio.8kn
  • biosmem.8kn
  • biostrap.8kn
  • syscall.8kn
  • fpedep.8kn
  • fpe.8kn
  • libcpm.a
biosboot.8knの中に、メモリ配置に関する情報がありました。
  • ブート時のシステムの配置アドレスは、<<10>>0000
  • ブート時のシステムのPSAは、<<4>>0100
  • システムの配置アドレスは、<<11>>0000
  • システムのPSAは、<<2>>0100

BIOSはアセンブリ言語だけで記述されていると思っていたら、C言語も使われています。結構面倒なことになってきました。gccが使えるのか、もしくはアセンブリ言語で書き直しかな。

fpedep とfpe はソースが無く、アセンブルされたオブジェクトのみがあります。これらは、浮動小数点演算用のようで、ローダに必要なのかわかりません。

0 件のコメント:

コメントを投稿