-------------------------------------------------------------------------
名称      「$FM命令」FX Binary Filer用 ファイルマネジャ  Rev 0.06
動作環境  FX-870P、FX-870P + RP-8/33、VX-4+RP-8/33、VX-3+RP-8/33
          導入にはPCとの通信環境(RS232Cレベルコンバータ等)が必須です。
免責事項  本プログラムはFBF専用ソフトです。VX-MENUでは利用できません。
          基本的に好きなように使ってくださってOKです。
          添付のソースも自由にお使い下さい。転載も自由です。
          ただし、本プログラムの暴走等で何らかの損害が発生した場合の
          責任はとれません。(正常動作するように努力はしていますが)
          利用は各自の責任で行って下さい。
制作者    あお(QZE12045@nifty.com)
URL       http://www.lsigame.com/  (最新版)
-------------------------------------------------------------------------
■説明
FBF(FX Binary Filer)向けのファイル操作ユーティリティです。
ファイルシステムに登録する事で、FBF-FMxx.BASとFBF-BINxx.BAS及び、
拡張CLEAR命令(CL.R)相当の機能を提供します。

全てマシン語で記述してますので、上記3ファイルを利用するより省メモリ
(1809Byte)かつ高速に動作します。

VX-MENUライクな操作でかつFBFの持つコンパクトさを兼ね備えていますので
より少ないメモリ容量で快適にファイルシステムを利用したい方に最適です。


■動作環境
FBF(FX Binary Filer)が動作する環境なら利用可能です。
VX-MENU環境では利用できませんので（多分暴走します・・）
ご注意ください。

詳細な動作要件はFBFのドキュメントを確認してください。
http://www.lsigame.com/pb-1000/softlib/fbf/fbf.htm

■アーカイブの説明
 Readme.txt         --- 操作説明書(今読んでいるドキュメントです)

 /FX870P/boot.b     --- $FM.R起動用BASICプログラム(FX-870P/VX-4用)
 /FX870P/fm_RR.pbf  --- $FM命令 実行ファイル(FX-870P/VX-4用)
 /FX870P/FM2Bin.b   --- FBF用PBFファイルローダ(FX-870P/VX-4用)

 /VX3/bootVx3.b     --- $FM.R起動用BASICプログラム。(VX-3用)
 /VX3/fm_RR_Vx3.pbf --- $FM命令 実行ファイル(VX-3用)
 /VX3/FM2BinVx3.b   --- FBF用PBFファイルローダ(VX-3用)

 /SRC/FM.S          --- $FM命令ソースファイル(FX-870P/VX-4/VX-3用)
 /SRC/FM2Bin.s      --- FBF用PBFローダ処理ソースファイル


■インストール方法
○FX-870P/VX-4
(1)FBFをインストール後、FM2Bin.bをF.COMでP0〜P9のいずれかのスロットに読み込んで、
  RUN起動すると、"CONNECT:"と表示されますので、fm_RR.pbfを転送して下さい。
  "Completed!"表示後、FBFに$FM.Rファイルが登録されます。
(2)F.COMでboot.bを"P7"に読み込んで下さい。(←必ず"P7"に登録してください。)
  あとは[Shift]+[7]でメニューが起動します。

○VX-3
(1)FBFをインストール後、FM2BinVx3.bをF.COMでP0〜P9のいずれかのスロットに読み込んで、
  RUN起動すると、"CONNECT:"と表示されますので、FM_RR_Vx3.PBFを転送して下さい。
  "Completed!"表示後、FBFに$FM.Rファイルが登録されます。
(2)F.COMでbootVx3.bを"P7"に読み込んで下さい。(←必ず"P7"に登録してください。)
  あとは[Shift]+[7]でメニューが起動します。

FM命令のインストール後は、FM2Bin.b/FM2BinVx3.bは空き容量確保の為、削除しておいた方が
良いでしょう。

■アンインストール方法
 [name ]操作で$FM.Rを別名にリネーム後、[kill ]操作で削除してください。
 後は、"P7"に格納してあるboot.b/bootVx3.bをF.COMから削除すればOKです。

■操作方法
[Shift]+[7]で起動すると、FBF先頭に登録されたファイル情報を表示して
キー入力待ち状態になります。

操作方法は、ほぼVX-MENUと合わせてありますので、そちらを利用した事がある方
でしたら特に迷う事はないと思います。

→VX-MENUと同様、キー入力に標準入力処理(KYIN)を利用しているため、キーリピート
　/チャタリング制御/電源OFF/コントラスト変更/オートパワーオフ機能がメニュー
　上から普通に動作します。

○ファイル名表示/ファイル情報表示
ファイル名/ファイル種別と、各種情報表示を行います。
[MODE]キー押下で、ファイル情報とシステム空き容量表示を切り替えます(下記)。
(1)ファイル名　種別(M/m/R)                         システム空きエリア B
(2)ファイル名　種別(M/m/R) サイズ $先頭アドレス-最終アドレス@実行アドレス

○操作キー説明
表示ファイルに対して以下の操作が可能です。

[↓][↑]キーでカレントファイル情報を更新表示します。

[EXE] -- ファイル実行
　種別M(実行形式)または、R（RR形式のファイル)を自動判別して実行します。
　Mの場合は、所定メモリ位置にロード後実行します。
　種別Rの場合は、格納位置でリロケート実行します。
　ロード可能アドレスは以下の通りです(VX-MENUと同じです)
　○FX-870P/VX-4
	0000H〜0FFFH ------ 無条件でロード/実行(VX-4ではRAMが未実装な領域なので注意)
	1000H〜1CCFH ------ 無条件でロード/実行
	1CD0H〜DIREN ------ 拡張CLEARによるエリア確保がなされていれば、ロード/実行。
	それ以外は、実行不能（エラーメッセージ"No area"を表示）。
　○VX-3
	0000H〜5FFFH ------ 無条件でロード/実行(無改造VX-3ではRAMが未実装な領域なので注意)
	6000H〜6CCFH ------ 無条件でロード/実行
	6CD0H〜DIREN ------ 拡張CLEARによるエリア確保がなされていれば、ロード/実行。
	それ以外は、実行不能（エラーメッセージ"No area"を表示）。

[name  ] -- ファイル名の変更
　"N"キーで起動できます。
　new name?と表示され、ファイル名入力状態となりますので、8文字以内で
　ファイル名を入力して下さい。[EXE]押下にて入力結果が反映されます。
　既に存在するファイル名を指定した場合は、再入力となります。

[kill ] -- ファイルの削除
　"K"キーで起動できます。
　kill?y/n と表示されますので、"Y"キー入力で該当ファイルを削除します。
　ファイル名先頭に"$"が付いているファイルは削除できません。
　削除する場合は、[name  ]操作で"$"を別の名称に変更してから行ってください。

[load ] -- PBFファイル受信
　"L"キーにて起動します。
　loading pbf. と表示されファイル受信待ちになりますので、RS232C経由でpbfファイルを
　転送してください。通信速度は、F.COM規定値となります。(4800BPSまで)
　受信完了後、新規ファイルがFBFに登録され、メニュー画面に戻ります。
　既に登録があるファイルと同じ名称のファイルは"Name error"となり、受信/ファイル登録が
　できません。（上書き登録ができません）
　このような場合は、あらかじめ既存ファイルを削除しておくか、別の名称にリネームしてから
　[load ]操作を行ってください。

[*sys ] -- システム設定
　"*"キーで起動します。[BINARY ][DEVICE ]設定が可能です。
(1)[BINARY ] - バイナリ(マシン語)エリアの確保
　｢拡張CLEAR命令｣による容量確保が必要なプログラムをロード/実行する場合に使って下さい。
　"B"キー入力でBinaryエリア設定画面になります。
　Bin size: XXXX と現在のバイナリサイズが表示され、メッセージ>binary?と出て
　数値入力状態となりますので、必要なバイナリサイズを10進数で入力して下さい。
　[EXE]にて値を反映して、メニューを再起動します。（VX-MENUと同じ仕様です）
(2)[DEVICE ] - RS-232C(COM0:)通信設定
　"D"キー入力でF.COMの[DEVICE][SWITCH]画面に遷移しますので、COM0(RS232C)用の
　各パラメータを設定してください。
　設定後、F.COMに飛んでしまい、直接MENUに戻れませんのでご注意下さい。


■エラーメッセージ
No area.      --- バイナリ実行エリアが確保されていない。
                  または何らかの理由で[EXE]実行できない。
                  ([BINARY]メニューにて動作エリアを確保するか、再度アセンブルして
                  実行エリアを調整する)
Name error.   --- 既に同じ名前のファイルが存在する。
                  PBF受信時に既存のファイルと同じ名称のファイルが登録されている場合、
                  このエラーを表示します。


■ソースコードについて
HD61(Rev0.43)にてアセンブル可能です。
RR形式化は、FBF4.0a付属の一括変換ツール(rrcre.vbs、c.bat)を利用して下さい。
コマンドプロンプトで以下の操作でアセンブル→RR形式変換が可能です。

>c FM.S $fm [Enter]


■おわりに
FBF4.0更新に伴って、HD61/VX-MENUにてRR形式(Ver2.0)の対応作業をしていて
ふと思ったのが「便利になったけど結構メモリを消費しているなあ・・」でした。

VX-MENUほどの高機能は不要で、シンプルにマシン語の実行環境を構築したい場合に、
VX-MENU Lite版的なモノがあっても良いのではないかと検討したのが、
今回発表した$FM命令となります。

たくさんの方にご利用頂けると幸いです。

＠あお


■参考文献
1.「FX-870P解析詳細」こたちゃん氏  ポケコンジャーナル 1991/7号
2.「FX-Binary-Filer(FBF)」JUN AMANO氏 ( http://www.lsigame.com/ )
3.「ファイルのコピーコマンド($CP.R)」JUN AMANO氏 ( http://www.lsigame.com/ )

■履歴
Rev: 0.01  2011.02.19 最初のバージョン。高速PBFローダを添付。
Rev: 0.02  2011.02.26 [MODE]による情報表示切り替えを追加。コード整理を実施。
Rev: 0.03  2022.02.23 ファイルサイズが10000Byteを超える場合の表示不具合を修正。
Rev: 0.04  2023.12.10 拡張子が".D"の場合、種別を"m"非実行とした。
Rev: 0.05  2024.11.02 VX-3+RP-8/VX-3+RP-33環境に対応。FX-870P/VX-4用も再ビルド。
           2024.11.04 VX-3版：F.COM中のCAL MODEへの戻り番地を修正。
Rev: 0.06  2025.09.12 PBFが正しく読み込めない不具合を修正。$FM命令／FM2Bin.b／FM2BinVx3.b
