2022年2月12日土曜日

F-BASIC用のWindows版仮想ドライブ構築ソフトの改良

F-BASIC V3.0用のWindows版仮想ドライブ構築ソフトを手直ししました

【2022年2月16日追記あり】動作しないソフトがあることについて末尾に追記しました。

2021年7月8日のブログ「FM-7/77用の改良版I/O拡張基板用のF-BASICドライバを作成」で紹介した仮想ドライブ構築ソフトですが、ブログに書きましたような起動時の不具合があったことと、RS232Cカード使用のものだった点を改良しましたので報告します。

まず、起動時の不具合は初期化時に必要な表RAMと裏RAM間でのドライブ番号の連携を忘れていたのが原因でした。

次に、最近はほとんどRS232Cカードは使用しておらず、もっぱら「思い付きハードでソフトに七転八倒」さんが開発されたFT245カードを使用しているので、このカードに対応させることにしました。

FM-7側は元のRS232C用の1バイト送受信ルーチン(RCVCH,SNDCH)を2月11日のブログ「高速通信カードFT245の使い方の紹介」で説明したようなFT245用ルーチンに置き換え、WindowsPC用のFbasDrvWin.exeも同様に書き換えることでFT245にも対応したものができあがります。

FM-7側のドライバ RDSKWINF は裏RAMに常駐する関係で、FT245カード専用としてあります。(RS232Cカードの場合は以前紹介したWINDRVU7をそのまま使用できます。)

WindowsPC側の FbasDrvWin.exe はRS232Cカード、FT245カード兼用になっており、その切り替えは起動時に読み込む FbasDrvWin.ini ファイルにFTもしくはRSのどちらが記述されているかで行います。


FT245カードで動作している様子を示します。

WindowsPC側はFbasDrvWin.exeで、FM-7側は今回作成したRDSKWINFを実行しています。


FT245カードで動作

最上行に --- use FT245 Card と表示されています。

これで実ドライブ0,1に加えてWindows上の仮想ドライブ2,3が実ドライブと同じようにF-BASICから使用できます。加えて、Windows上のファイルをこの仮想ドライブ中のイメージファイルに書き込んだり、逆に読み出したりができますので、実ドライブとの間でのファイルのやり取りも自由にできることになります。


Windows上の動作画面

もちろん、RS232Cカードでも動作します。

WindowsPC側は同じくFbasDrvWin.exeで、FM-7側は以前作成したWINDRVU7を実行しています。38400baudで動作しています。





最上行に --- use RS232C Card と表示されています。
使い方はFT245カードの場合と全く同じです。


RS232Cカードでの動作画面


FT245カードとRS232Cカードの切り替えはFbasDrvWin.iniファイルの13行目で行います。FTと書けばFT245カード使用に、RSと書けばRS232Cカード使用に設定されます。


iniファイルの内容


以上で紹介した新版のFbasDrvWin.exe(Ver1.41)、FbasDrvWin.ini、FT245カード用のRDSKWINF、以前紹介したRS232Cカード用のWINDRVU7をOneDriveに上げておきます。(使い方の説明も含まれています。)

なお、RS232Cカード用のWINDRVU7のインストール及び使用法については2019年9月25日のブログ「FM-7/77のF-BASIC用の仮想ドライブ構築ソフトが完成」をご覧ください。


【2022年2月16日追記】

本ソフトはF-BASICのBIOSのディスク関連の8(RESTOR)、9(DWRITE)、10(DREAD)を置き換えていますので(8は単に無視)、BIOSを通さずにディスクファイルを扱っているソフトは正常に動作しません。

F-BASICのシステムディスク中の富士通製のユーティリティの特に機械語サブルーチンはBIOSを使用せずにROM内ルーチンを使用してディスクを扱っているので、殆どが正常に動作しません。(動作しているように見えるものもありますが実際には正常な結果が得られなかったり、途中で異常終了したりします。)

しかし、Windows上の仮想ドライブの使用目的の殆どは、FM-7と仮想ドライブとの間でのファイルのやり取りにありますので、ファイルのコピーができれば充分です。コピーソフトとして私は「SFCOPY(SUPER FILESCOPY V2.0)Oh!FM 1987年5月号」を使用しています。これはコピーするファイルを画面上で選択できるので非常に使い易いものです。これを用いて仮想ドライブ上のファイルを実ドライブにコピーしてしまえば、後は富士通製のユーティリティも自由に使えることになります。

・・・追記ここまで


2022年2月11日金曜日

FM-7用の512KB RAMディスクカードの紹介

 FM-7用の512KB RAMディスクカードを紹介します

【3月26日訂正】リンク先を変更しました。

これは「思い付きハードでソフトに七転八倒」さんが所有されているRAMディスク「RD512」の動作を解析し、それと互換性のあるRAMディスクを作りたいということで新たに回路を考案し製作されたものです。

ここで紹介するのは、その回路資料をいただいて、それにバッテリバックアップ回路を追加してプリント基板を製作して完成させたものです。


完成したRAMディスクカードです。

RAMディスクカード


回路図を示します。図中のR1(1MΩ)は実際には22KΩを実装しています。


回路図


動作風景です。

FM-7に装着

後方にはFT245カード


具体的な使用法ですが、次の3つのバイナリソフトが用意されています。

・RAM512SR.DAT:Windows上のディスクイメージとRAMディスク間でのコピー
(FT245カードとWindows側ではFDIMG_RW77.EXE(Ver2.0)が必要です。)
・RD512_RW.DAT:ドライブ1とRAMディスク間でのコピー
(設定を変更することでドライブ0との間のコピーにも対応可能。)
・XRAMDK77.DAT:FM-7でRAMディスクとして使うためのドライバ

これらのバイナリソフトを直接使用するのは面倒なので、下画像のようなBASICのメニューソフトを使うと便利です。
まずDISK BASICをドライブ数に3を指定して起動します。
次にこのメニューソフトFM7RDSKをRUNします。
メニュー7をまず実行してRAMディスクがアクセスできるようにします。
これでメニュー8を実行するとドライブ2にセットされているRAMディスクの内容が表示されます。
メニュー1と2はドライブ1とRAMディスク間での丸ごとコピーです。
(FDDドライブの番号はメニュー6で変更できます。)
メニュー3と4はWindows上のイメージファイルとRAMディスク間での丸ごとコピーです。
Windows上の320KBのイメージファイルをおよそ1分20秒ほどでRAMディスクへコピーできます。
ただし、3と4を実行するにはFT245カード(上の画像の後方に見えています)が必要なので、50P拡張コネクタに32Pスロット拡張基板を接続して、その基板上にFT245カードを装着しています。


メニューソフト


以上、512KBのRAMディスクカードとドライブソフトを紹介しました。

今回のドライバとユーティリティはFDDIMG_RW77.EXEVER2.0)を含めて、下記の「RD-512DRV」の配下にあります。

【3月26日訂正 リンク先を下記に変更しました】

 「思い付きハードでソフトに七転八倒」さんのブログに解説がありますが、質問がありましたらここに書き込んで下さいとのことです。

https://vehwk3yxv7hw.blog.fc2.com/blog-date-202202.html


なお補足ですが、使用したSRAMは東芝のSOPタイプのSRAM TC554001AF-70Lを自作のDIP化変換基板に装着して使用しています。他に三菱のM5M5408BTPや日立のHM628512CLPでも動作することを確認しています。
また、リチウム電池2032を用いたバッテリバックアップはまだ長期間のテストが済んでいませんが、とりあえず、数日間はデータが保存されていることを確認してあります。




高速通信カードFT245の使い方の紹介

 アプリケーションでのFT245カードの使い方を紹介します

[4月18日追加] 末尾に「FT245カードの簡単な使用法」のダウンロード先を追加しました。

思い付きハードでソフトに七転八倒」さんが開発されたFM-7/77用の高速通信カードFT245カードをアプリケーションで使用する場合に、通信元と通信先の両方の対応の方法を紹介します。

FM-7/77に装着されたFT245カードからのWindows側への送信は通常のRS232Cでの通信と同様に1バイト単位で送信されますが、Windows側からFT245カードへの送信は1バイトのデータをb7の1ビットとb6~b0の7ビットに分けて2回で送信されますので、それに合わせてFM-7/77側、Windows側の送受信ルーチンを対応させる必要があります。

FT245カード


FM-7/77側:

従来のRS232Cの送受信ルーチンRCVCH, SNDCHを次のプログラムに置き換えます。RCVCHは2回受信して1バイトを構成しています。 



Windows等のアプリケーション側:

例としてVisualC++でのFormプログラムを示します。

受信用の関数 serialPort1->Read()には変更がありませんが、送信用の関数serialPort1->Write()は次の serial_Write()関数で置き換えます。



これだけの変更で、従来のRS232Cを使用したアプリケーションがFT245を使用した高速通信に置き換えることができます。

私はこれをWindows上の仮想ドライブ構築ソフトCpmDrvWin.exeやFbasDrvWin.exeなどに適用して快適に使用しています。

[4月18日追加] 「FT245カードの簡単な使用法」をOneDriveにアップしました。