歓迎光臨
"eFMR-50" - FUJITSU FMR-50 emulator for Win32
"eFMR-60" - FUJITSU FMR-60 emulator for Win32
"eFMR-70" - FUJITSU FMR-70 emulator for Win32
"eFMR-80" - FUJITSU FMR-80 emulator for Win32

"eFMR-50" is FUJITSU FMR-50 emulator for Win32.
"eFMR-60" is FUJITSU FMR-60 emulator for Win32.
"eFMR-70" is FUJITSU FMR-70 emulator for Win32.
"eFMR-80" is FUJITSU FMR-80 emulator for Win32.
These softwares are under GNU GENERAL PUBLIC LICENSE.

This software requires Windows 2000/XP/Vista/7.

Download: Jump to Common Source Code Project



eFMR-50/60/70/80 謎WIPページ

FMR-50シリーズは、官公庁や文教分野でそこそこ使われていたようです。
(私の通っていた中学校にも導入されていました)
私の開発ネタとしては、初めて実用的な価値が出てくるかもしれませんね。



2016/3/5
SCSIインタフェースと、SCSIハードディスクドライブをガチンコでサポートできました。
それに伴い、実機IPLを使用時は、疑似BIOSによらないディスクアクセスを実現しています。
実機IPLがない場合は、従来通り疑似BIOSが有効となります。

これに合わせて、コモン側で、uPD71071を修正しました。
リセット時のモードレジスタとマスクレジスタの値を変更しています。



2015/8/5
疑似BIOSにおいて、フロッピーディスクの処理を改良しました。
フォーマット時に、データフィールドの存在しないセクターを書き込めるようにしました。
また、ID CRCエラーと、DATA CRCエラーを分けて扱うようにしました。



2015/3/15
ステートセーブに対応しました。



2015/3/13

フロッピーディスクの物理フォーマットをサポートしました。
ディスクアクセス周りはすべてBIOSエミュレーションで処理していますが、
こちらのフォーマットの処理を、MB887のライトトラック相当に修正しています。



2014/5/1
286コアをMAME 0.149ベースに、386コアをMAME 0.152ベースに置き換えました。
また、CPUの種類毎に、バイナリを分けるようにしました。
現状では、286/386/486版のバイナリを用意しています。
それに応じて、eFMR-60の386/486版を、eFMR-70, eFMR-80と改名しました。

386/486版ですが、まだ実機のIPLでの起動を確認できていません。
手持ちのFMR-50NE/T3のIPLでは、ハードウェアの試験中にフリーズしてしまいます。
取り敢えず、内蔵の互換IPLでご使用ください。

その他、CPU/DMAのアドレスマスクを修正したり、
リセット原因レジスタのSHUTDOWNフラグを実装したり、
アナログパレット周りのI/Oを修正したり、
テキストカラー#0を暗い白色にしたり、
テキスト画面のリバース・ブリンク周りの実装を修正したり、
フリーランカウンタを実装したりと、幾つか細かい修正をしています。


一太郎 Ver.5は、286版ではインストーラが動作しません。


386/486版のバイナリであれば、インストーラが起動します。


レッスン一太郎を起動しました。
パレット回りに不備があるっぽいですが、一応動作しています。



2009/12/28
マシンIDに応じて、CPUの種類を、自動的に286/386から選択するようにしました。
ただし、現状ではまだ386マシンのBIOSで起動できておりません。
高精度タイマなど、386以降の機種で色々と追加されているI/Oがあるようですね。
この辺はまあおいおい。

内部的には、FMR-CARDのサポートの下準備なんかも進めているのですが、
こちらもまだまだ実機の調査が必要な感じです。



2009/4/1
FMR-60が一応動作するようになりましたのでリリースします。
EMM.SYSやGDS.SYSがCONFIG.SYSに登録されていなければ、そこそこ動作するようです。


例によってFILMTN。
やはり16ドットフォントと比較すると綺麗ですね。
…PC-H98とかもやってみたいなあ。


CONFIG.SYSの内容はこんな感じ。
EMM.SYSやGDS.SYSが登録されていると、起動中に暴走します。
GDS.SYSの方は、ACRTCの問題かな?


GDS.SYSなしではグラフィックは出ないのですが、テキストベースのこれなら動作します。



2009/2/14
色々と大ボケをかましつつ進展中です。


MS-DOSのブート中でフリーズしてしまいます。
CLIもなしに割込みベクタを0で塗り潰したところでタイマ割込みが発生して、
そのままPC=0に飛んで暴走しているようです。


試しに無理やり割込みベクタを潰されないようにしたらエラー発生。
中々うまくいかないものですね。



2009/2/10
FMR-60の実装を開始しました。
とにかく画面がでけえです。


メモリチェック。


ディスクを挿入しても認識してくれません。
今のところ、ここまで。



2009/2/8
Win32側の実装で、ウィンドウの最小化ボタンを追加しました。
共通部分ですので、この修正は全機種に反映されています。
…えーと、何で付けてなかったんだっけ?(苦笑)


直線補間や論理演算周りの実装を進めています。
論理演算については、COMPARE以外は実装済みです。

スクリーンショットは柿木将棋のものです。
盤面だけでなく、駒の文字も直線補間によって描画しています。
漢字ROMから取得したパターンをラインスタイルパターンレジスタに登録して、
横方向に16ドット長のラインを描画しているようです。


互換BIOSの実装の修正を行いました。
ディスクBIOSの$FAの返り値を修正することで、MS-DOS V6が動作するようになりました。
また、メモリカードサポートや電源管理など、ノート特有のBIOSの実装も行っています。
ノート実機が入手できたら動作確認してみたいですね。

その他、テキスト画面の40桁/20行モードやカーソルの終了ライン、I/Oの返り値の細かい修正など。
FMR-50と共通のコードでFMR-60の実装を始める前に、共通部分の完成度を高めたいところです。



2009/1/16
メモリのバンク切り替えの処理を高速化しました。
従来は実装を手抜きして16MB空間全体を毎回設定していましたが、
これを本当に切り替わる部分だけ設定するように変更しています。

例えばGRAFIGHTでは、ゲーム中頻繁にバンク切り替え行っており、
顕著に処理が軽くなっていることが体感できるかと思います。

コモンソースコードプロジェクトの方で、仮想画面をユーザ定義型に変更しました。
(Win32側だけでなく、各仮想マシンの画面生成処理部も同様です)
これによって、同じソースでRGB555, RGB565, RGB888を指定できるようになりました。
全機種で、PCではRGB888、CE.NETではRGB565(従来と同じ)を指定しています。



2009/1/2
出力ポートの$20のbit6にある、ソフトウェア電源オフをサポートしました。
(POFF.COMは、電源オフの準備をするだけで、自動的には電源が落ちないようですが)

次辺りから、直線補完LSIとFMR-CARDの実装を予定しています。



2008/10/17
互換BIOSの実装を行いました。
実機のIPLがない場合、内蔵の互換BIOSを使用してブートします。
実機のIPLと比較して、画面周りの挙動がやや異なりますが、大体は動作するようです。
ANK/漢字ROMはWindowsフォントから生成できますので、あとはソフトがあれば使用可能です。


SCSIハードディスクをサポートしました。
ハードディスクからの起動も可能です。
セクタ長(512バイト)の整数倍のサイズのファイルをSCSI*.DAT(*: 0〜7)という名前で作成すると、
そのIDのSCSIハードディスクとして認識します。
なお、区画割についてはMS-DOS上でDISKPATで行ってください。



信長の野望全国版の画面が化ける問題が解決しました。
ANK/漢字ROMにアクセスするI/Oが未実装のため、文字パターンが取得できなかったのと、
画面モード(200/400ライン)がVRAMのバンク切り替えに反映していなかったため、
別のページのVRAMにデータを書き込んでいたのが原因です。
てっきりパレットの問題だと思っていましたが、これは盲点でした。

以下、こんなソフトも動いていますという報告です。
主にVectorで公開されているソフトを中心に動作確認を進めています。



ファイラーのFILMTN。
先日のバージョンでは、int93h,AH=FAhのサービスでフリーズしてしまいました。


こちらも同じくファイラーのFD。


テキストエディタのNEED。



2008/10/11

GDS-BASEが動作しない不具合を修正しました。
$CFF86のステータスレジスタにおいて、直線補完LSIがBUSYになりっぱなしだったのが原因です。
これでCONFIG.SYSにGDS.SYSが登録されていてもフリーズしなくなりました。

また、グラフィック画面の描画をサポートしました。
テキスト画面でも地味にカーソルの描画をサポートしています。



GRAFIGHTはVectorに登録されているFMR-50用横スクロールシューティングです。
パワーアップで武装が変わっていくのが楽しいですね。


信長の野望全国版は、どうも描画がうまくいきません。
FRM-50と、FMR-60/16ドット表示カードの仕様の狭間の問題な気がします。



2008/10/10
キーボード周りの実装が完了しました。
GDS-BASEが動作しない不具合が残っていますが、一先ずリリースします。


MS-DOSがブートしたところ。


SETUP.EXEを実行してみます。


メモリは4MB実装していますが、EMSはまだ実装できていません。


TYPEコマンドでREADME.DOCを表示してみました。
そう、このころはテキストの拡張子はDOCだったんですよね。


聖人氏@もしかしたら開発室の開発された、なんか四角の塊を横一列揃えて消していくアレ。
GDS-BASEを使用しないソフトであれば、ゲームなんかも動作します。


こちらはAuO2氏のテキスト版テトリス。



2008/10/8
ディスク周りをBIOSレベルでエミュレーションする事で、何とかブートするようになりました。
後はキーボード周りを実装すれば、一応は公開可能なレベルになるかと思います。


ただし、CONFIG.SYSにGDS.SYSが登録されていると、ロード中にフリーズします。
GDS.SYSはグラフィック周りのBIOSなのですが、確かに画面周りは未実装な部分がまだまだ
多いですので、フリーズしても仕方ないですかね。



2008/5/2
診断エラー70は、タイマ絡みのものだったようです。
割込み要因レジスタ($60)の未定義ビットを1にすることで先に進みました。
(普通は必要なビットだけマスクして読むと思うんですが)



現状ではMS-DOSがもう少しでブートするところまで。
おそらくSCSI周りの応答の問題かと思われます。
SCSIのないモデルのIPLだったらブート出来るかもしれませんね。



同じFMR-50シリーズの起動ディスクでも、起動できないものがあるようです。



2008/5/1
猫煮の人から起動ディスクを譲って頂いたので、折角だから開発します。
ターゲットは、80286を搭載した初期のFMR-50シリーズです。
実機はFMR-50LT5を使用しています。
徹底解析マニュアルは抑えてあるのですが、出来れば増補版が欲しいところ。



現状では、メモリチェックをしたところで診断エラーが発生します。
ところで診断エラー70って、何のエラーかご存知の方いらっしゃいませんか?
実機のマニュアルを持っていないので何が悪いのやら。