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.必要なツールをダウンロードする
これ以降で使用するツールを私のホームページからダウンロードします。
- mot2bin Motorola-Sフォーマットファイルをベタバイナリに変換します
- romcut FM-7用のROMを吸い出した後のベタバイナリからXM7に必要なファイルを作成する
- krom 漢字ROMの内容と同等のファイルを合成する(必須ではありません)
3.Motorola-Sファイルをバイナリに変換する
mot2binを使用して変換します。
C:\>mot2bin sp41.mot sp41.bin
のようにして全てのMotorola-Sファイルをベタバイナリに変換します。
4.ベタバイナリファイルを連結して、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
5.出来上がったFM-7相当のROMデータ(*.bin)からXM7に必要なROMデータを抜き出す
romcutコマンドを使用するだけです。引数も何もありません。ROMデータ(*.bin)と同じディレクトリにromcutを置いて実行してください。
romcutは入力ファイル名決め打ちでファイルを開いて作業をします。そのため、ファイル名が違っているとデータが出来ません。
- fbasic.bin
- bootrom.bin
- submon.bin
の3つのファイルが必要です。大文字小文字は関係ありません。
実行すると、以下のファイルが出来ているはずです。
- fbasic30.rom
- boot_bas.rom
- boot_dos.rom
- 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専用ゲームも起動できましたので試してみてください。