ラベル フロッピィドライブ の投稿を表示しています。 すべての投稿を表示
ラベル フロッピィドライブ の投稿を表示しています。 すべての投稿を表示

2022年10月29日土曜日

FM77AV40SX用GOTEKのドライブ番号切り替えケーブルの製作

 FM77AV40SXのGOTEKのドライブ番号を0または2に切り替えられるようにしました

今までは、ドライブ0がGOTEK、1がFDDという形で使用してきました。ほとんどの場合はこれで問題はないのですが、時にはFDから起動したい場合もあります。しかし、ドライブ0がGOTEKだと、ドライブ1にFDを入れてもFDからは起動してくれないのです。

しかたなくドライブ0をFDに戻してみたのですが、GOTEKが使えないと結構不便です。ということで、GOTEKを再度追加することにしたのですが、以前、FM-7用のGOTEKを設置した際にはGOTEKとFDDのドライブ番号を互いに入れ替えることができるようにしたので(ドライブナンバー切替用ケーブルの製作(2021.02.02))、SXについてもドライブ番号を切り替えられるようにケーブルを作成することにしました。

最も簡単な形は、ドライブ1はそのままで、ドライブ0のFDDとGOTEKの番号を0と2に切り替える形式でしたので、そのような機能を持つケーブルを製作しました。

下の画像が製作したケーブルと追加したGOTEKです。GOTEKは98用のFDD用のケースを流用しており、パネルについていた2HD/2DD切り替え用のスイッチをそのままFDDとGOTEKの切り替えスイッチとして使用しています。


製作したケーブルとGOTEK


製作したケーブルの接続図を示します。FM-7用の場合とほとんど同じです。


ケーブル結線図



装着した状態を示します。SXからのケーブルのドライブ0用のコネクタに作成したケーブルを接続し、中間のコネクタをFDDに装着して、端のオスコネクタにGOTEKからのケーブルを接続しています。
ちなみに右上の基板はFT245使用の高速通信カードで、左の基板は最近製作した512KBのRAMカードです。



装着の様子


動作中の様子です。押しボタンが戻っている状態でFDDが、押し込んだ状態でGOTEKがドライブ0になります。0でない方のドライブは2になって、合計3台構成となります。



動作中


以上で、通常はGOTEKから起動して運用し、必要な場合は切り替えてFDから起動することができるようになりました。また、FD同士のコピーも楽になりました。



2021年2月2日火曜日

ドライブナンバー切替用ケーブルの製作

 ケーブルを加工してフロッピィドライブの0と1の切替をスイッチで行えるようにしました


私が使用している3台の8ビットパソコンはドライブ0を全てGOTEKに変更してあり、便利に使用できているのですが、時にはフロッピィから起動したい場合もあります。

常用しているFM77AV40SXはどのドライブからでも起動できるので良いのですが、残りの2台(FM77AV1,FM-7)にはそういう機能はありません。

FM-7用のFDDはPC-98用のケースに収めており、前面パネルにあったスイッチをドライブNo切替用に利用できましたが、そのためにGOTEKやPC用FDDからケーブルを引き出す必要がありました。(GOTEKには直接ハンダ付けをしました)


FM-7用FDD

しかし、FM77AV1の2Dドライブは基板上のスライドスイッチでドライブNoを切り替えるようになっており、ケーブルを引き出すのは容易ではありません。

そこで、ドライブ本体はそのままで、接続しているフラットケーブルを加工し、切替スイッチを追加することでドライブNoを変更できるようにしました。


下図がフラットケーブルの結線図です。

前提として、GOTEKがDRV0に、PC用FDDがDRV1に設定してありますので、GOTEKにはピン10にFDCからの10番か12番が、PC用FDDにはピン12に10番か12番が接続されることになります。(PC用FDDのピン10はN.C.ですので、結線されていてもいなくても無関係です。)


ケーブル結線図

実際のフラットケーブルとスイッチです。

有り合わせのものを利用したので、実際に装着してみたら長すぎました。。。

画像左側にFDCへのコネクタがあります。スイッチの下のコネクタがDRV0 用、右端のコネクタがDRV1 用です。


加工したフラットケーブル


その加工部のアップ

FM77AV1に装着した様子です。プッシュボタンはGOTEKの上に接着剤で固定しました。

プッシュボタンを押し込むとDRV0:GOTEK,DRV1:PC用FDDに設定され、ボタンを戻すとその逆になります。


FM77AV1に装着した様子

これで、ごくまれにあるフロッピィから起動させたい場合でも、77AVを分解しなくてもよくなりました。


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の故障等の心配をすることなく、安心して使用し続けることができます。(と言っても、フロッピーそのものがいつまで使用できるかが問題ですが...)

2019年8月26日月曜日

FM77用の拡張I/Oボード、ROM/RAMディスクボードのプリント基板化が完了

6月12日のブログで紹介しましたFM77用の拡張I/Oボード、ROM/RAMディスクボードのプリント基板が完成しました


拡張I/Oボードの方は比較的単純な回路なのですが、ROM/RAMディスクボードはソフトに合わせて回路をかなり変更したのに、変更記録を完全に取っていなかったこともあり、製作時の記憶をなかなか思い出せず、KiCadの回路図に起こすのにかなり苦労しました。

例によって、勘違いによるミスもあり、修正を余儀なくされましたが、そう大きな修正でもなく何とか修正できました。
今回のミスで最大のものは同じピン数のコネクタで番号配置の異なるものを部品指定してしまったので、配線がでたらめになってしまったことでした。

でも、格安基板の10cmx10cmまでというサイズに収めるためにかなり無理をしましたがなんとか収まったので良しとします。

制作した基板を示します。
右が拡張I/Oボードで、左がROM/RAMボードです。

右:拡張I/Oボード、左:ROM/RAMボード

下画像のように2枚を重ねた状態で使用できます。


重ねた状態

それぞれの基板の回路図を示します。

拡張I/Oボード


ROM/RAMボード


それぞれの基板の部品配置です。
(1)拡張I/Oボード
FM77AVの拡張ポート(アンフェノール50P)に接続します。基板上の68B21にはAE-FT245RL、68B50にはAE-FT232RLとMAX232が接続されており、他に68B40(PTM)があります。(AE-FT232RLとMAX232は排他使用です。)


拡張I/Oボードの部品配置

(2)ROM/RAMボード
68B21を1個のみで4MbitのROMとRAMを制御しています。
ROMとRAMのペアが2組あり、それぞれスイッチで切り替えます。私はFLEX9システムとOS-9システムとで使用しています。RAMはバッテリバックアップされています。


ROM/RAMボードの部品配置

私の使用機器はFM77AV40SXなので、拡張ポートはアンフェノール50P ですので、途中で50Pフラットケーブルに変換して接続しています。
基板の入力を50Pフラットケーブルにしたのは、FM-7でも使用できるようにと考えたからですが、残念ながら、FM-7の拡張ポートには2.5MHzのクロックが出ていませんし、ピン配置等も異なりますので、そのままでは接続できません。
むしろFM-7の場合には、32Pの拡張コネクタの方が必要な信号が揃っていますので、こちらに接続するべきかもしれません。


左がFM77からの50Pケーブル、右がWindows機へのUSBケーブル

これらの基板のみで使用する場合は、本体のドライブが0と1で、ROMがドライブ2、RAMがドライブ3という形で使用することになります。
FLEX9やOS-9のディスクドライブルーチンをフックして、ドライブ番号が2と3の時のみROMやRAMをアクセスするように切り替えるルーチンを追加します。

さらにWindows機上の仮想ドライブを使用する場合には、ドライブ3や2を仮想ドライブに切り替えるルーチンを使用します。使用するFlexDrvWin.exeは以前公開したものがそのまま使えます。

現在は、F-BASICでも使用できるように、FbasDrvWin.exeを作りましたので、F-BASIC側のディスクドライブルーチンをフックするプログラムを作っているところです。



[蛇足]+++++++++++++++++++++++++++++++++++++++++++++
手持ちの過去の製作物でプリント基板化したいものとしては、もう一つ、数十年前に製作したFM-7用のFDD基板があります。


MB8877A使用のFDD基板(表面)

長い間、この基板の先に5インチ2台と3.5インチ2台のフロッピードライブを計4台接続して使用していました。

同(裏面)

今となってはドライブも処分してしまいましたし、特にプリント基板化して製作する必要もないのですが、捨てるのもためらわれるので未だに手元に置いてありますので、プリント基板化して資料として保管しておいた方が良いかなと思うわけですが、迷っている理由が2つあります。
(1)ICが20個もあるので格安基板の10cmx10cmには収まりそうもないのでコストがかかりそう。(恐らく12cmx8cm位になりそう)
(2)昔の製作物なのでデータセパレータとして、アナログでなくデジタルセパレータのFDC9216Bを使用しているので、現在のものよりも性能は落ちる。(特に不都合はないが)
ということで、FDC9216BとMB8877Aは予備も複数保管してあるのですが、KiCadで回路図を書き上げたところで止まっています。
アイディアとしては、現在普通に出回っているパソコン用の3.5インチFDD(2DD,2HD)をFM-7で使用できる基板にすれば使い道があるかなと。STEP信号を2倍にする回路を付加すればできそうな気がするのですが、まだきちんと追及していません。



2019年6月12日水曜日

FM77用の拡張IOボード、ROM/RAMディスクボード

FM77用の拡張ボードを紹介します


最近はソフトの手直しばかりで、とりたてて紹介するものがありません。そこで、以前製作して今でも使用しているFM77用の拡張ボードを紹介します。
このボードのために制作した、Windows上で仮想ドライブを実現するソフトFlexDrvWin.exeがこのブログのシングルボードマイコンを製作するベースとなったと言えるものです。

製作したのは、FM77AV40SX用のIO拡張ボードとROM/RAMディスクボードです。
私はFM77AV40SXでFLEX09とOS-9Level2を使用しているのですが、2DDフロッピーはかなり遅く、また、ドライブもメディアもいつまで使えるのかも分かりませんので、何とかFDDと縁を切りたいと思っていました。

色々と考慮した結果、手持ちのFM-7とFM77AV40SXに共通して装備されている50ピンのIO拡張コネクタを利用して、まずIO拡張ボードを作り、それに接続する形のROM/RAMディスクを製作することとしました。

製作したIOボードとROM/RAMボードを下に示します。

下がIO拡張ボード、上がROM/RAMボード

上部の空ソケットには512KBのSRAMを装着してRAMディスクとして利用していましたが、後述のようにWindows上の仮想ドライブに切り替えたので不要となりました。

左がIO拡張ボード、右がROM/RAMボード

今では、こんな配線をする気力はもうないかも...

それぞれの裏面配線の様子



ROM/RAMボードの構成を下に示します。
RAM/ROMボードの構成


6821によるROM/RAMディスクのアクセス方法を下に示します。
6821によるTrk,Sct番号のセット方法


IO拡張ボードには、6821PIA、6850ACIA、6840PTMが搭載してあり、6850にはRS-232Cシリアルインターフェースが、6821にはFT-245パラレルインタフェースが接続してあります。どちらも38400baudです。
ROM/RAMボードには、512KBのROMとRAMのペアが2組あり、それらを6821PIAが制御しています。RAMはバッテリバックアップしてあります。
ROM/RAMディスクの容量は
 4Mbit(512KB)では Trk 64、Sct 32 で(64-1)*32=2016セクタ
 2Mbit(256KB)では Trk 32、Sct 32 で(32-1)*32=  992セクタ
 1Mbit(128KB)では Trk 16、Sct 32 で(16-1)*32=  480セクタ
となります。

2組あるのは、FLEX09用とOS-9用で、それぞれをスイッチで切り替えて使用します。
(端にあるソケットはROMライターですが、未完成です。)

記録を見ると、2014年12月末から作り始めて2015年3月初めにハードは完成していますが、実用になる制御ソフトの完成には年末近くまでかかっています。

最初はROM/RAMディスクとして使用


FLEXでは実質4台までしかドライブが接続できないので、
ドライブ0:内蔵ドライブ0
ドライブ1:内蔵ドライブ1
ドライブ2:ROMディスク
ドライブ3:RAMディスク
として利用することになります。
内蔵ドライブ0のシステムディスクで起動し、その後、システムドライブを2に、ワークドライブを3に切り替えれば、フロッピーを使用せずに済みますので、結構快適になりました。

最初はシリアル/パラレルのインターフェースは実装していなかったのですが、ROM/RAMディスクのみでは結局、データ保存にフロッピーが必要なので、Windows上の仮想ドライブも追加することにしました。
FT-245モジュールを搭載しているのは、Windows上の仮想ドライブとパラレルインターフェースで通信したかったからで、作る前は、シリアルインターフェースでは遅くて実用にならないからパラレルでと思っていたのですが、実際に製作してみると、確かに転送速度は10倍以上違うのですが、DISKの読み書きに時間がかかるのでトータルの時間は少し速い程度であると分かりましたので、現在はシリアルも使用しています。

その時に制作したのが、6809シングルボードコンピュータでWindows上の仮想ドライブを実現しているFlexDrvWin.exeというソフトの原型で、このソフトのドライブ3にDSKファイルをセットすればFM77AV40SX上のFLEX09で読み書きできます。(OS-9の場合は別ソフトのOS9DrvWin.exeを使います。)

ドライブ3をRAMディスクからWindows上の仮想ドライブに変更


動作中の様子を示します。
手前がFM77AV40SXのディスプレイとキーボード、後方がWindows機です。
後方右上のWindows上のFlexWinDrvの画面で分かるように、ドライブ3にセットした仮想ディスクを読んでいます。


動作中の様子

画面表示


この拡張ボードによってデータ等はフロッピーでなくWindows上のファイルとして保存できるようになったのですが、起動時はフロッピーが必要です。これを解決するためにはフロッピーエミュレータが必要ですが、まだ製作できていません。。。

ドライブ2も仮想ドライブに変更


現在は、FLEX09システムのドライバールーチンをさらに書き換えて、ドライブ3だけでなく2もWindows上の仮想ドライブに設定変更をしていますので、FlexWinDrvのドライブ2と3に仮想ディスクをセットして使用しています。(結局、ROMディスクもRAMディスクも使わなくなってしまった。。。)

[蛇足]画像で分かりますように、FM77AV40SXの純正キーボードは使用せず、大切に保管してあります。代わりに、自作のキーコード変換器を接続したPS/2キーボードを使用しています。さらに、内蔵ドライブも取り外して保管し、代わりに一般的なDOS/V機用のFDDを装着しています。
自作のキーコード変換器は下の画像のものです。
ATtiny85を使用したハードは簡単なものです。ソフトには結構苦労しましたが、FM77AVのスキャンコードをですくまさんが調べて公開してくださっていたので、とても助かりました。感謝いたします。

自作のキーコード変換器


資料の整理を兼ねて、手配線のボードをプリント基板化しようと考えています。無事に完成したら公開するつもりです。