FreeBSDでクロスの開発環境を作っています。ビルドした実行バイナリは下記のような方法で実機にもっていっています。
PC-8001のマシン語の実行ファイルはzmac,ld80でhexを作りihex2monlでCMTファイルにしてUSBメモリに書き込んでPC-8001にロードして実行します。zmac,ld80はBSD MakeでビルドできCP/M上のMACRO-80の仕様に一番近いと思います。
zmacはbisonをインストールして以下のようにしてビルドします。
% make CC=cc CXX=c++ YACC="bison -y"
ld80はMakefileにg++の直書きがあるので、それを修正してビルドします。
FreeDOSやPC-9801はOpenWatcomのLinuxバイナリをFreeBSDのエミュレーションで実行してバイナリを作っています。
クロス開発の環境が簡単に作れる現在ではセルフで開発するのはナンセンスだと思います。いろいろ覚えられないので、環境が一つに集約できる事はとても助かります。
AptivaとPC-9801FA2では3.5inc(2DD)フロッピーが使えるので、これで転送することもできます。
ユーザ権限でUSBメモリをmtoolsでアクセスできるようにするためdevdの設定します。
notify 100 {
match "system" "GEOM";
match "subsystem" "DEV";
match "type" "CREATE";
match "cdev" "da[0-9]+[ps][0-9]+";
action "chmod 0666 '/dev/'$cdev";
};
notify 101 {
match "system" "GEOM";
match "subsystem" "DEV";
match "type" "CREATE";
match "cdev" "da[0-9]";
action "chmod 0666 '/dev/'$cdev";
};
一つで書けそうですが、よくわかりません。
USBメモリはda0s1でフロッピーはda0になるようです。