ログインAVRとZ80でCP/Mの改良CP/Mの改良ではありません。「AVRとZ80でCP/M」の改良の話です。AKI-80が販売終了?ふと秋月さんのオンライン通販ページを見てみたら、AKI-80が無い(2012年11月現在。スーパーAKIは販売中)。CPUはまだ在庫があるようですが、さすがにもう再販しないでしょう。TMPZ84C015は、周辺が素直に一通り(SIO,PIO,CTC)内蔵されているところがよかったんですが。数年前に1個買ってあったので、ちょっと動かしてみたくなりました。ROMは面倒なので、AVRとZ80でCP/Mと同じ方法で動かすことにしました。AVRとZ80でCP/Mではとにかく動かすことだけ考えた端折った回路なので高クロックには対応できず、試したところ6MHzまででした(ファームを少し変更するとどうにか8MHzでも動く)。AKI-80の最高クロックは12MHzですが、とりあえず10MHzで動かすことを目標に改良を試みました。私は測定器はオシロスコープしか持っていないので正確には確認できておらず推測ですが、Z80がAVRの仮想I/Oからの入力(AVRのデータポートが出力状態)をした直後、AVRはデータポートを入力に戻すわけですが、それが間に合わず、次の命令フェッチでAVRのデータポートの値をOPコードとして読み込んで誤動作しているようです。M1を取り込んで、仮想I/Oアクセスの直後にもう一発WAITが入るようにしたのがこの回路(A4を仮想I/Oと実装I/Oの切り分けにしている例)。これなら、ポートを入力に戻した後にWAITを開放するので、いくらクロックが上がっても問題ないはず。してきたのでここはCPLDに置き換えることにしました。ついでにRD、WRのトライステートや、I/OのCSのデコードなど一切合財入れてしまいました。回路図(CPLD版)AVRとZ80でCP/MではSDカードを入れないで起動すると、AVR内のEEPROM(2kB)の内容をRAMにロードしてZ80をリセットする仕組みになっていましたが、AKI-80が32kBのROMを搭載する設計になっているので、32kBのシリアルEEPROMを外付けして同等にしました。起動優先順位は、SDカード、外付けEEPROM、AVR内EEPROMです。拡大AKI-80と同じサイズに基板をカットし、最近流行?のスタッキング基板になるようにコネクタを配置しました。仕方なくPLCCタイプを千石さんで購入しました。ソケットも買っておいたのですが、やたらスペースをとるので使うのをやめ直配線にしました。AKI-80本体にも少しだけ改造が必要です。ROMとRAMを使わないので、RAMを無効にするためパターンを一箇所だけカットします。Tetsuさん)のページに詳しく書かれています。(戻し方も書いてあるので安心)AKI-80のバスコネクタには2つほど空きピンがあるので、ひとつをAVRからのCPUクロック出力に、もうひとつをCPLDから外付けI/O一個用のCS出力に割り当てています。上に載せるCPU基板はAKI-80でなくてもZ80互換なCPUなら何でも載せられ、しかもI/Oデバイス1個を載せるだけならプルアップ抵抗とパスコンだけで済むようになっています。[未検証]ソフトウェアシリアルEEPROMを追加した分の変更以外はほとんどAVRとZ80でCP/Mと同じです。シリアルEEPROMのアクセスモジュールは、がた老さんのI2CミニLCDドライバモジュールを基に改造して作りました。シリアルEEPROMへの書き込み手段を2つ提供しています。PCからダウンロード(sepromw.exe)AVRのPB7をLレベルにして起動した場合は書込みモードとなり、PCの書込みツールの制御下でHEXファイルをダウンロードできます。コマンドライン)はChaNさんのAVRの書込みツールを基に改造して作りました。sepromw.iniファイルに予めCOMポートNo.を設定しておくことができます。Z80上のRAMからロード(EROMW.COM)書込指示専用のI/Oポートを新設しています。RAMの2000番地から1kB単位で32kBまで任意のサイズの内容を書込むことができます。CP/M上で0番地スタートのプログラムを作成してHEXファイルを生成し、DDTで2000番地からにずらしてRAMに配置します。この状態で書込み用のI/Oポートを叩くと、後はAVRが全部やってくれます。CP/M上での書き込みソフト(EROMW.COM)を作りました。これにより、端末こそ使いますがソフト作成からROM焼きまでセルフでできます。ソフトウェアのダウンロード(699)AKI-80用ソフトウェアは変更なしで動きました。実行画面CPLDの書込みについて今回初めてCPLDを使いました。西田ラヂオさんのページに、FT232で書き込めるUSBプログラマーがUPされており、これを使わせていただきました。AE-UM232R等を持っている人はライター不要です。Programmer拡大FT232RQを使ったAE-UM232Rにピン互換なUSB変換器を自作してCPLDに書き込む仕様のまとめソースを見てもらえば分かるのですがまとめておきます。今回はI/O内蔵のZ80互換CPUに対応するためI/Oアドレスを大幅に変更しています。(アドレスはヘッダーファイルで変更可能。シリアル入力ステータス。SDカードのR/W実行。書込みサイズ(kB単位)を指定し、RAMの2000番地以降を外付けEEPROMに書込実行する。(CPLDの書き換えで変更可能)あとがきCPLDを使ったことでだいぶ部品が減りました。こちらをベースにTK-80のレプリカを作ったらもっとスマートなものができそうですね。誰か作ってみませんか。部品を減らす検討をしています。15時48分06秒)はい、秋月電子さんで保守用在庫限りで販売されています。AKI-80が販売終了になったのはCPUの在庫数が製造ロットを割ったためと推測しています。この回路はZ80互換なCPUに適用できるので、TMPZ84C015でなくても構いません。22時35分42秒)基板単体だけと思ったら部品付きも復活してますね。site.リンクに許可は不要です。コメント欄は改行せず一行で入れてください。スパム判定ではじかれた場合は、その後に「書込みました」旨のみのコメント等何らかの書き込み成功していただけると早く対応できます。非日本語対応ブラウザからは書き込みできません。