ROMライタを使ってFM-8のROMを抜く

ここの情報は私の実機(FM-8)に搭載されていたROMをROMライタで吸い出した結果を元に作成されています。同機種でもレビジョン/製造時期の違いによりシルク型番やROM型番、含まれている内容など異なるかもしれません。ご注意ください。

FM-8には7個のROM(UV-EPROM)が搭載されています。それぞれ、以下のような内容を含んでいます(もう一個あるようだが、多分それはキーボード用4ビットマイコンのファームウエア)。

番号 記号 ROM型番 容量 配置アドレス 使用用途 XM7でのROMファイル名称
1 SP41 MBM2764-30 8KB MAIN:$8000-$9FFF F-BASIC V1.0 INTERPRETER FBASIC30.ROM
2 SP42 MBM2764-30 8KB MAIN:$A000-$BFFF
3 SP43 MBM2764-30 8KB MAIN:$C000-$DFFF
4 SP44 MBM2764-30 8KB MAIN:$E000-$FBFF($FFFF)
5 SM11 MB8516 2KB MAIN:($FE00-FEFF)×4 BOOT ROM BOOT_BAS.ROM
BOOT_DOS.ROM
6 SN11 MBM8516 2KB SUB :$D800-$DFFF CG ROM SUBSYS_C.ROM
7 SO11 MBM2764-30 8KB SUB :$E000-$FFFF SUB MONITOR

ROMの場所

これらのROMの内容をROMライタを使って吸出してROMファイルを作成すれば、XM7(またはEM-7)用のROMファイルを作成することが出来ます。


●具体的手順

1. ROMデータをPCに転送する

上記の7つのROMをROMライタを使ってデータを吸い出します。吸い出したデータはMotorola-SフォーマットでPCに転送します。

ここでは、ROMに貼られていたシールと同じ名前のファイルを作成した前提で話を進めます。つまり、

SP41 SP41.MOT
SP42
SP42.MOT
SP43
SP43.MOT
SP44
SP44.MOT
SM11
SM11.MOT
SN11
SN11.MOT
SO11
SO11.MOT

というファイルがあることになります。

ROM Writerで吸い出している様子

2.必要なツールをダウンロードする

これ以降で使用するツールを私のホームページからダウンロードします。

  1. mot2bin  Motorola-Sフォーマットファイルをベタバイナリに変換します
  2. romcut    FM-7用のROMを吸い出した後のベタバイナリからXM7に必要なファイルを作成する
  3. krom     漢字ROMの内容と同等のファイルを合成する(必須ではありません)

.Motorola-Sファイルをバイナリに変換する

mot2binを使用して変換します。

C:\>mot2bin sp41.mot sp41.bin

のようにして全てのMotorola-Sファイルをベタバイナリに変換します。

.ベタバイナリファイルを連結して、FM-7のROM相当のファイルを作る

romcutというツールを使ってXM7に必要なファイルを作成しますが、そのためにはFM-7のROMと同じ構成になるようにファイルを合成します。たとえばFM-8ではF-BASICのROMは4つに分割されていますが、FM-7では1つのROMにおさまっています。そのため、4つのファイルを連結してFM-7と同じになるようにします。同様に、サブシステムのROMもFM-7では32KB(256Kbit)ROM1個におさまっていますので、キャラクタROMとサブシステムモニタを連結し、さらに足りない容量分を他の適当なROMファイルを連結してサイズをあわせます。

ファイルの連結はcopyコマンドで行うことが出来ます。

C:\>copy sp41.bin /b + sp42.bin /b + sp43.bin /b + sp44.bin /b fbasic.bin /b
C:\>copy sp41.bin /b + sp41.bin /b + sn11.bin /b + sn11.bin /b + sn11.bin /b dummy.bin
C:\>copy dummy.bin /b + sn11.bin /b + so11.bin /b submon.bin /b
C:\>copy sm11.bin bootrom.bin

.出来上がったFM-7相当のROMデータ(*.bin)からXM7に必要なROMデータを抜き出す

romcutコマンドを使用するだけです。引数も何もありません。ROMデータ(*.bin)と同じディレクトリにromcutを置いて実行してください。

romcutは入力ファイル名決め打ちでファイルを開いて作業をします。そのため、ファイル名が違っているとデータが出来ません。

  1. fbasic.bin
  2. bootrom.bin
  3. submon.bin

の3つのファイルが必要です。大文字小文字は関係ありません。

実行すると、以下のファイルが出来ているはずです。

  1. fbasic30.rom
  2. boot_bas.rom
  3. boot_dos.rom
  4. subsys_c.rom

6.漢字ROMと同等の内容をもったファイルを作成する

漢字ROMデータはXM7(V1)では必須ではありませんので必ずしもこの作業は必要ではありません。必要ではありませんが、ちょこっと時間をかけるだけで漢字が使用できるようになりますのでやらない手はないでしょう。

これもkromコマンドを実行するだけです。

C:\>krom

これで、

KANJI.ROM

というファイルが出来上がるはずです。このファイルはFM-7の漢字ROM相当のファイルで、まったく同じ物ではありません。ゲームによっては漢字を表示した後PAINT命令で着色するようなものがありますが、フォント形状が違うために色がモレる可能性があります。実用上はほとんど問題ないと思いますが。

 

3〜6の手順をまとめると次のようなバッチファイルになります。カット&ペーストでメモ帳などに貼り付け、FM8.BATとでもして保存すればMotorola-Sファイルから一気にXM7に必要なROMを作成することが出来ます。


@echo off
rem Motorola-S
フォーマットをベタバイナリに変換する
mot2bin sm11.mot sm11.bin
mot2bin sn11.mot sn11.bin
mot2bin so11.mot so11.bin
mot2bin sp41.mot sp41.bin
mot2bin sp42.mot sp42.bin
mot2bin sp43.mot sp43.bin
mot2bin sp44.mot sp44.bin

rem F-BASIC ROM
を結合
copy sp41.bin /b + sp42.bin /b + sp43.bin /b + sp44.bin /b fbasic.bin /b

rem submon.bin
のサイズをromcutが要求するサイズになるよう
rem 調整するためのdummyを作成
copy sp41.bin /b + sp41.bin /b + sn11.bin /b + sn11.bin /b + sn11.bin /b dummy.bin

rem dummy+CG ROM+SubMonitor
で、サブシステムのROMを作る
copy dummy.bin /b + sn11.bin /b + so11.bin /b submon.bin /b

rem boot ROM
はそのままでOK
copy sm11.bin bootrom.bin

rem
各ファイルを切り出す
romcut

rem
漢字ROMの内容を作成する(必須ではない)
krom

echo
変換終了


これで、FM-8のROMからXM7(V1)に必要なファイルを作成することができたはずです。

さらに、SAVEN2AV(これも私のページからダウンロードできます)を実行すれば、XM7(V2)を起動することも出来ます。幾つかのAV専用ゲームも起動できましたので試してみてください。