最終更新:2012/05/15

FM-7エミュレータ XM7
-an eXcellent fujitsu Micro seven emulator, for 7 platforms-

目次

※ 他の情報はたけがみりう氏のサイトを参照してください。
※ 本家XM7のページは、現在サイトがありませんので、リンクを切りました。いずれ本家が復活したときは再リンクしたいと思います。(2011/12/13付記)

はじめに

XM7は、1982年に富士通より発売された8bitパソコン、FM-7のエミュレータです。FM-7は「究極の8bitMPU」6809を2つ搭載したホビーパソコンで、FM-8の後継機種として登場しました。FM-7がベストセラーとなった後、FM-77→FM77AV→FM77AV40と拡張を続け、1988年発売のFM77AV40SXをもってシリーズ終了となっています。

XM7はエミュレーション機種によってV1〜V3まで3系統のバージョンに分かれています。
バージョン系列エミュレート機種対応プラットフォーム最新正式バージョン
V1.0FM-7X68k,PC-98x1,Linux,Win16,FM-TOWNS,IBM-PC,Win32V1.0L20
V1.1FM-7,FM-77L4,FM-8Win32V1.1L30a
V2.xFM-7,FM77AVWin32V2.9L40 / V2.5L20
V3.xFM-7,FM77AV,FM77AV40EX/SXWin32V3.4L40 / V3.0L30

XM7についてのより詳しい情報については、たけがみりう氏サイトのXM7ページを参照してください。

このページは再配布を目的に作成されている為、私は開発等には携わっておりません。

UNLHA32.DLL 等の作者である Micco氏から、LZH書庫のヘッダー処理における脆弱性が指摘されていますが、ウイルス対策ソフトの対応は将来見込まれないことから、このサイトでダウンロード可能なファイルは、LZH形式から ZIP形式に変更しました。(10/06/26)
参考:LZH書庫利用における危険性についての注意喚起

動作OS

XM7が動作するのは、シャープ製パーソナルワークステーションX680x0シリーズ、NEC製パーソナルコンピュータPC-9801シリーズ、Linux+X Window、Microsoft Windows(Win16)、富士通製パーソナルコンピュータFM-TOWNSシリーズ、IBM製The PC互換機、Microsoft Windows(Win32)+DirectXの7種類です。
このうち、V1.1,V2.x,V3.xが動作するのはWindows 95以降のWin32系OS(Windows 95/Windows 98/Windows Me/Windows NT 4.0/Windows 2000/Windows XP/Windows Vista/Windows 7)+DirectX3以降です。
ただし、OSによっては以下の制限事項が発生します。

各プラットフォームとも、仮想マシンは全て共通のものを使っていますが、入出力のエミュレーション状況で各々違いがあります。以下の表を参考にして下さい。
系列プラットフォーム理想環境CPUコアグラフィックサウンドジョイスティックGUI
V1.0X680x068060 50MHzC言語版768×512
(X68k標準)
なし2ポート
(X68k標準)
共通GUI
PC-9801Pentium 133MHzアセンブラ版640×400
(PC-98標準)
PC-9801-26K
(BEEP音なし)
2ポート
(PC-9801-26K)
共通GUI
LinuxPentiumII 400MHzアセンブラ版ウインドウ (XSHM)/dev/dspなし共通GUI
Win16MMX Pentium 233MHzアセンブラ版ウインドウ (GDI)なしなしWin16メニュー、共通GUI
FM-TOWNSPentium 166MHzアセンブラ版640×400
(FM-R50互換)
なし2ポート
(FM-TOWNS標準)
共通GUI
IBM-PCK6-2 300MHzアセンブラ版640×200 (EGA)Sound Blaster/Sound Blaster161ポート
(ゲームポート)
共通GUI
Win32K6-2 400MHzアセンブラ版ウインドウ
(GDI/DirectDraw)
DirectSound標準ジョイスティックデバイスWin32メニュー
V1.1Win32K6-2 400MHzアセンブラ版ウインドウ
(GDI/DirectDraw)
DirectSound標準ジョイスティックデバイスWin32メニュー
V2.x
V3.x
Win32K6-3 450MHzアセンブラ版ウインドウ
(GDI/DirectDraw)
DirectSound標準ジョイスティックデバイスWin32メニュー

ROM

XM7を実行するには、FM-7シリーズ/FM-8のROMデータをファイル化したものが必要です。
ROMデータは、使用者が所有しているFM7シリーズ/FM-8実機から取り出す必要があります。

XM7では以下のファイル構成を想定しています。

(※) XM7向けの互換ROMセットがApollo氏のXM7お手伝いぺ〜じから入手できます。あわせてご覧ください。
ファイル名ファイルサイズ内容配置空間配置アドレスV1.0V1.1V2.xV3.x
FBASIC30.ROM31,744 bytesF-BASIC V3.0, F-BIOSメイン$38000-$3FBFF
FBASIC10.ROM31,744 bytesF-BASIC V1.0, F-BIOSメイン$38000-$3FBFF
BOOT_BAS.ROM512 bytesブートROM (BASICモード)メイン$3FE00-$3FFDF
BOOTBAS8.ROM512 bytesブートROM (BASICモード・FM-8)メイン$3FE00-$3FFDF
BOOT_DOS.ROM512 bytesブートROM (DOSモード)メイン$3FE00-$3FFDF
BOOTDOS8.ROM512 bytesブートROM (DOSモード・FM-8)メイン$3FE00-$3FFDF
BOOT_MMR.ROM512 bytesブートROM (隠し)メイン$3E00-$3FFDF
SUBSYS_C.ROM10,240 bytes8x8フォント
サブモニタROM (タイプC)
サブ$1D800-$1FFFF
SUBSYS_8.ROM10,240 bytes8x8フォント
サブモニタROM (FM-8)
サブ$1D800-$1FFFF
SUBSYSL4.ROM18,432 bytes400ラインセット
サブモニタROM
サブ$19800-$1BFFF
$1E000-$1FFFF
ANKCG16.ROM4,096 bytes400ラインセット
テキスト画面フォント
CRTC
KANJI.ROM131,072 bytes第一水準漢字、非漢字I/O4バイトI/O経由
INITIATE.ROM8,192 bytesFM77AV イニシエータROMメイン$36000-$37FFF
SUBSYS_A.ROM8,192 bytesサブモニタROM3 (タイプA)サブ$1E000-$1FFFF
SUBSYS_B.ROM8,192 bytesサブモニタROM3 (タイプB)サブ$1E000-$1FFFF
SUBSYSCG.ROM8,192 bytesキャラクタROM
サブモニタROM1/2 (4バンク)
サブ$1D800-$1DFFF
KANJI2.ROM131,072 bytes第二水準漢字I/O4バイトI/O経由
DICROM.ROM262,144 bytes漢字変換辞書メイン(※)$2E000-$2EFFF△(※)
EXTSUB.ROM49,152 bytes拡張サブモニタROM (タイプD,タイプE)メイン$2E000-$2EFFF
JSUBMON.ROM16,384 bytes辞書アクセスルーチンROM日本語サブ$C000-$FFFF
(※) V1.1の場合、日本語サブシステムは $A000-$AFFF にマッピングされます。

FM-7シリーズを用いた、V1対応ROM取り出し方法はこちらで紹介しています。
日本語通信カード上のROM取り出し方法(V1.1対応)はこちらで紹介しています。
FM77AVを用いた、V1/V2対応ROM取り出し方法はこちらで紹介しています。
FM77AV40EX/SXを用いた、V3対応ROM取り出し方法はこちらで紹介しています。

前バージョンからの変更点

(2011/04/23)
V1.1L30→V1.1L30aの変更点一覧です。
(2010/12/23)

共通

V3.4L31a→V3.4L40,V2.9L31a→V2.9L40,V1.1L21a→V1.1L30の変更点一覧です。 V3.4L31a→V3.4L40,V2.9L31a→V2.9L40の変更点一覧です。 V3.4L31a→V3.4L40の変更点一覧です。 V1.1L21a→V1.1L30の変更点一覧です。 V2.9L40は、上位バージョンであるV3.4L40をベースに、FM77AV40EX拡張部分を削除したバージョンです。動作としてはV3系でエミュレート対象機種をFM77AVにした場合と同等ですが、バージョン判定・振り分けが不要な分軽くなっています。またROMはV2のセットで動作します。

今回のCPU周りの修正点の多くはXM7dash開発者のトマさんに指摘していただきました。ありがとうございました。

修正情報

現在、次バージョンリリース時に予定している修正・改善情報は以下の通りです。(2012/05/14現在) 今回の一部の修正・変更点はXM7dash開発者のトマさん、XM7LP開発者のBen.JPさん、XM7X開発者のレッドナウさん、中年初心者さん、はせりんさんに指摘していただきました。ありがとうございました。

ダウンロード

XM7本体

XM7 for Win32 + DirectX (V3.4L40)
XM7.exeおよびドキュメントです。別途、FM77AV40EX/SXのROMデータが必要です。
xm7_3440.zipのダウンロード (272,382 bytes, yohkai)

XM7 for Win32 + DirectX (V2.9L40)
XM7.exeおよびドキュメントです。別途、FM77AVシリーズのROMデータが必要です。
xm7_2940.zipのダウンロード (257,896 bytes, yohkai)

XM7 for Win32 + DirectX (V2.9L40-V2憑き)
XM7 V2.9L40にFMTV-151のチャンネルコール再現機能を追加したものです。絶対本気にしないこと。
XM7.exeおよびドキュメントです。別途、FM77AVシリーズのROMデータが必要です。
xm7_2940v2.zipのダウンロード (260,413 bytes, yohkai)

XM7 for Win32 + DirectX (V1.1L30a)
XM7.exeおよびドキュメントです。別途、FM-7シリーズのROMデータが必要です。
xm7_1130a.zipのダウンロード (256,613 bytes, yohkai)

ソースファイル

XM7 Full Source (V1.1L30/V2.9L40/V3.4L40)
XM7本体、周辺ツールの全ソースファイルです。V1.1L30/V2.9L40/V3.4L40の兼用になっています。
(※)最新のソースファイルは、たけがみりう氏のサイトを参照してください。
xm7_3440s.zipのダウンロード (426,673 bytes, yohkai)

ツール類

MKEXTSUB(AV40用拡張サブモニタ抽出ツール) v0.3
XM7 V3をFM77AV40のROMデータで動かすための補助ツールです。
FM77AV40専用版F-BASIC V3.4L20システムディスクのD77形式ディスクイメージが必要です。
(※) XM7 V2をご利用になる場合やFM77AV40EX/SXをお持ちの場合は、ダウンロードする必要はありません。
mkextv03.zipのダウンロード (31,563 bytes, yohkai)

MAKEFONT(XM7/Unz用フォントファイル作成ツール) v0.31
Windows用フォントからXM7・Unz(Kasanova氏作)用のフォントファイルを作成するツールです。
makefont031.zipのダウンロード (40,783 bytes, yohkai)

過去のバージョン

※ PI.氏は2001年7月23日公開分(V3.0L30/V2.5L20)まで開発されました。
 以後、たけがみりう氏が引き継ぎ、現在に至ります。
※V3.0L30/V2.5L20以前のバージョンはこちらから入手できます。

・たけがみりう氏開発分
(yohkaiサーバ)
公開日バージョン対応機種 ダウンロード 
2010/12/23V1.1L30Win32256,655 bytes
2010/07/07V1.1L21aWin32252,236 bytes
2010/07/07V3.4L31aWin32267,617 bytes
2010/07/07V2.9L31aWin32253,867 bytes
2010/07/07V2.9L31a-V2憑きWin32256,717 bytes
2010/06/23V1.1L21Win32252,112 bytes
2010/06/23V3.4L31Win32267,410 bytes
2010/06/23V2.9L31Win32253,736 bytes
2010/06/23V2.9L31-V2憑きWin32256,628 bytes
2010/01/23V1.1L20Win32246,171 bytes
2010/01/23V3.4L30Win32267,322 bytes
2010/01/23V2.9L30Win32252,320 bytes
2010/01/23V2.9L30-V2憑きWin32254,874 bytes
2009/08/23V1.1L12Win32243,866 bytes
2009/08/23V3.4L23Win32265,000 bytes
2009/08/23V2.9L23Win32250,195 bytes
2009/08/23V2.9L23-V2憑きWin32253,079 bytes
2008/02/23V1.1L11Win32244,140 bytes
2008/02/23V3.4L22Win32264,718 bytes
2008/02/23V2.9L22Win32250,098 bytes
2008/02/23V2.9L22-V2憑きWin32252,929 bytes
2006/10/23V1.1L10Win32243,500 bytes
2005/10/23V3.4L21aWin32264,891 bytes
2005/10/23V2.9L21aWin32249,456 bytes
2005/10/23V2.9L21a-V2憑きWin32252,272 bytes
2005/10/23V1.1べーた・その4Win32235,166 bytes
2005/03/23V3.4L21Win32264,580 bytes
2005/03/23V2.9L21Win32249,399 bytes
2005/03/23V2.9L21-V2憑きWin32252,269 bytes
2005/03/23V1.1べーた・その3Win32233,074 bytes
2004/12/23V1.1べーた・その2Win32231,886 bytes
2004/11/23V3.4L20aWin32263,340 bytes
2004/11/23V2.9L20aWin32248,177 bytes
2004/11/23V2.9L20a-V2憑きWin32251,001 bytes
2004/11/23V1.1べーたWin32228,377 bytes
2004/10/23V3.4L20Win32263,185 bytes
2004/10/23V2.9L20Win32247,967 bytes
2004/10/23V2.9L20-V2憑きWin32250,727 bytes
2004/06/23V3.4L10Win32264,106 bytes
2004/06/23V2.9L10Win32249,048 bytes
2004/06/23V2.9L10-V2憑きWin32251,767 bytes
2004/04/23V3.4Win32263,032 bytes
2004/04/23V2.9Win32247,888 bytes
2004/04/23V2.9-V2憑きWin32250,456 bytes
2003/10/23V3.3L31aWin32258,948 bytes
2003/10/23V2.8L31aWin32245,142 bytes
2003/10/23V2.8L31a-V2憑きWin32247,453 bytes
2003/08/23V3.3L31Win32259,376 bytes
2003/08/23V2.8L31Win32245,550 bytes
2003/08/23V2.8L31-V2憑きWin32247,741 bytes
2003/05/23V3.3L30Win32257,165 bytes
2003/05/23V2.8L30Win32243,140 bytes
2003/05/23V2.8L30-V2憑きWin32245,584 bytes
2003/03/23V3.3L20Win32254,387 bytes
2003/03/23V2.8L20Win32240,951 bytes
2003/03/23V2.8L20-V2憑きWin32243,410 bytes
2003/02/23V3.3L10Win32253,312 bytes
2003/02/23V2.8L10Win32239,507 bytes
2003/02/23V2.8L10-V2憑きWin32242,091 bytes
2003/01/23V3.3aWin32249,558 bytes
2003/01/23V2.8aWin32235,982 bytes
2003/01/23V2.8a-V2憑きWin32238,461 bytes
2003/01/23V3.3Win32250,116 bytes
2003/01/23V2.8Win32235,469 bytes
2003/01/23V2.8-V2憑きWin32237,861 bytes
2002/11/23V3.2L10Win32190,184 bytes
2002/11/23V2.7L10Win32176,294 bytes
2002/11/23V2.7L10-V2憑きWin32178,803 bytes
2002/08/23V3.2Win32191,148 bytes
2002/08/23V2.7Win32176,796 bytes
2002/09/15V2.7-V2憑きWin32178,822 bytes
2002/04/23V3.1L30aWin32179,390 bytes
2002/04/23V2.6L30aWin32168,859 bytes
2002/04/23V3.1L30Win32180,733 bytes
2002/04/23V2.6L30Win32169,237 bytes
2002/03/23V3.1L20Win32178,552 bytes
2002/03/23V2.6L20Win32169,784 bytes
2002/03/04V3.1L11Win32177,458 bytes
2002/03/04V2.6L11Win32168,981 bytes
2002/02/23V3.1L10Win32177,386 bytes
2002/02/23V2.6L10Win32168,864 bytes
2002/01/23V3.1Win32177,617 bytes
2002/01/23V2.6Win32163,914 bytes
2001/08/23V3.0L31Win32168,397 bytes
2001/08/23V2.5L21Win32157,564 bytes

・PI.氏開発分
(yohkaiサーバ)
公開日バージョン対応機種 ダウンロード 
2001/07/23V2.5L20/V3.0L30
(Full Source)
Win32291,593 bytes
2001/07/23V3.0L30Win32167,566 bytes
2001/07/23V2.5L20Win32156,848 bytes
2001/06/23V3.0L20Win32167,668 bytes
2001/05/23V3.0L10Win32160,452 bytes
2001/04/23V3.0Win32158,521 bytes
2001/03/23V1.0L20
(Full Source)
X68k,PC-98,Linux,Win16,FM-TOWNS,IBM-PC,Win32289,896 bytes
2001/03/23V1.0L20X68k,PC-98,Linux,Win16,FM-TOWNS,IBM-PC,Win32468,165 bytes
2001/02/23V2.5L10Win32149,707 bytes
2001/01/23V2.5Win32139,083 bytes
2000/12/23V2.4L20Win32133,842 bytes
2000/11/23V2.4L10Win32125,796 bytes
2000/10/23V2.4Win32117,852 bytes
2000/09/23V2.3L30Win32109,119 bytes
2000/08/23V2.3L20Win32105,289 bytes
2000/07/23V2.3L10Win32,FreeBSD3+Qt2165,049 bytes
2000/06/23V2.3Win3293,355 bytes
2000/05/23V2.2Win3287,685 bytes
2000/04/23V2.1Win32100,316 bytes
2000/03/23V2.0Win32,Linux143,350 bytes
2000/03/23V1.0L10X68k,PC-98,Linux,Win16,FM-TOWNS,IBM-PC,Win32470,511 bytes
2000/02/23Version 1.00X68k,PC-98,Linux,Win16,FM-TOWNS,IBM-PC,Win32470,935 bytes
2000/01/23Version 0.90X68k,PC-98,Linux,Win16,FM-TOWNS,IBM-PC347,739 bytes
1999/12/23Version 0.81X68k,PC-98,Linux,Win16,FM-TOWNS278,847 bytes
1999/11/23Version 0.72X68k,PC-98,Linux,Win16270,796 bytes
1999/10/23Version 0.63X68k,PC-98,Linux137,965 bytes
1999/09/23Version 0.55X68k,PC-9893,664 bytes
 1999/08/22 Version 0.43X68k35,285 bytes

参考リンク

PI. Home page (PI.氏)
XM7・XM6のエミュレータのほか、レトロなPCやコンシューマ機の情報などがあります。
FM-7エミュレータ XM7 (たけがみりう氏)
PI.氏開発のXM7を引き継いでいます。

なべちゃんのホームページ (渡辺 善美氏)
FM-TOWNS,Windows 9x+DirectXで動作するFM-7エミュレータ、EM-7の紹介があります。
FEMU7のページ (カト氏)
FM-TOWNS,PC/AT,PC-9801で動作するFM-7エミュレータ、FEMU7の公式ページです。
keisuke ほ〜むぺ〜じ (keisuke氏)
FM TOWNSで動作するFM-7シリーズエミュレータ、VM7の公式ページです。先日、フルアセンブラのソースを公開されました。
GIMONSのページ (GIMONS氏)
XM7をJava,PocketPC,MacOS Xなどさまざまなプラットフォームへ移植したものを公開されています。
FM-7 Emulator "XM7" for SDL. (K.Ohta氏)
XM7をSDL環境へ移植したものを公開されています。
XM7dash (トマ氏)
XM7 V1をFM-77の1MB FDコントロールカードに対応させた派生版を公開されています。
Ben.JP HomePage (Ben.JP氏)
XM7をプリンタ出力に対応させた派生版やAndroidバージョン(開発中)を公開されています。

XM7お手伝いぺ〜じ (Apollo氏)
XM7を使うためのヒントや、WAV→T77コンバータなどの多くのツールがあります。

M88のページ (cisc氏)
PC-88エミュレータ「M88」のページです。XM7のOPNエンジンはM88のものをベースにしています。
X1エミュの部屋 (ぷにゅ氏)
X1/turbo/turboZエミュレータ「X1R・XMillennium」のページですでした。
うさの倉庫 (うさ氏)
各種エミュレータのROMEO対応改造版を作成されています。
うんづのペエジ (Kasanova氏)
FM TOWNS/MARTYエミュレータ「うんづ」のページです。
Windows Vista以降に対応した新バージョンが公開されています。

Ruin's FM (FM-F氏)
富士通のFMシリーズのエミュレータでのソフトの動作検証を行っています。

Oh!FM-7 (Laver氏)
FM-7のソフトウェア、ハードウェアを網羅しているデータベース的なページです。
Retro PC Net (Molice氏)
FM-7のほかX1,X68000などレトロPC関係のニュースを扱っています。

$39
server@yohkai.no-ip.info