ラベル RAMディスク の投稿を表示しています。 すべての投稿を表示
ラベル RAMディスク の投稿を表示しています。 すべての投稿を表示

2023年10月23日月曜日

FT245通信カードの新基板の製作

 FT245通信カードの新基板を製作しました

【2024年1月24日】末尾にOneDriveを追加して、RAMディスクのない従来のFT245カード用のドライバ一式を上げました。

ブログ「思いつきハードでソフトに七転八倒(https://vehwk3yxv7hw.blog.fc2.com/blog-date-202206.html)」のshujiakitaさんの発案・製作によるFM-7/77用の「FT245使用の高速通信カード」と「RAMディスクカード」について、プリント基板を作成したり、両カードの合体カードを製作したりしながら、その都度それらをブログで紹介してきました。

FT245通信カード用のディスクイメージ転送専用ソフトhttps://flexonsbd.blogspot.com/2023/01/ft245.html

FT245通信カードとRAMディスクカードの合体カードの製作https://flexonsbd.blogspot.com/2022/06/ft245ram.html

FT245高速通信カードの改造の試み
https://flexonsbd.blogspot.com/2022/04/ft245.html

FM-7用の512KB RAMディスクカードの紹介
https://flexonsbd.blogspot.com/2022/02/fm-7512kb-ram.html

高速通信カードFT245の使い方の紹介
https://flexonsbd.blogspot.com/2022/02/ft245.html

FT-245カード用の転送ソフトの使い方
https://flexonsbd.blogspot.com/2021/04/ft-245.html

FT-245カード用の高機能な転送ソフト
https://flexonsbd.blogspot.com/2021/01/ft-245.html

Ndittを使用しないでGOTEK用のHFEファイルを作成する(その3)https://flexonsbd.blogspot.com/2020/12/ndittgotekhfe_11.html


振り返ってみますと、2020年12月11日のブログから始まって、上記のように8回も紹介していますが、それだけ私にとっても非常に有用なツールであり手放せないものになっています。


今回製作したカードの改善点

今回新たに基板を作成することにしました。回路には見直すところはありませんでしたが、念のために電源ラインを強化すること、FT245カードにはコネクタの取り付け穴の追加と、合体基板で採用したTXE#をソフトで読めるようにする切り替えスイッチの追加を行いました。

製作した3種のカードです。


製作したカード3種


(1)上左のカード:オリジナルのカードで秋月電子製のFT245モジュールを使用しています。

(2)上右のカード:オリジナルのFT245モジュールをFT245RLチップに置き換えたものです。マイクロUSBケーブルも使用できるようにマイクロコネクタも装備しています。

(3)下のカード:(2)にRAMディスクカードを合体させたものです。(2)と同様にマイクロコネクタも装備しています。


使用するドライブソフト

使用するドライブソフトは従来のものと変わりませんが、メニューを多少変更しました。

(1)shujiakitaさん作成の高機能ソフト(転送機能のみでなく様々な機能があります)

FM-7側:メニューソフト:FM7FDRAM(従来のFM7FDUIXのメニューを多少変えましたのでFM7FDRAMと改名)、機械語サブプログラム:FDIMGFMX, XRAMDK77

Windows側:FDDIMG_RW77.exe

(2)私作成の単機能ソフト(使いやすさを求めて転送機能に特化)

FM-7側:メニューソフト:FT245DRV、機械語サブプログラムFTDRV11o

Windows側:ft245drv.exe


以上、FT245通信カードを多少手直しして製作したという紹介でした。

ドライブソフト一式をOneDriveに上げておきます。


【2024年1月24日追加】RAMディスクのない従来のFT245カード用のソフト(Windows側:FDDIMG_RW77.exe、FM-7側:FM7FDUI5, FDIMGFM2)をOneDriveに上げました。なお、FM7FDUI5, FDDIMGFM2はFB_TRANS.DATの中にも入れてあります。



2021年7月8日木曜日

FM-7/77用の改良版I/O拡張基板用のF-BASICドライバを作成

FM-7/77用のI/O拡張基板用にF-BASIC用のドライブソフトを作成しました

6月10日に報告した「FM-7/77用のI/O拡張基板を改良しました」ではF-BASIC用としては使用しないようなことを書きましたが、Flex9やOS-9では使えるのにF-BASICでは使えないというのはつまらないので、F-BASIC用のドライブソフトも作成することにしました。


F-BASIC用のソケットも実装しました

元にしたのは、2019年6月12日の「FM77用の拡張IOボード、ROM/RAMディスクボード」でのFLEX9版の拡張ROM/RAMドライブソフトと、2019年9月25日の「FM-7/77のF-BASIC用の仮想ドライブ構築ソフトが完成」での裏RAMを使用したWindows上の仮想ディスクのドライブソフトの2つで、この2つのソフトを合体させて裏RAMに置けば良いだろうと考えました。

両方とも動作実績がありますので、それ程苦労することはないだろうと思って始めたのですが、いつものようにドジをしたせいで見込み以上に時間もかかりながらも、何とか動くものができました。未だ動作に納得がいかない点があるのですが、とりあえずここまでをまとめておきます。


制作したソフト

作成したのは、FM-7/77で動作させるもので

(1)RDSKWIN : ROM/RAMディスク&Windows仮想ディスクのドライブソフト

(2)RRWCHG : ROM/RAMディスクとWindows仮想ディスクを切り替えるソフト

(3)RAMFMTFB : ドライブ3のRAMディスクを初期化するソフト

の3本です。Windows側の仮想ディスク構築ソフトは以前のものをそのまま使用しています。


使用手順

使い方は次のようです。

1.FM-7を起動して、ドライブ数に4を指定する。

2.LOADM "RDSKWIN",,R でFM-7側のドライブソフトを起動する。

3.Windows側で FbasDrvWin.exe を起動し、ドライブ2と3にF-BASICのイメージファイル(.77, .88, .DSK)をセットしておく。


手順1.2.3.ではI/Oエラーとなる

【注】この状態で、ドライブ2はROMディスク、3はRAMディスクに設定されているが、なぜか FILES "2:やFILES "3: を実行しても Device I/O Error が出るので、次の操作を行う。

4.LOADM "RRWCHG",,R を起動するとドライブ2がROM、3がRAMと表示されるが、2または3を入力すると該当のドライブがWindows DRVに切り替わるので、その後 0を入力して終了する。



Windows仮想ディスクに切り替え

5.FILES "2:またはFILES "3:を実行する。Windows仮想ディスクを使用する場合はこの状態で使用する。

Files "3: でWindows仮想ディスクが読めています

Windows仮想ディスクを読んだ


Windows側でのセクタを読んでいる様子です

Windows画面の表示

6.ROM/RAMディスクを使用する場合は、再度 LOADM "RRWCHG",,R を実行してドライブ2または3をROMやRAMに切り替えて使用する。

今度はちゃんとRAMディスクが読めています。


RAMディスクが読めている


追加:最初にRAMディスクを使用するときには、LOADM "RAMFMTFM",,R を実行して初期化をしておく。バッテリバックアップされているので、電源を切ってもデータは保持されている。

具体的な使い方ですが、ROMディスクにはF-BASICのシステム等を入れておき、必要ならRAMディスクに転送してRAMディスク上でアセンブルやコンパイルを実行するという形でROM/RAMディスクを使用し、処理結果はWindows仮想ディスクに転送してWindowsで保存するというのが便利かなと思います。


未解決の点

以上ですが、手順1,2,3のみで良いはずなのに、最初のみ手順4で一度はWindows仮想ディスクをReadする必要があるのですが、その理由はまだ分かっていません。

RDSKWIN のソースを見ていただければ分かりますが、ROM/RAM用のRead1, Write1とWindows仮想ディスク用のRead2, Write2とは全く別ルーチンとなっているのにと思いますが、ワークエリアの設定に問題があるのかもしれません。

作成した3つのソフトのソースと以前から使用しているFbasDrvWin.exe(バイナリ)をOneDriveに上げておきますので、アドバイス等ありましたらよろしくお願いします。


2021年6月10日木曜日

FM-7/77用のI/O拡張基板を改良しました

FM77用の拡張I/Oボードを改良してFM-7でも使えるようにしました

 

2019年6月19日のブログ「FM77用の拡張IOボード、ROM/RAMディスクボード」で紹介した拡張I/Oボードですが、2019年8月26日「FM77用の拡張I/Oボード、ROM/RAMディスクボードのプリント基板化が完了」で紹介しましたように、プリント基板化してFM77AV40SXに接続して使用していました。

その後、使用していなかったFM-7を再び使用する機会が増え、FM-7でもROM/RAMディスクを使いたくなりましたが、残念ながらFM-7背面の50P拡張コネクタには2.45MHzのクロックが出ておりませんので、最初は32Pスロットを使用して変換基板を経由して使用していました。しかし32Pスロットは2個しかないので、やはり50P拡張コネクタを使うということにして、間に挟んでいる変換基板(FM77とFM-7の拡張コネクタはピン配置が異なるので変換が必要)上にクロック生成回路を追加して使用していました。

今回、回路を見直して、ほとんど使用していなかったFT-232モジュール部を取り外せば拡張I/Oボード上にクロック発生回路を追加できると考えて、基板を製作することにしました。


製作したI/O拡張ボード


回路図

実は、基板を製作した際に肝心の2.45MHzのクリスタルを入れ忘れており、裏面につけようかとか思いましたが、幸いにして並んでいるR2,R3の端子に直接接続すれば良いことが分かって、それ程見苦しくならずに済みました。(画像でも不自然さは感じないと思います...)




構成図



そもそも拡張I/Oボードの50P入力のピン配置をFM-7に合わせてしまえば変換基板も不要となるのですが、そうしなかったのは、この変換基板上に32Pスロットを増設してそこにFDCボードを装着して、全体を拡張BOXという形でケースに収めればすっきりすると考えたからです。ということで、以前製作した増設32Pスロット基板を34Pフラットケーブルを介して接続してみました。



左:変換基板、右:増設32Pスロット基板

左の変換基板の中央のコネクタにFM-7からの50Pケーブルを接続し、左のピンヘッダに拡張I/Oボードを接続します。右の34Pコネクタには増設32Pスロット基板を接続し、その上にFDC基板を装着します。

しかし、実際にFDCボードを装着して起動してみると、時々ですが起動に失敗します。恐らく接続に使用しているフラットケーブルが長すぎる(2本の50Pが計84㎝、34Pが30㎝程度と長い...)のだと思いますが、FDCボードまで装着するにはもう少し工夫が必要なようです。

とりあえず、当面は拡張I/Oボードとその上に重ねるROM/RAMボードのみで使用することになりそうです。

ということで、別途製作したROM/RAMボードと二段重ねにして使用している様子です。


ROM/RAMボードを上に重ねました


ROM/RAMは一組だけ実装


FM77AV40SXではFLEX9とOS-9を切り替えて使用できるようにROM/RAMを2組セットして使用していますが、FM-7ではFLEX9とF-BASICがメインになりそうで、しかもF-BASICはシステムドライブやワークドライブの指定はできないためROM/RAMはあまり利用価値がなく、Windows上の仮想ドライブの方を使うことになるということで、とりあえずROM/RAMはFLEX9用として一組だけ実装してあります。

以上、FM-7用の拡張I/Oボードの改良とROM/RAMボードの紹介でした。ドライブソフトはFLEX9用、F-BASIC用のどちらも以前紹介したものをほぼそのまま使用しています。


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のスキャンコードをですくまさんが調べて公開してくださっていたので、とても助かりました。感謝いたします。

自作のキーコード変換器


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