z88dkについて
z88dkは知る人ぞ知る超有能Cコンパイラ&アセンブラツールキットです。対象PC(時代的にはマイコン)はなんと100以上です。当然ながらAM9511もサポートされているのですが、まだDEVELOPMENTのようです。
SORD M23用にファイルをいくつか修正する
どうやら、RC2014のAPUオプションをターゲットにしているようで、Am9511が接続されているI/Oポートがほぼ固定(コマンド/ステータスポートが43h、データポートが42h)になっているようで、他の搭載機で利用するには修正が必要です。
SORD M23のAm9511は、コマンド/ステータスポートがDDh、データポートがDChですので、以下のファイルを修正します(0x43->0xDD、0x42->0xDC)。修正箇所は複数にわたります。ファイルの先頭から末尾までチェックしてください。
./z88dk/src/ticks/am9511.c
./z88dk/libsrc/_DEVELOPMENT/target/am9511/config_am9511.h
./z88dk/libsrc/_DEVELOPMENT/target/am9511/config_am9511_private.inc
./z88dk/libsrc/_DEVELOPMENT/target/am9511/config_am9511_public.inc
configはm4で書かれているので、ライブラリのビルド時にオプションでポート番号を指定できそうでしたが、調べるのが面倒、かつ、直に書き換えた方が楽そうだったのでそうしました。あとはz88dkのディレクトリで、build.shを実行するだけです。
SORD M23(CP/M)のみの使用なら、
./build.sh -p cpm
とすると、ビルド時間が短くて済みます。
ソースツリーの入手やコンパイル方法は以下のサイトを参考にしました。良サイトです。
WSL2上で構築しましたが問題なく使用できます。
使用方法
z88dkの使用できる環境で、
zcc +cpm --am9511 test02.c -o TEST02.COM
とかすると、CP/M実行型バイナリが作成されます。これをディスクイメージに焼いて、実行するとこんな感じになります。
無事計算されています。