オレンジピコさんとこで販売していただいているZ80 CPUボードがREV3となりました。以前BLOGなどにも ぼちぼち書いていたと思いますが、CPUボードREV3のポイントを書いてみたいと思います。
REV3基板の外観
Z80CPUボード REV3の外観はこんな感じです。REV1と比べて部品点数がだいぶ増えてます。コネクタとしてZ80 CTRLというコネクタも増設してます。後述します。
CPUボードREV2
Z80 CPUボード REV3というからにはREV2もありまして、REV2の改良点について詳しくはgithub wikiにまとめています。
REV2はSBC8080ルーズキットとの互換性向上を目指しました。この改良が「もうちょい」だったのでREV3へと改良を続けるわけですが….
REV2の対応点は以下のとおりです。
- REV1では未結線だったHOLD/HLDA信号を接続。あわせてHLDA信号がHレベルとなった際にMEMR/W信号線やIOR/W信号線をバスから切り離す対応を実施。
- SBC8085で装備したINTA(割り込み許可)信号線を装備。
2つ目のINTA(割り込み許可)信号ですが、以下の昨年のBLOGで書いたとおりi8085とZ80の信号線の挙動の違いから更なる改良が必要でした。
CPUボード REV3の改良点
CPUボードREV3の詳しい説明はREV2同様 github wikiにまとめています。プリント基板製造用のデータもgithubに上がってますのでどうぞ。
割り込み許可信号線(INTA)動作改良
前述したとおりi8085とZ80のINTA信号の挙動の違い(割り込み信号に対して、割り込み許可は1発しか出ない)から、REV2基板の回路ではi8259割り込みコントローラーをつなぐことができませんでした。そこで、過去のザイログ社の資料に習って74HC74 D-FFを使ってi8085のINTA信号っぽい動きをする回路を装備しました。
Z80としてはINTA信号(M1とIOREQが同時にLレベル)が出たあとRD信号複数回でメモリーを読みに行くみたいなんですが、そこを捻じ曲げてINTA信号が複数回出るようにしてi8259割り込みコントローラーからCall命令をデータバスへ発射してもらうという仕組みです。i8259割り込みコントローラーのデータシートに以下のような図が出ていることからも複数回の割り込み許可信号を期待していることがわかるのであります。
Intel 8259 Datasheet
Call命令が発射されたあとにZ80 CPUはCallするためにスタックプッシュの動作に入るのでWR信号が出るためD-FFがクリアされるというカラクリです。
Z80 CPU固有信号線コネクタ
これはもう苦肉の策として装備したのですが、もともと出自がSBC8080互換を目指したKZ-80CPUBでありますから、SBC8080バス(40pinIDCコネクタ)にはZ80 CPU固有の信号線は出ていません。
ザイログ社製周辺デバイスを使ったI/Oボード KZ80-ZilogIOを作ろうと思ったときにRDやIOREQ、M1といった信号線を引き出したくなりましてコネクタを装備しました。
KZ80-ZilogIOについて詳しい説明は、以下のgithub wikiにあります。
おまけ : Z80 ザイログ社周辺LSIによるI/Oボード
KZ80-ZilogIOの基板の見た目は以下のような感じです。以前I2C実験の記事で使ったZ80 PIO(パラレルI/O)にはKZ80-IOBに似た2×7ピンの外部端子を2つ装備。Z80 SIO/2(シリアルI/O)はクロックとして74HC4060で水晶発振したクロックと、Z80 CTC(カウンター)で分周したものを切り替えることができるようにしました。(CTCでのクロックに自信がなかったとも言います)
Z80 SIO/2シリアルLSIは2シリアルを装備しているため、シリアル端子は2つあります。また、Z80 CTCカウンタLSIで単音発声してみようと思ってスピーカー(SPK)端子も装備しました。
各部品を実装した写真がこちらです。コネクタだらけで密集した印象ですが….
次は….
KZ80-CPUB REV3とKZ80-ZilogIOを、改めてご紹介しました。次の記事あたりでこれらを使って、Grant’s CP/Mの動かし方をまとめたいと思います。(BLOGに書けてなかったと思うので…)
以前もKZ80マイコンでCP/Mは動かしましたが、シリアルI/Oデバイスが違うためBIOSの修正箇所がいろいろとあり動かすまでめんどくさいものでした。KZ80-ZilogIOボードにSIO/2シリアルLSIを装備しましたので、かなり移植は楽…..なはず。
コメント