製造後20年近いPC-98ですので、近年は起動しないという故障は起こりがちです。そのなかで、[ESC][HELP][8]押し起動押し起動やシステムセットアップの起動に限っては正常に動作するという「不具合」もあるようです。通常起動ができなくなる原因として、ITFのROMが自然に書き換わる故障というのが低い可能性ながら考えられます。それを確かめるのがこのツールです。ROMから読み出したデータのチェックサムを表示し、そのデータを内蔵IDEハードディスクあるいはフロッピーディスクに保存できます。ROM内容がどうなっているかを予め知っておくという目的で作成しました。
対象となるのは、FDloaderが使えるフラッシュROM搭載機です。主に486 X-mate時代以降、PCI全機種になります。
まずメインメモリにデータが保存されますが、これでは外部に持ち出しができません。そこでMMDUMPという本体内蔵機能を流用します。本来のMMDUMPでは[STOP][CTRL][SHIFT]を押しながらリセット再起動することにより、1MB空間のメモリ内容をMMDUMP.DATというファイルフロッピーディスクに書き出しますが、本ツールのバージョン2.00からは自動でMMDUMPに移行します。
フロッピーディスクが無い場合でも使えるように、領域未割り当てのオンボードIDEハードディスクが接続されていればそれに書き込むという方法も用意しました。このデータは専用のファイル取り出しプログラムにてファイル化、保存することができます。
ファイル内容は次のとおりです。
ファイル名 | 内容 | 種類 |
ROMSUM .COM | FDLDMKFDと共に用います | FDloaderアプリ ※DOSで実行しないでください |
ROMSUM .TXT | 説明文書(今読んでいるものと同等) | プレインテキスト |
MMDCUT.EXE | FDのMMDUMP.DATからデータを取り出す | 98DOSプログラム |
GETROMDD.EXE | ハードディスクからデータを取り出す | 98DOSプログラム |
※今回ソースプログラムファイルは含まれません
アーカイブには ROMSUM .COMというファイルがありますが、これそのものはFDloaderではありません。別途FDLDMKFDというツールでフロッピーに書き込みます。したがってそれもダウンロードしておく必要があります。
PC-98の1.25MBでフォーマット(1024バイト8セクタ形式フォーマット)されたフロッピーディスク用意し、ドライブ番号が最も若いフロッピードライブに挿入します。
コマンドラインから
FDLDMKFD ROMSUM .COM
のように、引数としてアプリケーション名を指定します。もしそれを省いた場合には途中でファイル名を要求されます。カレントディレクトリ以外に存在する場合はfull path名を与えてください。ファイルを読み込むとフロッピーへの書き込みが始まり、起動用FDが作られます。
なお、このフロッピーはシステムからダイレクトに読まれる物であるため、通常のファイルシステムに則った形式では書かれていませんが、それでは何だわかりませんので、dirコマンドで見るとFDloaderアプリの入ったものであることが判読できるようにはなっています。
フロッピーに入ったアプリケーションは[ESC][HELP][8]押しで起動してください。 ENTERキーを押すと実行が開始され、ROMバンクごとにチェックサムの値が表示されます。画面下部のほうには先頭から600hバイトぶんのバイナリデータとASCIIダンプが表示されます。1バンクに1秒しか表示しませんので、データの特徴をおおよそつかむことができる程度です。チェックサムの値はすべて00hとなるのが正常です。もしそうでない場合はそこにデータ化けがあることになります。
IDEハードディスクが接続されていない場合はMMDUMPに移行します。下の 【使用法:フロッピーへの保存(MMDUMPモード)】をお読みください。
IDEハードディスクドライブが接続されている場合はそこに書き込むモードに移ります。IDEドライブはプライマリ・マスタに接続され、基本的にデータが入っていないことを条件としています。本ツールでは領域があるかもしれない場所に書き込みを行うためです。もし既存のデータがあると破壊されます。念のため、パーティションテーブルになにか存在していることはチェックし、その場合は実行を回避するようにはしています。
ハードディスクのモデル名や容量が表示された後、Enterキーを押すと続行します。正常に書き込みが終われば、[ESC]で終了するか、[Enter]でリブートするか、次のようにMMDUMPに移行するかの選択を促す画面が最下部に出ます。[M]を押すとMMDUMPに移行します。
続行を中止した場合やIDEハードディスク書き込みで終了にした時には、[ESC]で終了するか、[Enter]でリブートするかの選択を促す画面が最下部に出ます。電源を切って終わりにしたい場合は[ESC]を押して、手動で電源ボタンを押して電源切断を行ってください。
MMDUMPで取り出したMMDUMP.DATには一部区間(先頭からのオフセット10000h〜4FFFFh)にROMデータがあります。MMDCUT.EXEを実行すると MMDUMP.DATから8個のROM BANK データファイルを抽出します。バンク番号との対応は下位から3,2,1,0,7,6,5,4の順です。ただし未調査の機種ではそうでないものがあるかもしれません。
いっぽうハードディスクに書き込んだ場合は、そのハードディスクをいずれかのPC-98に接続してDOSをなんらかの方法で起動してから、GETROMDD.EXE というプログラムでファイルを取り出します。BANKごとのファイルが通常は8個作られます。
いずれの場合も作られたファイルは、'GETITF98'で作成されたものと同じであるはずすが、バージョン2.30までのGETITF98では対象外の機種でも本ツールは機能するという特徴があります。また逆にFDloader機能がない機種ではGETITF98を使うしかありません。
PCI機、X-mate機、Cx、CbからのCanbeで本ツールは実行できるとみられます。A-mateのPC-9821An、Ap3、As3では使用実績がないので絶対に適用しないでください(壊す恐れがあります)。それ以前の機種ではそもそもFDloader機能がないので使えません。チップセットの制約はありません。
IDEハードディスクに保存する場合は、未使用あるいは既存データがどうなってもよい物を使用してください。本ツールを適用すると既存のデータは破壊されます。
使用できるIDEドライブはLBAアクセスが可能なものに限ります。非常に古い340MB以下のドライブは使えない可能性があります。Compact Flashは一応使えます(通常の使用より問題は少ない)が、CFリセットという現象を引き起こして、認識や書き込み失敗、データ化けが発生する可能性があります。
4Mbit(512KB)のROMを持つ機種がありますが、本ツールでは上位2Mbitぶんのデータしかファイル化できません。そのような機種には RvIIシリーズ、CX,Cbとそれ以降のCanbeが該当します。
本アプリケーションで作ったフロッピーは、それ全体としてアプリケーションソフトとなります。ファイルシステム上はスキップセクタが多数ある状態に見えます。そこに本アプリケーション本体がありますので、削除もできません。ただしファイルシステムとして正しい状態にはなっていますので、フロッピーの空き領域にファイルを書き込んで使うことは問題ありません。もしフロッピーをまっさらにしたい場合は物理フォーマットしてください。
フロッピーディスクにセクタエラーがある場合、通常起動時にIPLだけ読めてアプリケーション本体が読みとりエラーとなる可能性があります。その場合エラーメッセージは出ませんが、通常より低いBEEP音が鳴り続けます。もしそのような音がしたらフロッピーディスク不良ということです。古いフロッピーディスクを使い回していると得てして起こりますので、留意しておいて下さい。
ROMSUM .COMは「DOSで実行しないでください」としていますが、実は単独で実行可能です。ただし多くの制約があり、たとえばintel PCI chipset機でしか動作しませんし、MMDUMPへの移行もできません。終了後にはDOSに戻ります。リブートはできません。
著作権は保持しますが、フリーソフトウェアですので、自由に使用してかまいません。ただし不特定多数がダウンロードできる場所に置く(公衆送信可能な状態にする)ことや、二次的な譲渡や販売を行うことは禁止とします。
このソフトを使用したことによる損害(起動不能、何かの設定への干渉など)に関し、作者は一切責任を負わないものとします。自己責任でお使いください。