Last Updated on 2022年9月25日 by kabekin
FM-7でFAMOS77を使う、その後です。
先日頂いたFM-7の内部32ピン拡張バスに接続するタイプのFAMOS77基板を取り付けます。
ディスクドライブ本体とRAMアダプタを別々の人から貰ったので、正常に動作するか不安ではありますがOKっぽいです。
この基板ではディスクシステムのI/O領域$4020~$403FをFM-7のI/O領域$FDA0~$FDBFに
そのまま変換しています。
ファミコンで使用されている6502系のMPUは6809と信号タイミングが似ているそうで、
ディスクシステムへの接続はR/#WやE信号は何の細工もなくそのまま接続するだけでOKっぽいですね。
I/O拡張基板に取り付けてみましたが、2番目のスロットに装着しているRS232Cカードの高さと
RAMアダプタの高さが丁度よく、そのままでもGood感じです。
使用する為のプログラムは2種類必要で、両方とも技術評論社のTheBASIC 1988年12月号に載っているそうです。
一つはディスクシステム用のドライバー、もう一つは裏ラムをRAMディスクにするプログラムです。
記事のままでも便利に使えますが、各動作のエントリ番地が覚えにくいので。
ファンクションキーに登録するか、読書用のユーティリティを作った方が便利そうです。
ファンクションキーにエントリ番地を登録するとユーティリティをロードしなくてもいつでも使えるので便利ですがセーブとロードを間違えると厄介なのでユーティリティを作ってみました。
QDはシーケンシャルファイルでアクセスする仕組みのようですので、RAMドライブになった裏ラムを丸ごと読書することで32Kバイトの補助記憶として使用しています。
32Kバイトとは言え、普通では接続できないファミコン用のディスクシステムが繋がって読み書きできているというワクワク感がたまりません^^
それと、使ってみて思うことは読書速度が思った以上に速いということ。
記事によるとQDの場合64Kバイトで約8秒、今回その半分の32Kバイトなので約4秒とのことで、
思った以上に高速で便利に使えます。
320KBフロッピー、QD、データレコーダとトリプルストレージです。
これは、マニアにはたまりません^^
(まだ欲を言うなら、TF-10にDRIVE2~3が増設できればいいのになぁ~)
製作中のS1用OS-9カードにFAMOS用に信号取り出しピンヘッダを付けているのでS1にも応用したいところ・・・
FAMOS77については、情報をまとめて後日レポート予定です(^^)
私の入手したファミコン用ディスクシステムは中後期モデルでプロテクトの解除が必要になるようです。
こちらのサイトを参考に改造しております。→ こちら
完動おめでとうございます。
>ユーティリティを作ってみました。
柔軟な発想が素晴らしいです。
よく使われたBASICのバブルコマンドの乗っ取りとファンクションキー設定しか思いつきませんでした。
このユーティリティもTheBASIC誌に投稿しましたけど採用されませんでしたので資料が残ってないです。
>ワクワク感がたまりません^^
その感覚判ります。
なお頼まれた資料はもう少し待って下さい。FDDの故障の調査で忙殺されていました。
原因が判って対処しましたが動くかどうかはまだ確かめることができない状況です。
FM-7の常設場所も確保しなければなりません。本体はビデオに繋ぎ動作確認済みです。
ガンマ関数さま
コメントありがとうございます。
お陰様で、何の苦労もなくディスクシステムの修理だけで愛用のFM-7にファミコンのディスクシステムを接続して遊ぶことができました^^
FM-7とディスクシステムの組合せで遊ぶ場合はRAMfamのプログラムを逆アセンブルして解読していますが、それ以外の環境で使用する場合はタイミングやコマンドやり取りなどもう少し調べないと私には厳しそうな感じです
ディスクシステムのヘッド位置調整やタイミング確認がうまくいかない原因はFAMOSでのアクセスとファミコンでのアクセスタイミングで何か違いがあるのではないかと考えています。
ファミコンを借りてきて再調整を考えていますが、せっかくFAMOS77で動作するように調整できているのでタイミングを変えるのは勿体ないかもしれませんね。
ユーティリティはF-BASICで作った簡単な物ですが便利に使えています。
昔からCUIの対話式プログラムが好きで無駄にメッセージやキー入力が多いプログラムだったりします^^
まずは、F-BASIC上で動作するアセンブラやデバッガを揃えてデバッガ上で動作させながら動作を調べたいと思います(^^)
タイミングについて
1)FAMOS77(基板)は拡張コネクタに直接に接続する前提だと思ってましたので
逆に配線を引き伸ばしても動いてることは想定外と言うか意外でした。
正直タイミングに付いては詳しくありませんが案外動くことに感心してる次第です。
2)システムの創作者から元のアプリのルーチン以外ではタイミングが厳しいと聞いています。
自分の仕事はアプリを解析し重複してたルーチン等を整理しエントリを調べて報告した程度です。
因みに創作者からFM77AVではタイミングの関係で動かないとの報告を受けてます。
3)ソフトの仕組みはsyncを使って割り込みをかけていたと記憶してます。
ご存知とは思いますけど、windows等などの名前パイプを使う方法に似ています。
あるプロセスからのメッセージを別のプロセスがトリガーとして受けとめ
送られてきたデータを処理する感覚に近いです。そして基本はその繰り返しです。
sync使う時はタイミングが厳しい場合が多いようです。
情報ありがとうございます。
拡張コネクタの引き出しはバッファ無しのタイプでもバッファ有りのタイプでもどちらでも動作しました。
バッファが無いとファンアウトの問題等は気になりますが信号の遅延はあまり考えなくてもよさそうなのでいつもはバッファ無しで利用しています^^
ディスクシステムのタイミングが厳しいと感じているのはヘッド位置調整がどの参考サイトの方法でもうまくいかず、原因が今のところ掴めていないので気になっています。
参考サイトの情報ではそれほどシビアな調整っぽくなく、ヘッド移動位置の開始位置と終了位置はリミットスイッチで検出しているのでコマンド発行から開始位置までのタイミング等がミソなのかと考えています。
FM77AVではタイミングの関係で動作しないということは、やっぱり結構シビアな感じなのかもしれませんね。
ディスクシステムの詳しい仕様はわかりませんが、仕様を見ている限りではコマンドで動作するようですね。
しかしPC88のインテリジェントドライブのようにディスクアクセスと非同期でデータを読み書きできる仕組みでもなさそうなので使い方のイメージが掴めていません。
まぁ、これを調べていくのも楽しそうです^^ 今後デバッグやトレースできる環境を揃える予定です(^^)