2020年2月28日金曜日

2DDドライブと2Dドライブの混在の工夫

Step Doubler回路を用いて2DDドライブと2Dドライブを混在させる


中国の業者に発注したFDCカードとZ-80カードの基板が十日もあれば届くと思っていたのに、一か月を過ぎても届かないので、予定していたことが全く進みません。。。
ということで、今回はほんのちょっとした工夫の報告です。

10月26日のブログ(12月31日に追記あり)で、FM-7でPC用の2DDドライブを使用するという報告をしましたが、それは自作のFDCカードの中でMB8877AからのSTEP出力を2倍化するというものでした。
従って、適用できるのは2DDドライブのみということになるわけですが、実際の運用としては、5インチとのメディア変換などで2Dドライブも接続したい場合があります。

そこで、FDCカード中でStep信号を2倍化するのではなく、2DDドライブの直前のフラットケーブルの途中に挿入することにしました。さらに、ドライブのコネクタ部で行っていたドライブセレクト信号の切り替えとReady信号生成も同じ基板に載せました。

この形ですと、市販の2DドライブのFDDシステムをお持ちの方でも、別途2DDドライブを用意して、この回路を通してドライブに接続することで、2DDドライブを使用できることになります。

作成した基板です

Ready信号生成回路を後付けしたので見苦しいですが、基板中央の8ピンICがStepDoubler回路のATtiny85で、その出力を7438を通してFDDに送っています。外付けの8ピンICがReady信号用のPIC12F675です。ドライブ0と1の切り替えジャンパとStepDoubler回路のバイパス用のジャンパがあります。


基板


回路図を示します。

手持ちの7438を用いていますが、3.5インチの2DDドライブは負荷としてはそう大きくはないので、7406でも大丈夫だと思います。

回路図

Ready信号の生成部ですが、以前のブログで紹介した2つの回路のうちのPIC12F675を用いてIndex信号とMotorOn信号からReady信号を生成する回路を用いております。
最初はダイオードによる簡便な回路で製作しましたが、残念ながら正常に動作しませんでした。ドライブがセレクトされたときには常にReady信号が出るのがまずいのでしょうか。PICを用いた回路では、正常に動作しています。


動作風景です。

画像で分かりますようにフラットケーブルの途中に基板を入れ、基板を通さずに2Dドライブを、基板を通して2DDドライブを接続しています。
FM-7に刺さっているカードが自作のFDCカードで、これに載っているStepDoubler回路はスキップしています。


動作風景

ディスプレイは小さいので左の棚の上に置いています。

画面表示


私は、通常は2DDドライブ2台で運用しているのですが、2Dドライブが必要な場合はこの回路を用いてFM77AV1から外した2Dドライブ(YD-625)と2DDドライブ(FD-235HG)とで運用しています。メディア変換が必要な場合にはYD-625の代わりに5インチドライブを使用しています。

改良すべき点として、ATtiny85とPIC12F675を一つのICに置き換えることがあるとは思いますが、当面はこのままで使用するつもりです。

2020年2月1日土曜日

FM-7用のZ80カードを製作してみましたが...


いじって遊べるFM-7用のZ80カードが欲しい


手元に今でも動作するFM-7用のZ80カードとCP/M-80システムがあるのですが、そのカードの6809とZ80の切り替えの仕組みに興味がありました。
でも純正のZ80カードも古いですし、あれこれいじっていて故障させてしまうのは怖いので、いじり倒して遊べるZ80カードが欲しいと思っていました。

まず最初にFM-8用の倍速化した回路で製作してみました


インターフェース誌1983年7月号の村上啓司さんによる「FM-8を高速化する」という記事中に倍速化したFM-8用Z80カードの回路図が載っており、そのコネクタ信号がFM-7と同じようでしたので、もしかしたらFM-7でも動くのではないかと考えました。


FM-8用の倍速化回路を利用したZ80カード


手持ちの富士通製の純正Z80カードは19個ものICを使用していますが、この回路は11個と少ないのでサイズも小さくできて作りやすいので、ものは試しと製作してみることにしました。


左:富士通製 右:製作したカード

製作したカードの回路図を示します。
村上さんのFM-8の高速化の回路と倍速化Z80カードの回路のうちのZ80カードの部分のみにFM-7用の32Pコネクタをつけただけです。


FM-8用倍速化Z80カードの回路を利用しました


プリント基板を作り、試作してみました。
最初は、例によって全く動作しなかったのですが、自作したテストプログラムが悪いのかそれとも回路がダメなのかが分からずお手上げ状態でした。
そんな時に、WebでI/O誌の1985年9月号に掲載されたFM-7用Z80カードの製作記事を見つけ、その中のテストプログラムを利用することができ、ハードの調査に専念することができました。
あれこれと思いつく箇所を変更してみたりしていたのですが、結局、使用した手持ちの古いセラミックコンデンサ(1000pF)がショートしていたため74LS00の出力段を破損していることを見つけて、ICとCを交換して無事にテストプログラムが動作するようになりました。

動作中の様子を示します。
(画像中のディスプレイはWindows用で、FM-7用のディスプレイは左側に配置してあるので写っていません。)

動作中の様子(右基板がZ80カード、左はFDCカード)



次に、動くことは期待していなかったのですが、試しに富士通のFM-7用のCP/M-80を走らせてみました。

CP/M-80の起動画面


最初は画像のようなオープニングメッセージが表示されたところでハングアップするか、あるいは入力を受け付けたところでハングアップしてしまいました。
画面表示ができることや、入力を受け付けるときもあること、そして、2台のFM-7で微妙に動作が異なることから、メモリアクセスのタイミングに問題があるのだろうと考えて、とりあえず1000pFにCを並列に加えて容量を変えてみました。値を増やすと徐々に正常な動作に近づくのですが、それでも時々エラーでハングアップしてしまいます。
結局は、これも1000pFのコンデンサの不良(容量抜け?)が原因で、コンデンサを交換することで無事に動作しました。(1000pF~2000pFの範囲で正常動作しました。)

CP/M-80が動作している画面を示します。




このZ80カードは正常に動作すると思ったのですが...


ところが、何とこのZ80カードはもう一台のFM-7では正常に動作しないのです。
CP/M-80では起動画面でハングアップしますし、上記のテストプログラム(6809とZ80間のチェンジを8回繰り返す)では途中でエラーで終了してしまい、リストを取ってみるとプログラムが書き変わっています。
どうもNew7ではない同じFM-7でもメモリアクセス周りに微妙な違いがあるようです。

ということで、村上さんのFM-8用の倍速化Z80カードの回路は、そのままでは全てのFM-7で動作するというわけではないということになりそうです。

ならば、I/O誌に掲載されたFM-7用のZ80カードでということになるわけですが、実は、もう既にKiCadで回路図を起こして、修正したFM-FDC基板と共にFusionPCBに発注してあります。(春節とコロナウイルスのために未だ製造にも入っていませんが...)
ということで、I/O誌の回路によるZ80カードが完成し、正常に動作したら報告したいと思います。