ラベル STEP信号 の投稿を表示しています。 すべての投稿を表示
ラベル STEP信号 の投稿を表示しています。 すべての投稿を表示

2022年9月26日月曜日

PC用の2DDドライブをFM-7等で使うためのアダプタの基板化

PC用の2DDドライブをFM-7等で使うためのアダプタを基板化してみました 

2019年10月26日の「FM-7でPC用のフロッピードライブを使う」で紹介しました、PC用の2DDドライブをFM-7等で使うための、FDDに直接装着するタイプのアダプタをプリント基板化しました。

簡単なものですのであえて基板化する必要もないのですが、他の基板を発注する際に、ついでにということで製作してみたものです。

製作したアダプタは下画像のようです。


アダプタのFDD側


アダプタのFDC側


回路は簡単すぎて、回路図を示すほどのものではありませんが、FDCからのドライブセレクト信号(0あるいは1)をピン12に入れる切り替えスイッチと、ダイオード1個によるReady信号生成回路からなっています。このダイオード1個によるReady信号生成回路は前回同様に、てきとーに。さんの「FM77AV20/40以降のFDD修理というか交換」中のダイオード1個による簡便な変換回路を使わせていただいています。感謝いたします。


FDD ADAPTER


FDDに直接装着して使用します。

FDDに装着した様子


そしてFDCからのケーブルと電源ケーブルを接続します。画像では、FM-7上の自作FDCカードと接続しています。この時、FDC右端のStep信号2倍化回路のスイッチをDouble側にセットしておきます。使用したFDDはTEACのFD-235HGです。
【注意】対応しているFDDには制限があります。構造上、34Pコネクタの上部に電源コネクタがあるMITSUMIのドライブにはそもそも装着できないので使用できません。これは、以前私がチェックした限りでは、このダイオード1個によるReady信号生成回路ではMITSUMIのD353やD359の中には動作しないものがあったために、対象外と考えたためです。確実に動作するのはTEACのFD-235HGやHFで、他にSONYのMPF920も動作確認をしています。これらについては、2019年12月31日の「FM-7でPC用のフロッピードライブを使う(その後の訂正・補足)」をご覧ください。

なお、FM-7ではStep信号2倍化回路が必要ですが、FM77AV20/40/40SX等のFDDが2DD仕様のものでは接続するだけでそのまま使用できます。私は手配線のものをFM77AV40SXで2019年以来使用していますが、特に不都合は生じていません。





ドライブ番号として0と1が選択できますので、2台までのFDDが制御できます。


FDDを2台制御できます

以上、手配線で使用していたものをプリント基板化してみたというだけの報告でした。

なお、画像のような基板が数多くできてしまいましたので、もしご希望の方がおられましたらお申し出くだされば、郵送料(84円)のみでお送りできます。


製作した基板

実際に製作するためには、34Pのピンヘッダ(オス)、34Pのピンソケット(メス)、通常の信号用ダイオード、3Pスライドスイッチが必要です。
また、本文中に書きましたように、対応していないドライブがあることをご承知おきください。


2DDドライブ用ステップ信号2倍化回路をFDD2台に対応させました

 2DDドライブ用ステップ信号2倍化回路を2台のFDDが接続できるように改良しました

2020年7月29日の「2DDドライブ用ステップ2倍化回路のその後」で紹介しましたステップ2倍化回路ですが、ドライブ毎にそれぞれ2倍化基板が必要となるのは煩雑なので、1枚の基板でドライブ2台を制御できるように改良しました。

最初は単純に2回路を1枚の基板に収めたものを製作して使用してみましたが、これは如何にも大きすぎて、扱いにくいものでした。


左:従来のもの 右:最初に製作した2回路版

そもそも、よく考えてみるとATtiny85が2個も必要なわけではありませんでした。ということで、回路を見直した結果、現在の基板と同じサイズに収めることができました。

その回路を示します。

FDD2台用回路


次に製作した2台用基板


右端の34PコネクタにFDCからのケーブルを、左端のコネクタとその隣の上向きのコネクタに2台のFDDへのケーブルを接続します。上下に出ている4PはFDD用の電源ケーブルです。
(FDD用のコネクタが左と上に向いているのは、当初、左向きのコネクタをメスにしてFDDに直接装着することでケーブルを省略できると考えていたからなのですが、それはそれで使いにくい面もあり、結局ケーブルで接続する形にしています。)

ドライブ番号は0~3から指定でき、それぞれStep信号2倍化回路を通すか通さないかを選択できますので、PC用の2DDのFDDのみでなくGOTEKや2Dのドライブも接続できます。
(GOTEKを使用する場合は、常に本体のドライブ番号はS0ではなくS1にセットしておきます。)

下画像はGOTEKをドライブ0に、PC用FDDをドライブ1に指定して、自作のFDCカードに接続した様子です。


使用中の様子

長いケーブルを使用したので、結構ゴチャゴチャに見えますね...

でも従来の基板と同じサイズのもので2台のFDDが制御できるようになったので、目的は達成できました。


2020年7月19日日曜日

2DDドライブ用ステップ2倍化回路のその後

Ready信号生成のためのPICを不要とすることができました

[2020年8月2日画像追加あり]
[2020年8月6日訂正あり]

6月8日の「2DDドライブ用ステップ2倍化回路のプリント基板化」で、FDCカードからFDDへのケーブルの間に挿入する形のステップ2倍化回路基板を紹介しましたが、それは、ステップ2倍化のためのATtiny85とReady信号生成のためのPIC12F675の両方を必要とするものでしたが、3つのICを必要とするのはいかにも大袈裟です。

このPIC12F675を使用せずにReady信号を生成する方法として次の2つを考えました。
(1)FDDを改造して34ピンにReady信号を取り出す。
(2)ATtiny85にReady信号生成のプログラムを追加する。

PIC12F675によるReady信号生成回路はK-ichi's memoさんによるMSXでPC用FDDを使うで紹介されているものをそのまま使用させていただいていましたが、プログラム作成では結構苦労されているようでしたので、まずは(1)による方法を試してみました。


(1)による方法


参考にしたのは、試運転さんによるPC-9821にPC/AT互換機用FDDを接続する(実施編)です。様々なFDDの改造手順が紹介されていますので、手持ちのFDDのうち該当するもの3台について改造してみました。


2種のTEAC FD-235HG


左がFD-235HG A122 (TB6048F)で右がFD-235HG 7304 (TB6022AF)です。
使用している制御ICの種類によってReady信号のピンが異なりますが、34ピンに接続されているDISK CHANGE信号をカットし、ICの該当ピンから34ピンにReady信号線を接続するだけです。


MITSUMI D353T5

D353T5の場合はDCH端子にハンダ付けされているチップ抵抗を、その下のRDY端子に付け替えるだけですので、元に戻すこともできます。(下図の左下の部分)



D353T5の改造部分



2DDドライブ用ステップ2倍化回路の修正は、FDC側のコネクタとFDD側のコネクタの34ピンを直結するだけです。
(下画像では修正線が何本もありますが、あれこれと改造した残骸でして必要なのは最下部の1本のみです。)

2倍化基板の修正(最下部の1本のみ追加)


改造した結果ですが、PIC12F675を外し、ATtiny85のプログラムは変更せずに動作しました。

しかし、FDDを改造するのはいかにも敷居が高いので、次に(2)のATtiny85のプログラムで対応することを試してみました。


(2)による方法


K-ichi's memoさんのブログによれば、MotorOnがアクティブの間、0.5ms毎に2000回(約1s間)Indexをチェックし、その間1度もIndexが出ていなかったらReadyではないと判断するとのことですので、そのアルゴリズムをそのまま使わせていただいてATtiny85のメイン部に追加しました。(K-ichi's memoさんに感謝いたします。)

プログラムリストを下に示します。


[2020年8月6日訂正]上記プログラム中の2000を5000に訂正します。(理由を最後尾に記述しました。)

2DDドライブ用ステップ2倍化回路の修正ですが、ATtiny85のピン配置をPB0:MotorON, PB1:Index, PB3:Readyとしましたので、ATtiny85 pin5,6,2をそれぞれPIC12F675のソケット端子のpin6,5,7に接続します。

[2020年8月2日追加」必要な追加配線を示す画像を追加しました。




改造した結果ですが、PIC12F675なしで無事に動作しましたので、FDDの改造が不要なこちらの方法の方が良いようです。

[2020年8月6日追加」上記のプログラムリストは2000回(約1秒間)チェックするというものですが、実は、このプログラムではOS-9Level1やLevel2のFDは正常に起動しません。起動時のメッセージを見ていると、どうも起動中の処理に時間がかかりすぎているようですので、2000回を5000回に変えてみたところ、OS-9も正常に起動するようになりました。
ということで、上記プログラムの2000を5000に訂正します。


2020年6月8日月曜日

2DDドライブ用ステップ2倍化回路のプリント基板化

いくつかプリント基板化した製作物がありますので何回かに分けて紹介していきます。

まずは2DDドライブ用ステップ2倍化回路のプリント基板化です。

2月28日のブログ「2DDドライブと2Dドライブの混在の工夫」で紹介しました、FDCのステップ信号を2倍化して2DDドライブを使用する回路ですが、その目的はタイトル通りで、2DDドライブと2Dドライブを混在させることでした。

その前作である2019年12月31日のブログ「FM-7でPC用のフロッピードライブを使う」ではFDCのSTEP信号をMB8877Aから出た直後に2倍化していましたが、この形では全ドライブが2Dか2DDのどちらかになってしまうということで、それぞれのドライブの直前のケーブルの途中に挿入して別々に選択できるようにしたわけです。

2月28日には手配線したもので動作したという紹介をしましたが、複数枚必要ということで今回それをプリント基板化しました。
2月28日の回路を用いていますが、書き忘れていた7438の11番ピンの1kΩでのプルアップを追加してあります。またソフトについてはFDC基板の中での2倍化はSTEP信号が正信号でしたが、基板の外では負信号ですので、STEP信号の立ち下がりで割り込みが入るように変更しています。

他の基板を発注する際に、ついでにということで慌てて作ったためかKiCadのフットプリントを間違えてしまい、そのため電源用コネクタの一つが5Pになっていたうえにパターンカットが2箇所必要になりました。さらにドライブ番号切り替えスイッチのシルク印刷がDR0とDR1と逆になっていましたが、配線変更等はなかったので良しとします。

製作したプリント基板と組み立てた完成基板です。

製作した基板



FM-7で使用している様子です。MITSUMIのD359M3DとTEACのFD235HGの2台を接続しています。




ハード、ソフトのテストのために先日入手したFM77AV1で使用している様子です。このように使用したいというのが製作の動機でした。(サイズが合わず、ちゃんと固定できていないので多少見苦しいですが...)




これで古い8ビット機のFDDの故障等の心配をすることなく、安心して使用し続けることができます。(と言っても、フロッピーそのものがいつまで使用できるかが問題ですが...)

2020年3月13日金曜日

FM-7用Z80カードの第2作などを製作

FM-7用のZ80カード(第2作)がようやく製作できました


ようやく基板が届いたのでZ80カードを製作することができました。
第2作はI/O誌1985年9月号に掲載された記事「Z80カードの製作」(著者は北斗星さん)の回路です。
第1作のインターフェース誌のFM-8用の回路の流用では動作が不安定だったり、対応していないFM-7があったりしたのですが、その原因を究明できていないのに(恐らくDRAMのリフレッシュ周りだろうとは思っているのですが、)別の回路に移るというのは、安易な姿勢だとは思いますが、Z80の知識がないので仕方がないと自分を納得させています。

この回路はFM-7/New7/77用として設計されており、第1作にはなかった6809とZ80を切り替えるためにアドレス$FD05をアクセスする際の対応やリフレッシュ回路もあり、動作が期待できましたが、実際にあっけなく動作しました。
(ということで第3作として予定していた「F-BASIC解析マニュアル」中の回路はKiCadで書き上げて準備してありましたが、製作の必要はなさそうです。)

回路ですが、ほぼI/O誌の回路図のとおりで、私が変更したのはLS244をLS541に置き換えたのと、Z80がアクセスされたときに点灯するLEDを追加した部分だけですので、回路図を載せるのは控えておきます。

製作したZ80カードです。10㎝x8㎝に収まっています。

Z80カード表面


Z80カード裏面

動作している様子です。(余計なものが写っていますが...)
左の基板は同時に製作した修正版FDCカードです。
Step信号2倍化回路を通して2DDのFDD(TEAC FD-235HG)を使用しています。


動作全景


両カードのアップ


FM-CP/Mも正常に動作しています。

FM-CP/Mの起動画面


FDCカードも手直しをしました。


前作のミスを修正したFDCカードです。


FDCカード


今度はちゃんと裏面からFDDへのケーブルのコネクタを出しています。
しかし、今回もミスがあり、パターンカットは不要でしたが、GNDへのジャンパの追加が2本必要でした...(ちゃんと見直しをしたつもりでしたが、ダメですね。)
でも簡単な修正ですので、基板はこれで完成とします。

FDCカード裏面



ということで、手持ちの純正CP/M基板は温存して、以前から所有していながらほとんど使用していなかったCP/Mを安心して使えるようになりましたので、多少Z80への興味が出てきたこともあり、CP/MのBIOSを自分で書いてみようなどと(無謀ですね!)考えています。

どうやらZ80側では必要なパラメータを6809に渡して、実際の処理は6809にさせれば良いようですので、これならできるかななどと甘いことを考えています。
参考資料としては、中日電工さんのZ80ワンボードマイコン(ND80Z3.5 上の動作全景写真の左上に映っています!)と互換CP/Mシステムを所有しておりますので、2012年の互換CP/M開発当時のブログを読みながら、ND80Z3.5上にCP/Mシステムを構築するという試みをなぞっているところです。
BIOSが作れれば、CP/M本体のソースは公開されていますので(上記ブログによれば何ヶ所かバグがあるようですが)、自分用のCP/Mができあがることになります。
いつになるかは全く分かりませんが、できましたらブログで紹介させていただきます。

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年1月23日木曜日

FM-7用のFDCカードのプリント基板化完了

FM-7用のFDCカードをプリント基板化しました。


2019年8月26日のブログ「FM77用の拡張I/Oボード、ROM/RAMディスクボードのプリント基板化が完了」の末尾で紹介しました、手配線のFM-7用FDCカードですが、プリント基板化し、ようやく動作確認ができました。

いつものようにいくつかのドジをしてしまい、しなくても良い回り道をしましたが、現在は無事に動作しております。

まず回路図を示します。
2019年10月26日のブログ「FM-7でPC用のフロッピードライブを使う」で示した回路には一個所間違いがありましたので訂正してあります。(Q,E,RW信号からWE信号を作るところです。)
また、Step信号の2倍化回路を追加してあります。


回路図(StepDoubler回路付き)


製作した基板を以下に示します。
およそ12cmx8cmのサイズに計21個のICを何とか収めることができました。
中央の40ピンICがFDCのMB8877A、その右上の8ピンICがデータセパレータの9216B、基板右上隅の8ピンICがStepDoubler用のATtiny85で、その右のスイッチはそのStepDoubler回路のバイパススイッチです。
(ミスのある基板ですので、試作ということで34ピンコネクタの代わりにボックスコネクタを使用したり、FDD用の電源として0.1uのパスコン用の穴にピンを立てて取り出したり、修正をICの足を切断して表面で配線したりしていますので見苦しいですが...)


FM-7用FDCカード


回路のミスのみでなく、FDD用の34ピンコネクタを裏側ではなく表側に配置してしまったり、FDD用の電源コネクタを忘れたりしています。(こんな基板を10枚も作ってしまいました...)
全くダメな基板というわけでもなく、多少の修正で動作するのでまあ良しとします。

もう一度、これらを修正し、FDD用の電源コネクタを追加した基板を作成中です。
このカードのみで普通の2Dのドライブ(あるいはDOS用の2HD/2DDドライブ)を4台まで接続できます。(もちろん、各ドライブにはReady信号を生成する回路が必要ですが。)

一度はもうFM-7ではFDDを使うのはやめようと決めましたし、FDを使わない工夫をされている方々がおられますので(「思い付きハードでソフトに七転八倒」さん、「ysflight.com」さん、「日本橋電気街徘徊日誌」さんなど)、その方々のお知恵を拝借すれば、あえてクラシックなFDDを使う必要もないのですが、大昔、手配線で苦労して製作したFDCカードですので、プリント基板化し、資料として残すことができて満足です。


2019年12月31日火曜日

FM-7でPC用のフロッピードライブを使う(その後の訂正・補足)

前回の報告の一部訂正と動作したFDDが増えたという報告です


前回(10月26日)のブログでは動作するFDDはTEAC FD-235HGのみですと書きましたが、その後、報告の内容に間違いがあることに気づきました。

それは、使用したFDCがMB8877AなのでSTEP信号は正論理であるのに、FM77AV40SXのSTEP信号を観測した際に負論理だったので、STEP信号が負論理であると思い込んでしまったことです。
観測したSTEP信号はFDCの出力端子ではなくFDDへの入力端子でしたのに、完全な勘違いでした。
正しいSTEP信号

STEP信号の2倍化回路はFDCの出力直後に入れていますので、正論理のSTEP信号を処理することになります。

ATtiny85のプログラムを信号の立ち上がりで起動するように訂正し、さらに、パルス幅tとパルス間隔をFM77AV40SXのSTEP信号のパルス幅(1.5ms)とパルス間隔(4.5ms)に合わせました。
(割り込みルーチン内でタイマーによるdelay関数を使用しているのは気になるところですが、STEP信号による割り込み以外は生じないということで大丈夫だろうと判断しています。)

また、端子変換やREADY信号生成回路として、前回はK-ichi's memoさんの「MSXでPC用FDDを使う」中のPIC12F675を用いた回路を使用しましたが、FM77AV40SXで常用しているてきとーに。さんの「FM77AV20/40以降のFDD修理というか交換」中のダイオード1個による簡便な変換回路も製作し、両変換回路による違いも確認しました。


実験風景


その結果、手持ちの13台のFDDで確認した結果は以下のようになりました。
(1)両変換回路で動作
 TEAC FD-235HG (7304,7487,8386) 
 SONY MPF920                             
 YE-DATA YD-702D (6637D) 
 MITSUMI D353M3D (3110 2台)
(2)ダイオード1個の変換回路のみで動作
 MITSUMI D353M3 (2552,2553)
(3)PIC12F675の変換回路のみで動作
 MITSUMI D353M3D (4340,6250 2台)
 MITSUMI D359M3D (4372)

何故かMITSUMIのFDDは末尾にDが付いているものは3110のみが動作しましたが、他はどちらかでしか動作しませんでした。設定が異なるのかもしれませんが、MITSUMIのマニュアルが入手できていませんので原因は不明です。
この結果を見る限り、この用途で使う場合にはMITSUMIのFDDは避けた方が良いようです。

運用上の問題ですが、2DDドライブでディスクを初期化しても2Dドライブのヘッド幅の半分しか初期化できないので、2DDドライブで作成したディスクは2Dドライブでは読み書きできない2DDドライブ専用のディスクになるという問題があります。
(全てが2DDドライブのシステムで完結していれば良いのですが、2Dのシステムとの兼用を考えるとこれがネックとなります。)

この問題を解決するために、FM77AV1を入手し、ドライブ2として手持ちの5インチのYD-274(古い!)を接続し、5インチのF-BASICシステムディスクからAV1の3.5インチの2Dドライブで初期化した2Dディスクにシステムをコピーし、元ディスクとしました。
また、上記の実験で使用した2DDドライブで使用するフロッピーもまずAV1の2Dドライブで初期化したものを使用しました。

2019年10月26日土曜日

FM-7でPC用のフロッピードライブを使う

PC用のFDD(2HD,2DD)がFM-7で2Dドライブとして使用できるという報告です


8月26日のブログ「FM77用の拡張I/Oボード、ROM/RAMディスクボードのプリント基板化が完了」の末尾に、プリント基板化を考えているカードとして、MB8877A使用のFDC基板を紹介しました。
そこでは、STEP信号を2倍化すれば、FM-7にPC用のFDD(2DDドライブ)が接続できるのではないかと書きました。

2倍化するための回路をあれこれと考えていたのですが、ディスクリート回路ではどうも無理なようでしたので、マイコンで実現してみることにしました。
考え方としては、MB8877AからSTEP信号が1つ出たら、適当な間隔をあけて2つのSTEP信号を出せば良いので、マイコンなら簡単そうです。

マイコンとしてPS/2キーボード変換器で使ったことのあるATtiny85を用いることにしました。これなら8ピンとコンパクトですので、FDCカードに載りそうですので。
ATtiny85のINT0割り込みはPB2なので、PB2にSTEP信号を入れ、その立ち下がりで割り込みを発生させて、割り込みルーチン内で2つの信号を出すことになります。

回路図です


参考にしたTEAC FD-235HGのマニュアルによると、STEP信号の間隔は最小3ms(方向転換後は4ms?)で、幅は特に規定されていないようですので、下図のように、幅10us、間隔4msで、2つ目の信号の後は4msの待ち時間を入れました。
(FM-7用のドライブのステップレートは6msまたは20msのようですので、本当は、全体を6ms以内に抑えた方が良いのでしょうが、とりあえずの値ということで...)




STEP信号です

ATtiny85のmain.c部のプログラムを以下に示します。

/*
 * StepDoubler.c
 *
 * STEP PULSE for FDD changes to double pulse
 * input pulse
 * -> output first pulse (pulse width is 10us)
 * wait 4ms
 * output second pulse (pulse width is 10us)
 * wait 4ms
 *
 * PORTB bit2:input pulse, bit4:output pulse (double pulse)
 *
 * Original Version '2019.10.25
 * Copyright (C) by Old68fun
 */ 

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#define F_CPU 8000000UL

void setup(void)
{
MCUSR = 0x00; /* MCUSRのWDRFを解除(0) */
WDTCR |= (1<<WDCE)|(1<<WDE); /* WDCEとWDEに論理1書き込み */
WDTCR = 0x00; /* ウォッチドッグ禁止 */

DDRB = 0b11111011; /* PORTB bit2:input, bit4:output */
PORTB = 0x00; /* PORTB not pull up */
PORTB |= _BV(2); /* bit 2:pull up */
PORTB |= _BV(4); /* bit 4:pull up */

MCUCR = (1 << ISC01) | (0 << ISC00); /* INT0 interrupt on falling edge */
GIMSK = (1 << INT0); /* Enable INT0 interrupt */
sei();
}

ISR (INT0_vect)
{
// cli();

// first pulse
PORTB &= ~_BV(4); // DATA bit=L
_delay_us(10);
PORTB |= _BV(4); // DATA bit=H
_delay_ms(4);
// second pulse
PORTB &= ~_BV(4); // DATA bit=L
_delay_us(10);
PORTB |= _BV(4); // DATA bit=H
_delay_ms(4);

// sei();

}

int main(void)
{

setup();

while(1) {
}
return 0;
}


FDCの回路図を示します。
【2020年1月21日追記】この回路には一個所間違いがあります。また、動作している実機と同じであることの確認をまだしていないものです。

FM_FDC回路図です(動作確認はまだです)

MB8877AのSTEP出力(ピン15)と7438の入力端子の間に上記のATtiny85を挿入して改造は完了です。

動作中の様子を示します。確かに2Dディスクが読めて、F-BASIC 3.0が起動しています。

                                        
動作中の様子です


FDDの電源も臨時にATtiny85基板から取っています。

基板の右上の小基板がATtiny85です


2DDドライブとしてMITSUMIのD359M3Dを使用しました。
【'2019.10.27追記】末尾に使用可能ドライブについて追記しました。

使用したFDDはMITSUMIのD359M3Dです

なお、FD用ケーブルとFDDとの接続部での端子変換やREADY信号生成には、以前、FM77AV40SX用にと製作したK-ichi's memoさんの「MSXでPC用FDDを使う」中のPIC12F675を用いた回路を使わせていただきました。蛇足ですが、現在はFM77AV40SXにはてきとーに。さんの「FM77AV20/40以降のFDD修理というか交換」中のダイオード1個による簡便な変換回路を用いています。


端子変換、READY信号生成部です


横から見た様子です


手配線の基板なのでIC数はこれで精一杯でしたが、プリント基板化すればATtiny85も収まりそうです。

FDC基板の全景です

これで、大昔に製作したFDCカードをプリント基板化する動機付けができました。
回路図をKiCadで書き上げたところで止まっていましたが、これから基板パターンを仕上げようと思います。

【'2019.10.27追記】ドライブについての情報を追加します。
使用したドライブ
  TEAC FD-235HG, YE-DATA YD-702D, MITSUMI D359M3D, D353M3D
使用可能なドライブ
  TEAC FD-235HG のみFILES,LOAD,SAVEが可能でした。
他のドライブのうち YD-702D, D359M3DはDISK-BASICが起動し、FILES, LOADは可能ですが、SAVEができません。D353M3DはDISK-BASICの起動すらしませんでした。

DATASHEETが入手できたのは FD-235HG, YD-702D のみですが、STEPパルス幅は0.8us, 1.0us(最小値)、パルス間隔は3ms(4ms), 3ms(最小値)でした。
パルス幅を2us~10us、パルス間隔を3ms~5msに変えてみましたが上記の結果は変わりませんでした。
ということで、現在のところ、対応ドライブはTEACのFD-235HGのみということになります。


【'2019.11.01追記】FM77AV40SXのSTEP信号を実測してみました。
ディスクをアクセスしているときのSTEP信号は下図のようでした。

FM77AV40SXのSTEP信号

何とSTEP信号の幅はusのオーダーではなく、1.5msもありました。2つ目のSTEP信号は4.5ms後に出ていますが、FDDの規格では3ms以上ですから余裕があります。次のSTEP信号までの間隔は20msですが、これはFM-7のSTEP間隔20msという規格に合わせてあるのでしょうか。