CP/Mを作っています。
CP/Mは古いOSです。個人で使用できる最初のコンピュータ用OSかも知れません。過去、2回CP/Mを作ろうと試みましたが、金欠や時間がなく断念していました。Z80CPUがいまだに販売しているのに気が付き、リベンジを果たすべく、作る事にしました。Z80CPUをW通商で2個購入しました。そのうち1個は基板から取り外した形跡があり、案の定、動作しませんでした。現在は2台目を作成中です。2台目用のZ80は丹青通商で購入しました。新品(とは言え30年以上前の製品)で問題なく動作しています。(使用しているZ80はZilogではなく、シャープおよび東芝製です)
AVR CP/Mで検索するとAVRを用いたCP/Mの作成例がかなりあります。PICで作成されている方もおられるようです。私はDCCでAVRを使用しているので、Z80 + AVR(ATmega164) + PC(Windows)でCP/Mを作成する事にしました。
機能分担としては
AVR:RAMの操作(書込み、読出し)、Z80(CP/M)のI/Oインターフェース。
PC:RAMデータの準備、AVR/Z80Reset等の制御、キーボード、コンソール表示、ディスク(ファイル)制御です。
PC上でCP/M用のディスク代わりのファイルを構成しています。SDもCP/Mのディスクとして使用しています。
PC-AVRのインターフェースはUSB-シリアルで構成しています。Z80(CP/M)-AVRのインターフェースは、IORQ信号によるWait(ハードで生成)およびAVRからのBUSREQで構成しています。
回路図です。

部品の購入は、Z80は丹青通商、その他は秋月電子です。AVR(ATmega164)とゲートIC、USB-シリアルは手持ちの部品を使用しています。
USB-シリアル:秋月製 FT232RL USBシリアル変換モジュール
SDカードI/F:秋月製 microSDカードスロット レベルシフタ付きブレークアウト基板キット
秋月電子は信越電気時代から通っていました。今では、ほとんどネット注文ですが、たまに、秋葉原のお店に見に行きます。
ブレッドボードで作成しました。

DIP ICの上にKiCad PCBレイアウトエディターで作成したピン番号を印刷し、両面テープで付けて配線しています。U10(74HC374)、U9(M68AF127B)は変換基板でDIP化し配線しています。
Z80とAVRのインターフェイスの波形を下に示します。コンソールイン時の波形でAVRからデータバスに1文字(8bit)のデータを出力し、Z80が読込む場合です。
1.Z80がIN命令を実行する。
I/Oアドレスで機能を切り替えています。例、コンソールインはアドレス4、コンソールアウトはアドレス5等
2.ハードがIORQの立下りをZ80クロックに同期してWAITを発生する
3.AVRはWAITがアクティブになった事を確認し、I/Oアドレスがコンソールインである事を認識する。ハードがWAITを保持するのでAVRはのんびり処理が出来ます。
4.AVRはデータバス(AVR PORTC)に1文字データを設定し、このポートを出力にする。
5.AVRはBUSRQをアクティブにする。
6.AVRがWAITを解除する。
7.AVRはBUSACK状態になるまで待つ。
8.BUSACK状態になれば、Z80 IN命令においてZ80がデータを読込みんだことになるので、AVRはデータバス(AVR PORTC)を入力とする。
9.AVRは、BUSRQを解除する。
他の処理も基本的には上記の順で制御しています。

上記の波形は1500円程度のロジックアナライザー / PulseViewで取っています。このロジックアナライザー / PulseViewは、自分のメインのパソコンでは動作せず、ノートブックでPulseView(Safe Mode)の状態でやっと波形が取れました。
WordStarが動作しています。下の写真はWordStarでCPM22.ASMを開いた状態です。

コンソール画面のカーソル色は白でなく薄い緑にしています。この方が見やすかったです。このコンソールはCP/M用に80列x24行で作成しています。
ハードがらみのミスや勘違いで苦労した点
1.AVR ATmega164はデフォルトでJTAGがオンでした。JTAG用ピンがあるPORTCをデータバスとしていたため、RAMの書込み、読出しで全くうまく行きませんでした。
2.同じくデータバス(PORTC)での事で、RAM読出しがうまく行きませんでした。これは、AVR IO PORTの同期化回路でデータがAVRクロック2~3ほど遅れるためで、NOPを2つ入れた後PINCとして読込んでいます。
参考とさせて頂いたサイト(ありがとうございます)
Z80 manual
AVRとCP/M
ロジックアナライザー
え、---、作られたのですか、ブログ/ホームページには作成内容を入れたのですが、まさか、本当に作成する方がいるとは思いませんでした。ありがとうございました。
>JJ1OXS さんへ
>つくりました。... への返信