ラベル 2Dドライブ の投稿を表示しています。 すべての投稿を表示
ラベル 2Dドライブ の投稿を表示しています。 すべての投稿を表示

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を使うことなどを考慮すると、結構手間取りそうです。。。