FM-11用に作成したRTC_COMカードをFM-7/77用に移植しました。
しかし、カードを筐体の中にセットする機種ではSDの挿入・取り外しが非常に不便でしたので、常用しているFM77系には不向きということでFM-7でのみ使用してきました。
(1)RTCモジュールのドライブソフト
![]() |
RtcWr2の動作画面 |
![]() |
RtcWr2の動作画面 |
ミスを重ねて作り直していましたが、ようやく3作目で完成しました。
これが完成したFM-11用FT245カードです。
![]() |
FT245カード |
右側が本体の後方側で、コネクタの端から筐体の端までの間隔がそれほど大きくないので、基板上のUSBコネクタの位置を最初に作成したものよりもかなり下げてあります。
回路図を示します。
![]() |
FT245 R3.3 |
基本的にFM-7系のFT245カードと同じですが、IOS信号の生成部を追加し、*EB信号を反転させています。
ハードはこれで良いとして問題はドライバソフトです。
四苦八苦した挙句、これら全てに対応するドライバを作成してみました。
![]() |
ft245drv.exe |
![]() |
FM側のドライバのメニュー |
ところが転送速度を確認してみると、FT245使用では2Dの転送が両方向とも1分弱、2HDではFM-11->Winでは2分弱と想定通りであるのに対してWin->FM-11では10分以上と極端に遅いのです。
SNDCH、RCVCHルーチンは今まで使用してきた実績のあるもので間違いがあるはずはありません。割り込み関係をいじってみたり、Windows側との間をハンドシェークにしてみたりとあれこれ試みても変わりません、、、
ハードに問題があるのかと疑って、前々回のブログで報告したFM-7用のカードをFM-11で使用するためのアダプタを使用して、FT245モジュール使用の初代を始め数枚のカードで試してみたり、配置アドレスを変更してみたりしましたが結果は同様でしたので、ハードの問題ではないようです。
現在のところ、3種の通信経路用のSNDCH、RCVCHルーチンを切り替えて使用しているのですが、その箇所が関係していることは分かっています。
切り替えルーチンは以下のようなものです。
このルーチンも今までに使用してきたものですので、このためにFMへの転送時間が大幅に増えることは全く納得できないのですが、これを外して直接呼び出すと、例えば2Dの転送で1分弱と正常な転送時間になるのですが、このルーチンを通すと4分30秒近くかかってしまうのです。
ということで、一本のドライバでまかなうことはできず、3種の通信経路毎に専用のドライバを用意しなければならないようですので、FT245用、内蔵COM0用、拡張ExCOM用とそれぞれのドライバを作成してみましたが、内蔵COM0と拡張ExCOM使用の場合は2DのFM->Winの転送に5分程度、Win->FMの転送ではその数倍の時間がかかるので実用的ではありませんでした。
結局、FT245専用のドライバと3種対応のドライバの2種のみとし、通常使用ではFT245専用のものを使用することとし、どうしても必要な場合にはCOM0やExCOMを選択できる3種対応のドライバを使用するというように使い分けることにしました。
さらに原因追及の必要があるとは思いますが、とりあえずF-Basic関係は一旦終了ということにして、OS-9のドライバの作成に取り掛かりたいと思います。
作成したWindows側のft245drv.exeとFM側のメニューソフトFT245FTと機械語サブルーチンFTDRV14FなどをOneDriveに上げておきます。これらのソフトはFM-11のみでなくFM-7や77でもそのまま使用できます。また、転送に使用するDATファイル形式とD77、DSKファイル形式間の変換ソフトも同梱してあります。
OS-9やFlex9の起動時には日付・時刻を入力する必要があり、結構面倒です。またF-Basicの場合にも、日付・時刻を必要とする場合には直接入力する必要があります。
ということで、FM-7用に作成してあったRTC_SDカードのRTC部をFM-11に移植することにしましたが、SDカード部を省いたために空いたスペースに68B50(ACIA)を増設して38400baudのCOMポートを増設しました。本体内蔵の8251A使用のCOMポートの通信速度が19200baudなので、その倍の速度のものが欲しかったということでもあります。
移植そのものはFM-11のコネクタに出ていないIOS信号の生成部を追加するだけで良いのですが、EB信号とQB信号が*EB, *QBと反転していることを見落としていたために最初は動作しませんでしたが、その点を修正することで正常に動作しました。(ということで、基板を再発注することになってしまいました。。。)
これが再発注した基板で完成させたRTC_ExCOMカードです。使用しているRTCモジュールはクロックタイムIC DS3231を使用したZS-042というもので、5Vで動作するので使いやすいです。(バッテリーはCR2032なので充電回路部はカットしてあります。)これを68B21(PIA)を介してI2Cで制御しています。
![]() |
RTC_ExCOMカード |
回路図を示します。
![]() |
RTC_ExCOM R1.1 |
まずはCOMポートのテストをしてみました。画像右端の6ピンコネクタからTTL-USB変換ケーブルを使用してWindowsPCに接続します。FT245カード用のドライブソフト(FM側、Windows側)を拡張して、FT245、内蔵COM(8251A)に加えて拡張COM(68B50)も使用できるようにして実行してみました。結果ですが、転送時間は内蔵COMポートの場合とほとんど変わりませんでした。ちょっとがっかりでした。
続いてRTCのテストをしました。FM-7用のドライブソフト(RTC_WR, RTC_RD, RTC_SET)はF-Basic3.0の内部ルーチンを使用していましたので、それをF-Basic5.0のDisplay Sub System中のSET TIMER, READ TIMERに置き換えました。また、FM-11の時刻関係のワークエリアが不明なので困っていましたが「Retro PC Gallery」(http://haserin09.la.coocan.jp/)のはせりん様から、FM-7と同じだと教えていただきましたので、無事にFM-11用のドライブソフトを完成させることができました。ありがとうございました。
作成したRTC_WR2, RTC_RD2, RTC_SET2はF-Basic5.0用の機械語プログラムで、RTC_WR2でZS-042に日付・時刻を設定し、RTC_RD2で設定されている値を読み込み・表示します。RTC_SET2はZS-042に設定されている値を読み込んでF-Basicのワークエリアに設定するもので、起動時に自動的に設定させたい場合にSTARTUPに書き込んで使用します。
参考までにRTC_WR2のアセンブルリストを示しておきます。68B21(PIA)のポートAを使用してI2CでDS3231をコントロールしています。68B21のポートAは入力に設定したままで出力もできるのでこのような入出力が同じポートで行なわれるような用途には適しています。
前回の報告で作成したアダプタを使用して2種のカードのFM-11での動作テストをしてみました。
使用したプログラムですが、大きな変更として2HDディスクではトラック0、サイド0のみが128bytes/sctですので、それに対応するようにFM-11側、Windows側ともに対応する必要がありました。その他にも細かい変更が必要でしたが、何とか2HD、2Dの両方に対応することができました。
これが修正したWinodws側のFT245DRVforFM-11の動作画面です。現在のところメディアは2HDと2Dの2種、DOSはF-Basic5.0,4.0とその他(F-Basic3.0等)、通信経路はRS232CとFT245通信カードで動作しています。
![]() |
FT245DRVforFM-11 |
結果ですが、通信経路としてRS-232Cを使用した場合には19200baudでFM-11->Windows、Windows->FMの両方向とも正常にディスクイメージの転送ができました。しかし、FT-245カードを使用した場合には、FM-11->Windowsは正常に動作し、FM-11のディスクイメージがWindowsに読み込まれましたが、逆方向のWindows->FM-11では動作しませんでした。
転送速度はRS-232Cでは2HDで13分余、2Dで5分であるのに対してFT-245カードでは2HDで2分、2Dで1分と大幅に異なりますので、FM-11への転送もぜひFT-245カードで行いたいのですが、、、
今のところ、FM-11への書き込みができないのは、そもそもWindowsが送り出したデータがFM-11に受信されていないことにあることは確認していますが、その原因はまだ分かっていません。(どうも、割り込みの制御と関係がありそうなのですが、、、)
ということで、FT245通信カードでのFM-11への書き込みがまだ実現できていませんが、一応(!)使えそうだということが分かりました。
OS-9やFlex9の起動時には日時を入力する必要がありますので、その手間を省くためにはリアルタイムクロック(RTC)が必要です。
FM-7ではRTC_SDカードを製作して起動時に自動的に日時を取り込むようにしていましたので、そのカードがFM-11でも使えないかをテストしました。
これがテストしたRTC_SDカードです。(このカードについてはブログ「FM-7にRTCとSDを接続する試み(その4)2023年4月25日」で紹介しています。)
![]() |
RTC_SDカード |
現在のところ、FM-11のF-Basic5.0の時刻関係のワークエリアが分かりませんので、とりあえず320KBドライブからF-Basic3.0を起動して、その上でFM-7用のRTCプログラム(RTC_RD、RTC_WR)を変更せずにそのまま実行してみました。
なお、使用した320KBドライブからF-Basic3.0を起動するシステムディスクの作成については、知人から教えていただいたOh!FM誌1985年2月号の「F-BASIC V3.0をFM-11で走らせる」によります。ありがとうございます。
これがRTC_SDカードを装着した様子です。アダプタの上に装着しています。
![]() |
カード装着の様子 |
![]() |
RTCが動作した |
先日、昔からあこがれていたFM-11AD2(OS-9Level2、F-BASIC5.0付き)を某オクで入手しました。AD2+ではないのがちょっとだけ残念ですが、いつ出品されるか分からないものを待っていても仕方がないということで、、、
触ってみた印象ですが、とにかく大きくて重い。FM-7系のようなアマチュア向けではない印象です。そしてOS-9L2の起動にかかる時間がかなり短いのが、OS-9をメインに使用するつもりの私にとってはとても嬉しい点です。
私はFM-7系しか触ったことがないのですが、今までFM-7系で蓄積(!)したハード・ソフトを何とか使い回ししたいのですが、そのためには、ソフトは全てWindows機中に保存しているのでWindows機との間でのファイル転送が必須ですし、さらに2Dメディアを使うためには320KBドライブも必要です。
とりあえずハード面では、今までに作成したFM-7系用の自作カードがFM-11上で動作するかを確認する必要があります。そのために32Pスロット用のカードを装着するためのアダプタを作成しました。
付属してきた「FM-11 本体拡張バス仕様」によりますと、FM-7の32PスロットにはあるIOS信号がありませんでしたので、IOIHB信号を用いて作成する回路を追加しました。
まず手配線で作成して動作することを確認した後、プリント基板を作成しました。使用しているコネクタは64ピンです。
![]() |
作成したアダプタ基板 |
![]() |
組み立てた状態の表面 |
![]() |
その裏面 |
![]() |
メイン部・サブ部の回路 |
プリント基板を発注して届くまでの間、手配線のアダプタを作成し、それを用いてFM-7で使用している自作FDCカードをFM-11に接続して、320KBのFDドライブが動作しないか試してみましたが動作しませんでした。
![]() |
手配線の第1作 |
![]() |
FM-11にセットして |
![]() |
FDCカードを装着 |
「Retro PC Gallery」のはせりん様によりますと、FM-11はDMAを使用してFDを読み書きしているのでFDC回路もDMA対応にする必要があるとのことです。
このカードの先に手持ちのいくつかのドライブを接続してみました。
これらのうち、残念ながらStepDoubler回路経由の場合にはF-Basic3.0が起動はするもののファイルは正常には読み書きできませんでした。この結果はF-Basic5.0モードの場合も、320KBから起動したF-Basic3.0モードの場合のいずれも同様でした。StepDoubler回路を通さず直結した場合には正常に動作しましたが、これでは通常の2Dディスクとの互換性がありません。
ということで今の段階では、通常の2Dディスクと互換性のあるディスクが必要な場合にはYD-625を使い、互換性のないディスクで良ければPC用ドライブが使えるということになりました。
「FM-11 本体拡張バス仕様」によると、拡張バスは100ピンもありますが必要な信号がほとんど64ピンまでに集まっていますので、通常の2.54mmピッチ2列の64ピンL字コネクタを使うことができ、コンパクトに作成することができます。
手配線で作成したものは使用した32Pスロットの関係で、画像のように基板が横向きになってしまいましたので、基板化するにあたっては2枚の基板を90度に組み合わせて、使用確認する基板を縦に装着できるように工夫しました。いつものごとく、コネクタの向きを間違えてしまって作り直すことになりましたが、最終的には先頭の画像のようにそれなりにコンパクトなものが出来上がりました。
(次に続きます)
先日、某オークションでLogitecのLFD-550-FMというFM用FDドライブ装置に内蔵されているコントロール基板を入手しましたので、これを使用するために富士通のMB22603の回路を調べて同様なものを製作してみたという報告です。
製作した2種のアダプタがこれです。
![]() |
左:FM-7の32Pスロット用、右:FM-7/8の50Pコネクタ用 |
左がFM-7の32Pスロット用、右がFM-7/8の50P拡張コネクタ用です。
私自身はFM-7用に自作のFDCカードを製作して、それにPC用のドライブやGOTEKなどを接続して使用しておりますので、特に必要はなかったのでしたが、興味本位で落札してみたのが運の尽きで、かなりの時間を費やすことになってしまいました。。。
このコントロール基板に手持ちの5インチ2Dドライブを接続して動かしてみようと考えましたが、動作させるためにはFM-7とコントロール基板の間をつなぐアダプタが必要です。オークションに時々出品されるようですが結構高額です。ということで、自作できないかと考えました。
自作の手掛かりになったのは、はせりん様のブログ「Retro PC Gallery (http://haserin09.la.coocan.jp/)」中の「緊急特集:MB22603の秘密」という記事です。
はせりん様はIRQ関係の調査とアダプタの対象機器の制限の原因追及をされているのですが、そのために回路の一部を解析されていましたので、それを元にさせていただいて何とか回路をでっち上げ、プリント基板を発注して製作してみましたが、もちろん動作しませんでした。しかしこれだけではでっち上げのアダプタがダメなのか、それともコントロール基板がダメなのかが分かりません。
そんな時、知人がMB22603などのアダプタを3台も所有されていることを知りましたので、それらをお借りして不動の原因を追究することにしました。
まず入手したコントロール基板が正常に動作するかを確かめるために、お借りしたMB22603を使用してみましたが、残念ながら動作しませんでしたので、不動の原因はコントロール基板にあることが確認できました。
そんな時に、某オークションで再び同じ基板が出品されていましたので、再度入手してみましたら、これはMB22603など3種のアダプタのいずれでも正常に動作しました。
コントロール基板が正常に動作することが確認できましたので、あとはアダプタを製作すれば良いということで、お借りしているMB22603の基板の配線を調べてみました。
このアダプタではディレイラインを使用しているのですが、それははせりん様によりますと、FDC(フロッピィディスクコントローラ)としてMB8876やMB8877が使われている外付けドライブ装置に対応するためだそうです。入手した基板ではMB8876Aが使われているので、ディレイは必要がないので省略できるだろうと考えました。実際に回路を追ってみると、ジャンパ線でディレイラインをバイパスしているように見えました。
ということで、ディレイを省略した回路を仕上げてプリント基板を発注し、届いた基板を組み上げてみました。ところが、FM-7にセットしてみましたがまたも動作しません。
回路を見直してみましたが間違っているところはなさそうです。困ってしまって、お借りしているMB22603の基板を再度眺めていたところ、50P拡張コネクタのEXTDET(22ピン)がGNDに落とされているのを見つけました。今まで色々な基板を製作してきましたが、EXTDETは無接続で動作していましたので、多分関係はないだろうとは思いましたが、念のためにGNDに落としてみました。
動作している様子を示します。これは32Pスロット版の場合です。左下の5インチドライブのアクセスランプが点灯しているのが見えます。
コントロール基板がMB8876Aを使用しているからでしょうか、ディレイラインを使用していない回路ですが、FM-7本体のクロックを落とさなくても2MHzで動作しています。
32Pスロット版を使用中 |
以上、たまたま入手してみたコントロール基板を動作させるためにMB22603相当のアダプタを作ってみたという報告でした。(特に使う予定もないのに作ってしまった...)
回路の内容が良く分かっていない私が何とか回路を作成できたのは、貴重な情報を公開してくださっているはせりん様と、MB22603などを貸してくださった知人(Y.A.様)のお陰です。お二人に感謝いたします。
===昨年から取り組んでいるいくつかのハードやソフトの作成がいずれもうまく行っていない状態なので、気分転換を兼ねて表題のことに取り組んでみました===
以前からFM-7やFM77AV40SXを使用する際にはWindows機上で仮想ドライブを構築して使用してきましたが、その際にはシリアル通信(RS232C)を使用していました。(CP/M版のみFT245カードを使用)
それについてはその都度公開してきました。
・「拡張ROM/RAMディスクボードと仮想ドライブ用のF-BASICドライバ」(2022年5月18日)
・「F-BASIC用のWindows版仮想ドライブ構築ソフトの改良」(2022年2月12日)
・「FM-7/77用の改良版I/O拡張基板用のF-BASICドライバを作成」(2021年7月8日)
・「FM-7用 60K CP/M-80 の仮想ドライブ版が完成」(2021年2月23日)
・「CP/M用の仮想ドライブの構築ソフト(その2)」(2020年5月2日)
・「CP/M用の仮想ドライブの構築ソフト」(2020年4月29日)
・「FM-7/77のF-BASIC用の仮想ドライブ構築ソフトが完成」(2019年9月25日)
・「FM77用の拡張I/Oボード、ROM/RAMディスクボードのプリント基板化が完了」(2019年8月26日)
・「FM77用の拡張IOボード、ROM/RAMディスクボード」(2019年6月12日)
しかし、現在はRS232C通信を使用することはほとんどなく、もっぱら「思いつきハードでソフトに七転八倒(https://vehwk3yxv7hw.blog.fc2.com/blog-category-2.html)」の秋田修二さんが作成されたFT245高速通信カードを使用させていただいています。
ということで、ここで全ての仮想ドライブ構築ソフトをFT245カード対応に切り替えることにしました。(もちろん、従来通りRS232Cも使えます。)
今回作成したのは以下のものです。
使用したFT245カードは画像のものです。
![]() |
使用したFT245カード |
これはVer2でTXE端子の制御機能が追加されており、スイッチで有効・無効を切り替えることができるものですが、この機能がないVer1でも同様に使用できます。
詳解するソフトの機能を大まかな図で示します
![]() |
機能の説明 |
図に示しましたように、Windows側では使用するDOSに合わせて仮想ディスク構築ソフト(FbasDrvWin.exe, FlexDrvWin.exe, Os9DrvWin.exe, CpmDrvWin.exe)のいずれかを実行します。使用する通信カードや通信ポートはiniファイルで指定したものが選択されますが、起動後に変更できます。
FM側のドライバですが、Flex9ではWINDRVの起動時のオプションでFT245カードとRS232Cカードに対応させていますが、F-Basicでは裏RAMに常駐させていてその常駐部を少なくするために、FT245カード用のWINDRV(もちろんFlex9用とは別ソフトです)とRS232C用のWINDRVX7という別々のソフトになっていますので、使用する通信カードに合わせて選択します。FM-7やFM77AV2用のオプションRS232Cカードは38400baudまで動作しますが、FM77AV40SXなどに内蔵されているRS232Cは19200baudまでです。
![]() |
FbasDrvWin.exeの場合 |
Windows側のFbasDrvWin.exeは以前から公開しているものですが、使用しているうちに必要になった機能として、有効なポートを検出する「ポートスキャン」、ポートの種類を選択する「Port Select」ボタンを追加した最新のVer1.53です。またFlex用も同様に機能追加してあり、FlexDrvWin.exeはVer1.73です。
このファイル交換の手段としては、従来からRS232Cによるものがありますが、使いやすさや速度面での問題がありました。それを改善するものとしてFT245カードを使用する方法があり、ディスクイメージファイル全体の転送や単一ファイルの転送用のソフトを作成してきました。速度的には大幅に改善されたとはいえ、それでも、毎回転送ソフトを起動してファイル操作を行う必要がありました。
今回はとりあえずですが、F-Basic V3.0用とFlex9用の2種のみ公開します。ただしF-Basic用はVer3.0のみに対応しており、また、Flex9用ですが私は8インチのGeneral版から移植したものを使用していますので、もしかしたら富士通製のFlex9には使えないかもしれません。
動作に必要なソフト一式をOneDriveに公開しますので、使用した結果に対して私は責任を負わないことを了解していただいたうえで自由にご利用ください。