【S1】Z80Bカードが不安定^^

S1/10の実機環境も復活し、MP-3550も導入できたことから
S1用CP/M-80の移植作業を再開しました。

CP/M80 Ver2.2はこちらからDLしたZ80用ソースコードを60K用にしてアセンブル、
2D用のブートローダはsamさんに作成して頂いたものを活用させて頂いています。

BIOS09とBIOS80はメモリロード後のZ80の起動と最低限のI/Oを実装しています。
フラグ監視式のポーリング動作ですが、6809とZ80の共通領域にデータを書込んでI/Oを表示させることが
できるところまでたどりつきました^^

ブートローダのメッセージは

40文字モードの大きな文字で8ビットマシンをアピールし、グリーンディスプレーぽく緑色で出力^^

60K CP/M80なので拡張メモリの$0D400番地からCP/M80本体+BIOS80をロードします。
BIOS09は$89000からロードして論理アドレス$6000から割り付けています

6809もZ80も両方RUNしBIOS内の無限ループでフラグの変化に応じて処理をさせていますが、
6809側からZ80のメモリ領域を参照する場合はZ80を止める必要があるので、このままではかなり非効率です
(Z80を止めないとフローティング状態のS1バスが接続されない回路になっている)
毎ループごとにZ80が停止するのは無駄すぎで、最終的には割込み式にしないと実用性は厳しそう・・・

ロードが完了するとBIOS09が起動し
Z80スタンバイのYes/No, Z80リセットベクタのメモリへの書込みYes/No, Z80スタート(Yes/No)
を選択しフラグチェック式のI/Oループに入ります 続きを読む 【S1】Z80Bカードが不安定^^