ラベル FM-11 の投稿を表示しています。 すべての投稿を表示
ラベル FM-11 の投稿を表示しています。 すべての投稿を表示

2026年2月1日日曜日

FM-11にPS/2キーボードを接続するための変換器の完成

 FM-11にPS/2キーボードを接続するための変換器が完成しました


【10月2日追加】
プログラムの不具合を修正した版をOneDrive(末尾にあります)に上げておきました。


先日報告しましたFM-11用PS/2キーボード変換器ですが、https://www.blogger.com/blog/post/edit/1662007451717538019/3111393154708868825

オートリピート機能も実現できたということでしばらく使用してみました。回路的には問題がなく、また、プログラムの方もGRAPHキーやカナキーなどの特殊キーの入力に純正のキーボードとの多少の違いがあったりしますが頻繁に使用するものでもなく、その他特に大きな不具合もないので、一応、これで完成ということにしようと思います。

純正キーボードとの機能の違いですが、PS/2キーボードにはINSモードを示すLEDがありませんので、当然、本体からのINSLEDON信号は無視されています。


変換器が完成


基板が届きましたので早速組み立ててみました。

基板と完成品

FM77AV用変換器と同様、タカチのケースSW-50にちょうど収まるサイズにしてありますが、試しに同一サイズの有り合わせのケースに収めてみたらFM-11側のケーブル用のコネクタがはみ出てしまいました。

ケースに収めてみた


8ピンのピンヘッダとコネクタを使わなければケースに収まるはずということで、直接ケーブルを基板にハンダ付けしたものも作ってみました。

ケーブルを直結


回路図です


FM77AV用PS/2キーボード変換器とほとんど同じですが、CLOCK信号を追加したのとKRESET信号をATtiny85のRESET端子に直結している点が異なります。本体へは8芯ケーブルで接続します。

回路図

基板を起こしましたが、手配線でも十分作成できるほどの簡単な回路です。


プログラムリストです


メインプログラムcnvps2fm.cを示します。

【2月12日修正】先頭のコメント中の一部を修正しました。
(PORTBのoutputにbit3を追加、special keys中のBREAKキーの機能の訂正)


この他にヘッダファイルcnvps2fm.hとスキャンコード変換テーブルscancodes_fm11.hがあればビルドできます。私は以前のFM77AV用変換器のコードを変更しながら作成しましたので、MPLAB X IDE (v6.25) 上の XC8 (v3.10) でビルドしました。


最後に


以上の3つのソースファイルとビルドで作成されたHEXファイルをOneDriveに上げておきますので、そんなことはないとは思いますが商用使用は禁止という条件を守っていただく限り自由に使用してくださって結構です。
HEXファイルをATtiny85に書き込んでFuse bitを正しく設定すれば動作します。ただし、所詮アマチュアの製作品ですので使用した結果、FM-11本体やキーボードに不具合が生じたとしても責任は負いませんのであらかじめご承知おきください。

【10月2日追加】
プログラムの不具合を修正しましたので、3つのソースファイルとビルドして作成したHEXファイルを再度OneDriveに上げておきます。


2026年1月22日木曜日

FM-11にPS/2キーボードを接続するための変換器の作成

 FM-11用のPS/2キーボード変換器を作成してみました

【1月23日訂正】末尾に訂正があります。

昨年、FM-11AD2(キーボード、ソフト、マニュアル付き)を入手しまして、拡張メモリ、FT-245高速通信カード、RTCカードなどを作成してきました。

その後、さらに実験用のつもりでFM-11AD2の本体のみを追加で入手しました。これは不動品でしたがMPU(68B09)を交換しただけで正常に動作するようになりました。

これは本体のみでキーボードがありませんので、PS/2キーボードを接続するための変換器の作成を始めました。
「FM-11本体インタフェース仕様」によりますと、キーボード用の入力端子はDin8ピンで、
1.CLOCK           (キーボード→本体)
2.DATA              (キーボード→本体)
3.KRESET        (本体→キーボード)
4.GND
5.VCC
6.INSLEDON    (本体→キーボード)
7.STOP              (キーボード→本体)
8.(NC)
とのことです。


純正キーボード


シリアルコードの確認

以前、FM77AV用のPS/2キーボード変換器を作成したことがあります。
「FM77AVにPS/2キーボードを接続する変換器の基板化(2019年7月31日)」
「FM77AV用PS/2キーボード変換器の不具合を修正(2020年1月21日)」

その際にはCLOCK出力やRESET入力というものはありませんでした。しかし、違いがあるにしても何とかなるだろうと甘く考えて始めました。
まず純正のキーボードと本体の間に挿入する画像のようなアダプタを作成し、オシロスコープとロジックアナライザでキーボードから本体に送られているCLOCKとDATA信号を観察しました。


測定用アダプタ



その結果、以下のようになっていることを確認しました。

[1]起動(リセット)時にまずキーボードが接続されていることを認識する。
起動(リセット)直後に本体からキーボードにリセット信号が送られ、その後の数msの間にキーボードから本体に’P’のブレークコードを送り、それが本体に受信されることでキーボードが正常に接続されていると認識する。
[2]キーボードから本体へクロックに同期してキーコードが9ビットのシリアルデータで送信される。
[3]シリアルデータはアスキーコード的な8ビットコードで、それを反転したものに第9ビットとして、通常キーでは0、特殊キーでは1を追加した形式。
[4]送信手順
(1)最初に20us幅のスタートビット(アクティブH、CLOCKとDATAも同様)
(2)その後26us間隔で14us幅のクロックが8個続き、それに同期してデータバイトのLSBからMSBの順に8ビットが送られる。
(3)最後に130us幅のクロックに同期して第9ビットが送られる。
(4)クロック終了後に約77usの間第9ビットが続き、その後0になって終了。
(以上のクロックやデータ幅はおよその値で結構変化します。)

プログラムの作成

これらの結果をもとにしてプログラムを作成しました。
回路は以前のFM77AV用の変換回路を流用し、CLOCKとSTOPの2ビットのみを追加した回路としましたので、PS/2キーボードからのキーコードの読み込みはFM77AV用のものをそのまま使うことができました。
しかし、使用したATtiny85ではピン数が足りず、リセット信号をどうするか悩みましたが、とりあえずtiny85のリセット端子に直結して本体と同時にリセットするようにしてみましたら、リセット後の数ms後に’P'のブレークコードを送ることでキーボードとして無事に認識されました。



試作変換回路


FM-11とFM77AVとの違い

プログラムの基本はFM77AV用と同様で、PS/2キーボードから入力されたコードでPS/2キーボードのスキャンコード表を検索して一致するコードの位置を見つけ、FM-11用のキーコード表の対応する位置のコードを取り出すというものです。
FM77AVでは40ビットのシリアルデータのうちの4バイトを表にしていましたが、FM-11ではアスキーコードが基本なので各コードそれぞれ1バイトの表を用意しました。
(ただし、STOPキーのみは扱いが別になっており、シリアルデータとして送信されるのではなく、Din8ピンの7番ピンを直接Lowに落とすことで本体に伝えています。)

これで、通常のキーやファンクションキーについては正常に入力ができるようになったのですが、シフトキーやコントロールキーについてはうまくいきません。
かなり悩みましたが、FM-11とFM77AVとではキーボードの役割が異なっていることにようやく気付きました。
FM77AVでのキーボードの役割は全てのキーの40ビットのシリアルデータを本体に送り込むだけで、シフトキーやコントロールキーの処理は本体側で行っているのに対して、FM-11ではキーボード内で必要な処理を行った結果のアスキー的なコードを本体に送っているのです。(アスキー的なコードをキーボードが送っていることからすぐに気付くべきでしたが、、、結構な時間を浪費することになってしまいました。)

ということで、シフトキーやコントロールキーが押された時の処理も必要になりましたのでNORMAL, SHIFT, CONTRLの3バイトの表に拡張することで、主なキーについては正常に入力することができました。

まだ対応できていないキーなど

ほとんどのキーについては正常に入力できるようになりましたが、現在のところきちんと対応できていないキーとしてカナキーとGRAPHキーの2つがあります。
これらのキーについては、自分的にはまず使用することがないので対応する必要性を感じないので、とりあえずこのままで良いかなとも思っています。。。

もう一つですが、現在のところオートリピートに対応できていません。
以前発表した、FM77AV用のUSBキーボード変換器でも同様なのですが、オートリピートに対応する手法を私が分かっていないためです。この機能は必要なので何とかしたいのですが、、、
【1月23日訂正】私の勘違いがありましたのでプログラムを修正しました。その結果、オートリピートが実現できました。

最後に

しばらく使用しながら不具合の有無を確認し、その間に回路のプリント基板を作成し、最終的に完成しましたら回路図とプログラムを公開する予定です。



2025年12月6日土曜日

FM-11に2DドライブとしてPC用のドライブを接続するーその後

 PC用のドライブでStepDoubler回路が動作しました


7月30日のブログ「FM-11に2Dや2HDドライブとしてPC用のドライブを増設した結果」ではFM-7系で使用しているStep信号を2倍化するStepDoublerボードが使用できないと書きました。
そのため、FM-11で読み書きすると2Dディスクの前半しか使用していない、通常の2Dディスクとは互換性のないFM-11専用のディスクになってしまっていました。

しばらくはその状態で使用していたのですが、FM-7系と共用できないディスクでは流石に不便なので解決を試みました。

FM-11の2Dドライブ用FDDカードが出力しているStep信号をオシロスコープで観測してみたところ、下図の中段のようになっていました。


Stepパルスの幅と周期

現在使用しているStepDoublerではパルス幅1.5ms、周期4.5msに設定していましたので、これではFDCカードが出している周期6msの間にパルスを挿入できるわけがありません。しかし、現在の設定値はFM77AV40SXのStep信号を実測して、その値に合わせたものだったのですが、、、

とにかく、現行の値ではダメという事で周期6msの間にパルスを追加するために周期3msとし、パルス幅もFM-11と同じ4usに変更しました。(FDDの規格の一例では、周期は最小値で3ms、方向変更の場合は4msですので、ぎりぎりでしたが、、、)

結果ですが、正常に動作しました。

使用したStepDoublerボードを示します。

現在使用しているものは図のように2台のFDDを接続できて、それぞれのドライブ番号を0~3に設定でき、さらにStep信号を追加するかしないかを選択できます。


StepDoublerボード


使用確認したFDドライブは、MITSUMIのD353M3D、TEACのFD-235HG、YE-DATAのYE-702Dですが、いずれも34ピンがReady信号になるように改造してあります。改造に当たってはサイト「試運転の資料館(https://shiuntenlos.ie-yasu.com/)」を参考にさせていただきました。ありがとうございます。

蛇足ですが、手持ちのD353M3Dには2種類あり、両サイドに止めネジがあるものは「試運転の資料館」に掲載されているのですが、全体を分解しないと基板に到達できないという改造の難易度が高いものです。それに対して止めネジがないものは分解が簡単でした。しかし、「試運転の資料館」には掲載されていませんので、IC MCL039の同じピンが接続されている箇所を見つけて接続しました。


2台のD353M3D

図の左が分解が簡単なD353M3D、右が難易度が高いものです。もちろん、両機とも正常に動作しています。

なお、動作確認したOSはF-Basic5.0、OS-9Level2で、いずれでも初期化、読み書きができることを確認しました。

これで、FM-7系と同様に2Dのディスクを共用できることになり、データの移動が便利になりました。ディスク関係で残る課題は、増設した1MB 2HDドライブがF-Basic5.0では正常に使用できるのにOS-9では初期化ができないというものですが、こちらはまだ未解決です。Step Rateの関係かもと考えて、Step Rateを現行の3msから6msに変更したデバイスディスクリプタを書いてみたりしているのですが、、、

以上、FM-11で2DドライブとしてPC用ドライブがFM-7系と同じように使用できるようになったという報告でした。


2025年8月23日土曜日

FM-11の増設2DドライブにFLEX9を移植

 FM-11にFLEX9を移植する第一段階として増設した2Dドライブに移植してみました

私は今までFLEX9の使いやすさが気に入って使用しておりましたので、FM-11を入手した時からFM-7系で使用してきたFLEX9を移植したいと考えていました。

私が使用しているFLEX9は大昔TSC社から直接購入した8インチ版のV3.01で古いのですが、特に不都合もないのでFM-7, FM77AV2, FM77AV40SXに移植して使用しておりました。

(今はネットの情報を元にしてFLEX9システムを構築することができます。私のブログ「FLEXシステムの作成方法(その2)・・・より具体的に」にその構築手順を公開しています。)https://www.blogger.com/blog/post/edit/1662007451717538019/8762567690989530647

いきなりFM-11の5インチ2HDに移植するのは敷居が高いと思い、まず増設した2Dドライブで動作させようと考えました。

2Dドライブ版であれば、IPLをFM-11用に書き換えるだけで良いのではと考えたのですが、そのIPLに良く分からない部分があり、試行錯誤を繰り返すことになりました。そのため途中から増設2DドライブをGOTEKに置き換えて、そのhfeファイルを書き直しながら動作するIPLを作成しました。

2Dドライブ0をGOTEKに置き換えた様子です。


中央が置き換えたGOTEKドライブ

IPL作成の手順

FM-11のBootLoaderやIPLについての知識は全くなかったので、次のような手順でIPLを作成しました。

1.既にあるIPLを読む。
・純正のF-Basic5.0のIPL
・はせりん様のブログ「FM-11用F-BASICのページ」(http://haserin09.la.coocan.jp/fbasic11.html)中の2D版F-Basic5.0のIPL
・「F-BASIC V3.0をFM-11で走らせる」(Oh!FM誌1985年2月号、1986年8月号)のIPL
上記のIPLの作成者の方に感謝いたします。

2.上のIPLを逆アセンブルしてFM-11固有の設定を抜き出す。
・最初はIPLがどのアドレスに読み込まれるのかも分からず$100、$300、$400などを仮定しましたが、その結果、どうも$400らしいと分かりました。
・いずれもF-Basic用のIPLでしたので、FLEX9用のIPLに不要と思われる部分を削除しました。

3.FM-7系で使用中のIPLに2.で抜き出した設定を追加する。
・2Dドライブで動作させるのでIPLのみを書き換えれば、FLEX9システムは変更せずにそのまま動作するはずと考えました。

手順としては簡単ですが、何しろFM-11のハード、ソフトが良く分かっていないので理解できない個所も多く、何度も書き直しては試すことになりました。

結局、IPLのアセンブルリストを作成ー>アセンブルしてバイナリを生成ー>エディタ上でFM-7用のDSK形式のシステムディスクのトラック0,セクタ1,2に書き込みー>D77形式に変換ー>GOTEK用のHxCFloppyEmulator.exeでhfeファイルに変換ー>USBに書き込んでFM-11のGOTEKにセットして起動テスト、という手順をひたすら繰り返すことになりましたが、GOTEKのお陰で、ほとんどの作業がWindows上で行なえましたので大変助かりました。

最初にFLEX9が起動したときの画面はこのようでした。


初めて起動したときの画面

FLEX9の起動メッセージやSTARTUPに書き込んであるファイルのメッセージが表示されていることから、ディスク関係は正常に動作していると判断できましたが、CRやLFが機能していない上に文字化けも生じています。

最初はIPLでのFM-11の初期設定がおかしいのかと思い、あちこちを変更してみましたが変化はありません。次に、表示関係ということでFLEX9システム中のCONSOLEを見直しましたが、もちろんFM-7系で正常に動作している実績のあるルーチンですのでおかしいところがあるはずはありません。。。


不具合の原因はCONSOLE CONTROLだった

困りはてて諦めかけましたが、ついに原因を突き止めました。

何と、Display Sub SystemのCONSOLE CONTROLコマンドが拡張されて書式が変更されていたのです。

FM-7系:$00,$00,$0C(コマンド),$23(制御フラグ1バイト,デフォルト値)
FM-11 :$00,$00,$0C(コマンド),$06,$D3(制御フラグ2バイト、デフォルト値)

これに合わせて4バイトのCONSOLE CONTROLを5バイトに変更することで正常に表示されるようになりました。DISK DRIVERルーチンはDMAを用いていない通常のものでしたが変更の必要はありませんでした。


正常に表示された起動画面


6809 以下が起動メッセージ、次行が日付要求画面で続く3行はSTARTUPに書き込んである自作の常駐モニター、ROM/RAM/Windows仮想ドライバ、ラインエディタの起動メッセージです。

以上で、とりあえず2D版のFLEX9がFM-11に移植できました。
しばらく使用してみましたが、特に不具合はないようです。

次に作成したIPLルーチンを示します。
意味が分からないまま入れてある部分もありますので、ご指摘頂けると有難いです。

 


今後は

あとは、これを2HDに移植すれば良いのですが、DISK DRIVERは当然書き直す必要がありますし、さらにF-Basicと同様にトラック0、サイド0を128バイトで処理することやDISKの読み書きにDMAを使うことなどを考慮すると、結構手間取りそうです。。。


2025年7月30日水曜日

FM-11に2Dや2HDドライブとしてPC用のドライブを増設した結果

 FM-11AD2に2Dや2HDドライブとしてPC用のドライブを増設してみた結果です

FM-11AD2にPC用のドライブを増設して、2Dドライブ(320KB)、2HDドライブ(1MB)として使用してみました。

PC用ドライブを接続する前には、2DとしてYD-625を、2HDとしてYD-180を接続していましたが、現在は画像のように、2D用として2台、2HD用として1台のPC用ドライブを使用しています。
右の1台が2HD、左の2台が2Dとしての使用で、ドライブは右からD353T5、FD-235HG、MPF920です。


増設したPC用ドライブ3台


PC用ドライブを増設するまでの経過


入手したAD2に標準搭載されていたドライブは2HDが2台のみでしたので、このままでは今まで使用してきたFM-7、FM77AV2、FM77AV40SXそしてWindowsPCとの間でデータ交換するのが非常に不便です。

そこでまず2Dドライブを増設することを考えて、大胆にもFM-7用のFDCカードをアダプタを介して装着してみましたが、もちろん動作しませんでした。

ブログ「FM-11にFM-7等のカードを装着するためのアダプタを作成 2025/06/04 (https://www.blogger.com/blog/post/edit/1662007451717538019/264779242327682535)」

結局、知人から頂いた2Dドライブ増設ボードで無事に2Dドライブを増設することができました。ただし、この時に正常に動作したのは5インチ2Dのみで、PC用の3.5インチドライブは不完全な動作でした。

FT245カードも作成してWindowsPCとのデータ転送もできるようになりましたので、自分なりに使えるようになったと思っていましたが、メインの2HDドライブの5インチはヘッドロード音が大きく、しかもメディアを頻繁に叩く(!)のが心配で、できれば3.5インチをメインにしたいと考えました。

まず最初に、内蔵FDインターフェースボードから2台のFDDへの接続ケーブルを延長して外部に2HDドライブを接続してみました。
しかし、内蔵ドライブと同じ2HDのYD-180を接続したにもかかわらずドライブが動作しません。ドライブの設定をあれこれ変えてみたりしましたがダメです。

結局、オシロを持ち出してFDDへの信号を観察した結果、何と、インターフェースボードの34ピンコネクタにはドライブセレクト信号が0と1は出ていましたが2と3の信号は出ていないのです。

ということで、内部の34ピンコネクタからの増設は諦めて、背面に出ている50ピンのアンフェノールコネクタを使用することにして、各ピンの信号を調べました。
内部の34ピンとの対比や入力信号を受けている74LS14や信号出力のMB433(7438相当)の各ピンを調べましたが、どうしてもドライブセレクト2や3のピンが分かりません。

調べたピン配置は下記のようです。


ピン配置の調査結果(未完成)

ドライブセレクト信号2と3はピン18, 19ではないかと予想しましたが、良く分かりません。

そんな時に知人からパソコンワールド誌(1988年11月号)の記事を紹介していただきましてようやくピン配置が判明しました。


パソコンワールド誌より

私が調べたものとはドライブセレクト信号のピン配置と異なりますが、これに合わせてケーブルを作成しました。

増設ドライブ用ケーブル

これはPC用の3.5インチドライブ用で、34ピンコネクタの先にはドライブ番号変換用のアダプタが接続してありますが実際にはアダプタを外して、この先に5インチドライブ用の延長ケーブルを接続しています。

最初はFDDのドライブ番号を2にしたのですが認識せず、ドライブ0として無事に動作しました。番号の割り振りが増設ドライブ0と1ということのようです。(FM-11からはドライブ2として認識しています。)

最終目的であるPC用3.5インチドライブを接続するために使用したドライブは34ピンのディスクチェンジ信号をReady信号に置き換える改造を施したものです。なお、この改造に当たっては「試運転の資料館(https://shiuntenlos.ie-yasu.com/98ma0050.htm)」を参考にしました。ありがとうございます。

さらに、当初は上記のようにドライブ番号を0にするためのアダプタを使用していましたが、ドライブによっては0オーム抵抗の付け替えでドライブ1から0に変更できることがわかりましたので、その変更も行っています。使用したドライブはTEACのFD-235HG、ミツミのD353T5、SONYのMPF920です。

参考までにFD-235HGとD353T5の改造結果を示します。


FD-235HG改造箇所


D353T5改造箇所


増設した結果


以上の経過の後、PC用ドライブをFM-11に接続できたわけですが、現在のところ判明している不具合は以下の通りです。

(1)2HDドライブ

 F-Basic5.0ではドライブ2として正常に動作していますが、OS-9Level2では/ND2として認識するものの、何故かフォーマットができません。

仕方がないので、F-Basic5.0で初期化した後、F-Basic上でFT245を用いてWindowsPCからOS-9システムディスクのイメージを転送しました。その後はdirでファイルが一覧表示されますし、コマンドを実行することもできました。

(2)2Dドライブ

 以前の報告にも書きましたが、StepDoublerアダプタを介すると正常に動作しません。直に接続すると2Dドライブとして正常に使用できますが、本来2DDドライブですのでメディアの半分しか使用しておらず、FM-7系の2Dメディアとは互換性がありません。ということで、FM-11の2Dドライブ専用のメディアとして使用することになります。


2025年7月10日木曜日

FM-11用のFT245カードのドライバ作成に四苦八苦

 FM-11用のFT245カードがようやく完成しました

ミスを重ねて作り直していましたが、ようやく3作目で完成しました。

これが完成したFM-11用FT245カードです。


FT245カード

右側が本体の後方側で、コネクタの端から筐体の端までの間隔がそれほど大きくないので、基板上のUSBコネクタの位置を最初に作成したものよりもかなり下げてあります。

回路図を示します。

FT245 R3.3


基本的にFM-7系のFT245カードと同じですが、IOS信号の生成部を追加し、*EB信号を反転させています。


ハードはこれで良いとして問題はドライバソフトです。

FM-11AD2には2HDと2Dの2種のドライブが接続されていて、通信経路もこのFT245カードの他に内蔵COMポート(8251A)があり、さらに拡張COMポート(68B50)も追加しました。
そして、従来からFM-7でも使用しているFT245カードですので、FM-11だけでなくFM-7/77でも共通に使用できるドライバにしたいと考えました。

四苦八苦した挙句、これら全てに対応するドライバを作成してみました。

Windows側のft245drv.exeの画面です。
ディスク種別、OSの種類、通信経路が選択できるようになっています。
また、FM-7用では転送はDAT形式のみが可能でしたが、D77、DSK形式でもFM側に転送できるように拡張しました。


ft245drv.exe


FM側のソフトのメニュー画面です。
従来のドライブ、ディスク種別の選択の他に通信経路と動作機器を選択できるようになっています。


FM側のドライバのメニュー

ところが転送速度を確認してみると、FT245使用では2Dの転送が両方向とも1分弱、2HDではFM-11->Winでは2分弱と想定通りであるのに対してWin->FM-11では10分以上と極端に遅いのです。

SNDCH、RCVCHルーチンは今まで使用してきた実績のあるもので間違いがあるはずはありません。割り込み関係をいじってみたり、Windows側との間をハンドシェークにしてみたりとあれこれ試みても変わりません、、、

ハードに問題があるのかと疑って、前々回のブログで報告したFM-7用のカードをFM-11で使用するためのアダプタを使用して、FT245モジュール使用の初代を始め数枚のカードで試してみたり、配置アドレスを変更してみたりしましたが結果は同様でしたので、ハードの問題ではないようです。

現在のところ、3種の通信経路用のSNDCH、RCVCHルーチンを切り替えて使用しているのですが、その箇所が関係していることは分かっています。

切り替えルーチンは以下のようなものです。

 


動作時に希望の通信経路を選択するとIOPORTの値が0,1,2と切り替わり、それに応じてSETADRルーチンが実行されることでアクティブになる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ファイル形式間の変換ソフトも同梱してあります。

 

2025年7月3日木曜日

FM-11用のRTC & COMカードが完成

 FM-11用のリアルタイムクロック(RTC)と拡張COMを作成しました

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は入力に設定したままで出力もできるのでこのような入出力が同じポートで行なわれるような用途には適しています。


 


 
参考までに作成したRTC_WR2, RTC_RD2, RTC_SET2をOneDriveに上げておきます。
機械語プログラムでI2Cを使用するサンプルとしてみていただければと思います。


2025年6月5日木曜日

FM-11用のアダプタを用いてFM-7用カードの動作をテスト

アダプタを使用してFT-245通信カードとRTC_SDカードをテストしました

前回の報告で作成したアダプタを使用して2種のカードのFM-11での動作テストをしてみました。

1.FT-245通信カード

使用したプログラムですが、大きな変更として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への書き込みがまだ実現できていませんが、一応(!)使えそうだということが分かりました。


2.RTC_SDカード

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カードを装着した様子です。アダプタの上に装着しています。


カード装着の様子


ちなみに、画像中の768KB拡張メモリカードは、ブログ「まごころせいじつ堂」を公開しておられるほうめい様がBOOTHで頒布されているFM11RAM基板のgerberファイルを用いて基板を起こして作成したものです。貴重な資料を公開していただきましてありがとうございます。


RTCが動作した


結果は画像のように、RTC_WRで日時を設定し、電源を落としてから再度ONにしてRTC_RDで日時を読みだしてみましたら時刻が保存されていましたので、RTC部はFM-11でも使用できることが確認できました。ただし、F-Basic5.0ではこれらのプログラムは正常に動作しませんでした。今のところ、F-Basic5.0で日時データが保存されているワークエリアが分かっていませんので修正できていません。

以上の結果を踏まえて、FM-11用のFT245通信カード、RTCカードのプリント基板を作成中です。


2025年6月4日水曜日

FM-11にFM-7等のカードを装着するためのアダプタを作成

 FM-11にFM-7等のカードを装着するためのアダプタを作成しました

先日、昔からあこがれていた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ピンです。


作成したアダプタ基板


組み立てた状態の表面


その裏面


メイン部・サブ部の回路


アダプタの使用例1・・・FDCカードを装着

プリント基板を発注して届くまでの間、手配線のアダプタを作成し、それを用いてFM-7で使用している自作FDCカードをFM-11に接続して、320KBのFDドライブが動作しないか試してみましたが動作しませんでした。


手配線の第1作

FM-11にセットして


FDCカードを装着

「Retro PC Gallery」のはせりん様によりますと、FM-11はDMAを使用してFDを読み書きしているのでFDC回路もDMA対応にする必要があるとのことです。

FDC回路の変更は荷が重いと悩んでたところ、幸いなことに知人から2Dドライブインターフェースカードを頂くことができました。ありがとうございました。
ということで、自作のFDCカードを使用する必要はなくなりました。。。

このカードの先に手持ちのいくつかのドライブを接続してみました。

・5インチ2DドライブのTEAC FD-55B
・FM77AV2から取り外した3.5インチ2DのFD-625
・PC用の3.5インチ2HD/2DDドライブ(StepDoubler回路を使用せず直結)
・PC用の3.5インチ2HD/2DDドライブ(StepDoubler回路経由)

これらのうち、残念ながら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度に組み合わせて、使用確認する基板を縦に装着できるように工夫しました。いつものごとく、コネクタの向きを間違えてしまって作り直すことになりましたが、最終的には先頭の画像のようにそれなりにコンパクトなものが出来上がりました。


続いてのアダプタの使用予定・・・FT245高速通信カード、RTC_SDカード


このアダプタは、そもそもFM-7用に作成した自作カードがFM-11でも使用可能かどうかを確認するためのものです。
次に使用確認したいカードとしては、FT245高速通信カードとRTC_SDカードがあります。RTC_SDカードのSD部についてはF-Basic3.0の内部コードを多用しているので移植は無理だと思いますが、RTC部は移植したいです。これがあるとOS-9やFlex9の起動時に毎回日時を入力する手間を省くことができますので。

(次に続きます)