2018年12月17日月曜日

Z80 SBCへの CPM 搭載(2)

 先回の予告とは異なって、もう少しCFカード搭載の話を続けたいと思います。

 CFカードはIDEのコネクタに接続可能だと言いましたが、正確には左写真のように、CFカードをアダプターに挿し、そのアダプターがIDEと同じ配列の40ピンコネクタを持っていると言うことです。

 ちなみにこの写真にあるアダプターはebayで安価に入手(国内でCFカードソケットのみを購入すると同じくらい)できますが、オーダーしてから4週間ほど待たねばならないのが毎度のことながら難点です。

 参考までに、GRANTさんの図をリファインした、CFカードのピン配置を以下に示します。


 これは正面からの図ですが、左右両端のガイド溝(細い楕円で囲まれた部分)の大きさで左右を判定します。

 ピンは50ピンありますが、必要なのは、前回お話したように、このうち18ピンのみです。もちろんGNDなど共通なものは1ピンとします。


 左写真は、今回製作した Z80 SBC にCP/M-80を搭載した際に設置したCFカードソケットの様子(写真上部)です。

 こうして見ると結構大きく、場所をとりますので、CFカード・ソケットが手元にあったのを幸い、カードアダプターも自作してみました。












 ベースは秋月のユニバーサル基板で、これにCFカード・ソケットと18ピンを載せただけのものです。

 ただピンが微細にこみいっていますので、ハンダ付けには細心の注意が必要です。

 左写真に詳細を示しましたが、プル・アップ用1kΩの表面実装用がうまく半田付けされています。

 そして右写真は、AKI-80を用いた、CP/Mボードですが、前述の Z80 SBC よりも一回りコンパクトに収まっています。


 と言うことでいよいよ本題に入っていきます。

 CP/Mでは、ディスク上の任意の1セクターのREAD、WRITEが必須ですが、逆にディスクへのアクセスはこれしかありません。

 したがって、モニタープログラムで、この操作が出来ることをあらかじめしっかりと確認しておくことが必要です。



 上図は、前回も紹介した、 CPUVille のサイトのCP/Mの項目( http://cpuville.com/Code/CPM-on-a-new-computer.html )にある、セクター・リードのプログラムを私流にアレンジして、 Z80 SBC のモニターとして使っているものです。(同様のセクター・ライトのプログラムもあります)

 このプログラムは上側に赤く囲ってあるように、HL:DMAアドレス、E:DRIVE番号、B:TRACK番号、C:SECTOR番号 に、あらかじめそれぞれの数値をいれてコールすれば、目指すSECTORのデータをDMAアドレスから始まる512バイトに読み出してくれます。(今回のCP/Mでは、このうち128バイトしか使いませんが、、、、)

 このプログラムは、CFカードのLBA( Logical block addressing 論理ブロックアドレス指定)方式をつかっています。


すなわち、CFカード上では、左図のようにSECTR番号が右端の0から順に番号付けされていますので、これをLBA2:DRIVE番号、LBA1:TRACK番号、LBA0:SECTOR番号 に割り振ってあるのです。


 今回移植するCP/M-80は標準に近く、DRIVE 4、TRACK 77、SECTOR 26というIBM仕様?になっています。

 LBAを使用するために、プログラム上では中ほどの緑で囲った部分の記述があります。
 E0HをCFカードのポート0FHに出力することでLBAモードにしています。

 CFカードのポートは左図のようにA0~A2のアドレスで設定されますが、アドレス・コーダ74HC138と組み合わせることで今回は08H~0FHの8個のI/Oアドレスを設定しました。

 今回のケースは、LBAモードの図から037F1F Hと読み取れます。229151個のSECTORを使うと言うことで、229151 X 512 = 117325312 となりますので、最低限128MBのCFカードが必要と言うことでしょうか。

 なおこのままだとCFカードは16bitモードのままです。普通に使うには何の支障もありませんが、私は気持ちが悪いので、下記のプログラムをシステム立ち上がりのときに走らせて、8bitモードにして使っています。



 これまでに入手した、CFカードはほとんどが支障なく使えましたが、なかにはダメなものもありました。何故だかは分かりませんが配線を最短に、とかバッファーを入れるとよい、、、、ナドト言われています。(私は試していませんが)

 CFカードについては参考に出来る資料があまり多くはありません。今回述べたことは、たまたまの成功体験を自己流に解釈しているだけですので、いい加減な説明をご容赦ください。

 以下は次回です。

0 件のコメント: