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



2023/5/29
MB8877で各セクタの記録密度をチェックするようになったのに対応するため、
記録密度を指定するI/Oポートを実装しました。



2020/2/1
Neko Project 21/Wのi386コアを組み込んでみました。(多謝多謝です>NP2関係各位)
FMR-50の486版およびFMR-80については、486DX相当になります。
また、ハードディスクのブランクイメージを作ってマウントする機能を追加しました。



2018/5/24
疑似BIOSについて、新しいハードディスクイメージハンドラを使用するよう修正しました。
SCSI HDDについても同様に修正しています。
THD/NHD/HDI/ベタイメージの各形式をサポートしています。



2018/2/25
I/Oポートで、2DDと2HDの切り替えをできるようにしました。
また、疑似BIOSで、ドライブの切り替えや、メディアの種類の取得をできるようにしました。



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って、何のエラーかご存知の方いらっしゃいませんか?
実機のマニュアルを持っていないので何が悪いのやら。