[CP/M] Z80-MBC のボード

こんにちは 久しぶりにブログの更新です。

といっても長い間何もしていなかった訳ではなく、多くの作業を抱えていたので、ブログでの紹介が遅くなってしまいました。

今回はネットサーフィンで見つけたZ80-MBCという Z80を使ったマイコンボードです。オレンジピコという所からボードとIC4つをキットにしたものが販売されているということが紹介されていました。このボードでCP/Mが走るとの情報も合わせて知りました。

元のサイトはここのようです。

A 4$, 4ICs, Z80 homemade computer on breadboard

CP/M 懐かしい響きです。 今はMS-DOSという声も聞くのが少なくなってきましたが。

健忘禄を兼ねて

Z80-MBCボード

ボードを手に入れて組み立ててみました。

USB-シリアルの変換器は5Vでも3.3Vでも切り替えで使えます。

ATmega32Aへの書き込み

ボードをコントロールするのはATmega 32AというICですが、これに幾つかのプログラムを書き込む必要があります。 書き込むためには、幾つかの機材が必要になります。

  • ArduinoUNO
  • 配線をするためのケーブルとブレッドボード
  • LED 及び抵抗(220) チェック用

書き込みの詳細は以下のサイトで詳しい説明がなされていますので、そちらをご覧ください。

レトロな雰囲気

なお補足説明を

ArduinoUNOにarduinoISPを書き込む

ここではWindows7(64bit)を使用することにします。幾つかの古いソフトが新しいWindowsでは走らないからです。

ArduinoUNOを認識させる

まずArduino IDEをインストールします。

次に

購入したArduinoUNOをWindows7に接続(USBケーブル)します。

Windows7に認識されたどうか、ドライバーがインストールされたかどうかをチェックします。

チェックの方法はWindows7画面左したのwindowsマーク?(スタート)をクリックしてコントロールパネルを選択します。

コントロールパネルをクリックすると、「全てのコントロールパネル項目」の一覧が表示されます。もし表示されなければ、右上に表示方法がありますので、「小さいアイコン」を選んでください。デフォルトでは「カテゴリ」になっているかも知れません。カテゴリをクリックするとそこに「大きいアイコン、小さいアイコン」が表示されますので「小さいアイコン」を選択してください。

その「パネル項目」の中から「デバイスマネージャー」を選んでクリックします。

ポート(COMとLPT)の項目にドライバーの表示があるか、若しくはその周りに不明なドライバーなどの表示が出ていませんか?

ポート(COMとLPT)の中に、例えば以下のように表示が出ていれば正常にドライバーはインストールされて、ArduinoUNOは認識されています。

が「不明なドライバー」の場合は以下のようにドライバーをインストールしてください。下記のサイトに詳しい説明がありました。

ネクストステップ サポートBlog

その結果は以下の通りになりました。

これでもインストール出来ない場合があります。

以下のサイトに

“arduino.inf” file not in driver folder of arduino, 1.0.6 IDE (windows zip file)

Finally, navigate to and select the driver file named “arduino.inf”, located in the “Drivers” folder of the Arduino Software download (not the “FTDI USB Drivers” sub-directory). If you are using an old version of the IDE (1.0.3 or older), choose the Uno driver file named “Arduino UNO.inf”

とあり、指定したフォルダーの位置を変更すれば問題は解決できるようです。

「FTDI USB Drivers」のサブディレクトりーを指定するのではなく、もうひとつ元(戻る)の「Drivers」のフォルダーを指定します。

( Program Files(x86)/Arduino/drivers を指定)

さてドライバーも無事にインストール出来たら次にArduino IDEを起動します。

Arduino IDEの起動とArudinoISPのインストール

ArduinoUNOにArudinoISPを書き込むのですが、以下のサイトに詳しい説明がなされていますのでそちらを参考にしてください。

ブートローダーを書き込む方法

ここでも補足説明を

途中で以下のところがあり、図入りで説明がなされています。

「メニュー「ツール > シリアルポート > (Arduinoのポート名)」を選択します。」

その後に

「書き込み装置」について説明が見当たりませんでしたが、ここには図で表示されているように「Arudino as ISP」を選択してください

ここで何を選択すればよいか私自身が迷ってしまいました。

後はサイトに説明がなされていますので、その指示にしたがってください。

これでArduinoUNOにArduinoISPが書き込まれました。

Arduino IDEにMightyCoreボードマネージャを追加

Arduino IDEにはATmega 32のブートローダーなどは含まれていません。そこでMightyCoreというボードマネージャを追加する必要があるようです。

以下のサイトに詳しい説明がなされていますので参照してください。

MCUdude/MightyCore

でも英文なので

まごころせいじつ堂

ここにもZ80-MBCについての記事がありました。

で導入が終わったら

ATmega 32Aにブートローダーを書き込む

Arduino IDEを使ってATmega32Aにブートローダーを書き込みます。

ArduinoUNOとのATmega32Aとの接続は、「レトロな雰囲気」の記事を参考にしてください。

なお図の中でケーブルの途中でATmega32Aのピンに接続されているように見えたので、つい接続したのですが、これは間違いでした。ケーブルの両端が接続されていて途中は接続されていません。もっと調べれていればすぐにわかったのですが。 でもICは壊れていませんでした。

Arduino IDEの設定は

シリアルポートはArduinoUNOのドライバーをインストールしたときのCOM番号を指定してください。

「書き込み装置」はArduino as ISPを指定してください。

最後に

「ブートローダーの書き込み」をクリックします。

これでブートローダーの書き込みは出来ると思います。

ATmega32Aへのスケッチの書き込み

さていよいよ終盤にかかってきました。

スケッチの書き込みはZ80-MBCボードを使って行います。なおぶー路ローダーを書き込んだAtmega32Aもボードに取り付けます。

Z80-MBCボードに全てのICを取り付けます。なおI2CのメモリICは後でも結構です。

X80-MBCボードにUSB-シリアル変換器を取り付けます。 ここでUSB-シリアル変換器が必要となります。

出来れば5V/3.3Vの切り替えができるものがあるといいかもしれません。

私はスイッチサイエンスさんの「FTDI USBシリアル変換アダプター Rev.2」を使っていますが、秋月さんでも同様のものを販売しています。ネットで調べて見て下さい。

Arduino IDEの設定はそのままに

「ファイルー>開くー>S221116_R100218_Z90」を選択して下さい。

「スケッチー>検証・コンパイルー>マイコンボードに書き込む」と順にクリックします。

もしかしたら検証・コンパイルは飛ばしてもいいかも。

書き込みが終わりましたらArduino IDEを終了します。

これで「レトロな雰囲気」の記事の一つの補足は終わりました。

次はCP/Mの導入です。

Z80-MBCボードへのCP/Mの導入

いよいよZ80-MBCボードへのCP/Mの導入です。

CP/Mを導入するためには、I2CのシリアルROMが必要です。 基板に2個(AT24C1024B)取り付けてありますが、写真の方向ではピン間がすべてショートしますので、たて向きにつけてください。 ピンは全てフリーだと思っていたら、接続されているピンがありました。私は意地でもこの方向にとりつけたので、ピン間の接続をカッターで削除。 グリーの基板は端のところのいくつかが、接続されていました。

参考にさせていただいた記事は以下の通りです。本当に感謝です。

レトロな雰囲気

Z80-MBCでCP/Mが動作しました

記事の通りに進めているうちに幾つかわからない点が出てきましたので、サイトを調査。

4 HEXファイルを転送し”iDisk-intel-hex Disk image Loader-S250317″が起動します。

で5に入る前に 以下のサイトを参照してください。

CP/M 2.2, iDisk and a new IOS

ここに詳しい説明があります。英文ですけどね。私は斜め読みですませましたので理解していたかどうか?

Wを入力

Yを入力

書き込みとベリファイが始まり、終わると次の入力を待ちます。

ところで途中でUser+Resetを押してしまったら、入力待ちになっていますが、そこで読み込ませるファイルは

「iDisk-S250317」になりますですので、間違えないようにしてください。その後に

5 あとは、CPM22_DualDisklPack_v2.zipのD0CPM_SEG0.hexからD1CPM_SEG3.hexをファイル転送して書込みます

と続きます。

全てが読み終わってベリファイが済んだら、リセットですがここでも問題が

次のようにしてください。

「User+Reset]の2つのボタンを押して、しばらくしてから「Reset」のボタンだけ離してください。「User」のボタンは押したままです。 そうしないと、ストリーム待ちとなって新しいメニューが表示されません。

どこかに書いてあるのかもしれませんが、これがわかるのに時間を要しました。

これから

これが新しいメニューです。でも4項がLoad OS from Disk 0となっていてCP/M 2.2とはなっていませんでした。

まいいか。

で「4」を選んで見ると

CP/M 2.2 が起動して入力待ちになりました。

終わる方法ですが、ありませんので

「User+Reset」を同時に押して、「Reset」だけ早く離すということで新しいメニューが表示されます。

電源を切って再投入すると、最後に動いていたものが起動するようです。

稼動部分がないので、電源OFFでも壊れる部分が少ないかも。

CP/M のED.COMの勉強をしないとソフトが書けません。WMでもいいんですが、インストールの仕方がまだわかっていないので。 英文の解説らしき資料はありましたので近いうちに。

これから勉強です。

コメント