PC-98上でIDEドライブの容量を縮小するFDloaderアプリケーション
ICCfix 1.03
Copyright(C) 2023 まりも (DOSsoft)
PC-9821シリーズ(および9801BX以降のFELLOW)のオンボード接続IDEドライブは、使用できる容量に上限があります。このためドライブの容量を書き換えて使用することがありますが、そのためのツールとして、K.Takata氏作の「ICC」はよく知られています。このプログラムはWin9xおよびMS-DOSで動作します。このプログラムには機能的になんの不足もありませんが、いきなり容量過大のIDEドライブを繋いでしまうとそこでハングアップしてしまい、手も足も出ないことになります。
PC-98を一台しか持っていないような人はPC/AT互換機でも使えばいいのですが、こちらも古いIDEドライブを認識できるマザーボードはもうかなり過去のものとなっていますから、容量書き換えの手段に手詰まりといった状況があります。
そこで本ツール「ICCfix」では、"なにがなんでも即時に起動できるFDloader"のアプリケーションとしてICC相当の機能をリメイクしました。FDloader機構を備えている機種では、容量過大のIDEドライブを繋いでも本アプリケーションを実行でき、容量を縮小します。
ただし、容量の指定は自由ではなく、後述するように特定の容量帯上限境界から選択するものとします。それでは都合が悪いという場合は、いったん365MBや4351MB以下にしてシステム起動可能にしたあと、K.Takataさん版のICCを適用してお好きな容量にすればよいでしょう。
アーカイブ解凍すると次のものが入っているはずです。
・FDLDMKFD.EXE(別途公開されていますが本ツール専用のこれをお使いください)
・ICCFIX.TXT(いま読んでいる内容のTEXTファイル)
・ICCFIX.COM
・ICC365.COM
まずFDloaderアプリケーションとしてのフロッピーディスクを作成します。2HD 1024B/8sectの1232KB(いわゆる1.25MB)でフォーマット済みのものを用意してください。
DOSが起動してあるPC-98で、コマンドラインから
FDLDMKFD ICCFIX.COM
と打ち込んで起動します。もっとも若いドライブ番号のフロッピードライブに上記のフォーマット済みFDを挿入します。するとFDloaderアプリケーションFDが作られます。なお後述のように.COMプログラムを直接実行して適用することも可能です。この場合はフロッピー作成は不要です。
容量を縮小したいIDE(SATAから変換でも可)のディスクドライブはプライマリ、セカンダリどちらのIDEポートに接続しても構いません。マスターでなくスレーブに接続しても構いません。ディスクドライブは現在使用中のものは避けてください。未フォーマット(領域が全て解放されているもの)が望ましいです。なお領域が全て非アクティブに設定されているなら問題はありませんが、容量変更後にデータにアクセスできないことには変わりありません。
FDloaderの対応機は、PC-9821Xシリーズ以降、PC-9801BX3/BA3以降のFELLOWなどです。A-mateは対応しないものとします。該当する機種では[ESC][HELP][テンキーの8]を同時押しで電源を入れるとFDloaderが起動します。画面左上に
"Insert the ROM DATA disk ...Press RETURN key
と出ますので、作成したFDを入れます。IDEドライブの回転が安定してヘッドが定位置に移動する(ような)音を確認してから、Enter(リターン)キーを押してください。するとICCFIXが実行開始します。
まずどこのIDEポートに接続されたディスクを処理するかを最初に尋ねられます。プライマリ・マスターからセカンダリ・スレーブまでに対応する 0から 3のいずれかの数字キーを押してください。テンキーでも構いません。
いずれの接続でも、IDEデバイスの諸元が表示されます。モデル名、シリアル番号、ファームウェアバージョンに続いて、現在認識されている容量や本来の容量が表示されます。内容を確認してください。なおタイトル文字列の上下の青線の色がここから変わります。プライマリ・マスタでは緑、スレーブではシアン、セカンダリ・マスタでは赤、スレーブではマゼンタとなります。
ICCFIXから作成したFDの場合は、まず下矢印↓を最初に押し、
543MiB
2015MiB
4351MiB
8063MiB
32255MiB
32767MiB
65535MiB
131071MiB
元の容量に戻す
のメニューのうちから↑↓キーで容量値を選択し、ENTER(リターン)キーを押してください。
いっぽうICC365から作成したFDの場合は、最下行の操作メニューのとおり、[-] のキーを押すと、容量を365MBに縮小するコマンドを発行します。 - のキーは"マイナス"です。テンキーのほうでも認識します。
成功すれば音が鳴り終了です。ここでEnterキーを押すとソフトウェアリセットでの再起動を行います。ESCキーを押した場合は電源を切る準備に入りますので電源を切ってください。基本的に容量変更後は電源を落とす必要があります。これはとくに問題とはなりません。
ディスクドライブ(CD/DVD/MOなど光学ドライブは対象外)の存在しないIDEポートを選んでしまった場合は次の図のような画面となります。ここでRを押して再び最初の画面に戻り、接続先を選び直すことができます。またはあきらめて終了することも可能です。そのときはESCキーを押してください。その後はリセットで再起動することも可能です。
作成したフロッピーは、通常のシステム起動におけるFD起動でも実行可能です。容量過大でハングアップする状況でなければそのような使い方ができますし、FDloader機能のない9801BX〜BX2あたりの機種でも使えます。動作はFDloaderのときと全く同じですが、ディスクドライブの現在のパラメータという値のみ、BIOSが設定済みの値となっていて、FDloaderのときと異なります。なお終了後にもとのブートシーケンスには戻れません。なるべく電源を入れ直す再起動を行ってください。
ICCFIX.COMおよびICC365.COMは DOS実行プログラムでもあります。実行環境を調査して動作します。DOSのプロンプトからプログラム名を打ち込んで実行してください。つまりフロッピー作成の手順が不要です。実行開始後のようすはFDloader版と同じですが、実行後に永久ループ停止にならずDOSに戻る点が異なります。しかし容量変更は電源再投入後となりますので、それまでに当該ディスクにアクセスすると異常が発生する場合もあります。
ICCFIXでは指定した境界容量の通りとなります。必要があれば本家のICCを適用して希望する容量に設定してください。容量変更適用前にドライブをフォーマットしてはいけません。一般に容量を変更するとCHSパラメータが変わってしまいます。したがって使用中のディスクドライブに対して容量を変更すると、OSはデータにアクセスできなくなってしまいます。また起動に障害が出る可能性もあります。未使用(98のパーティションが無い)状態のディスクドライブに対して適用してください。なおうっかり使用中のディスクドライブに容量変更をかけてしまった場合は、もとの容量に戻せばOKです。
ICC365適用の場合は「容量はいったん365MBに縮小」されます。容量上限を突破しCHSパラメータを自由に操ることができるソフトウェアツールとして、リウ様(twitter@drachen6jp)の作られたLBA_IDE というBIOSパッチ(このリンク中のIDE-BIOS-LBA-Patch.7z)があります。「LBA_IDE」は、容量が365MBのドライブを見つけると本来の容量に拡張して全て使用できるというすばらしい仕様です。しかも28bitセクタ(128GB弱)の壁も越えて使用できます。そのため本ツールでは365MBに合わせることにしました。LBA_IDEではそれが実行されたあとには一時的に容量を本来の値に戻しますが、電源を切ると容量はもとに365MBに戻ります。いったんLBA_IDEを導入したドライブはかならずLBA_IDEが実行できる環境下で運用し続けてください。なおディスクドライブのフォーマットはLBA_IDEが確実に動作することを確かめたあとに行ってください。
543MBが上限の機種もありますから、365MBならあらゆる機種で大丈夫ということで、とくに問題はないでしょう。Microsoftのoffice 365みたいに毎日使うという意味にとらえておけばよいと思います。
FDloaderは、本体メモリチェックも周辺デバイス初期化もおこなわず、すぐに起動できてしまいますので、いきなり実行すると、その時点ではIDEドライブが立ち上がっていない状態にあるかもしれません。その場合は「接続されていない」というエラーが表示されます。そうなってしまったら最下行の操作メニューのとおり「最初からやりなおす」を行ってください。基本的には"Insert ..."の表示のときに数秒待ってから実行開始することをお薦めします。
SATA変換でもHDDであればとくに問題なく容量を変更できるはずです。
SSDについては容量変更コマンドを受け付けないものが多いばかりでなく、受け付けても実際には変更されないという仕様のものがあります。SSDの場合は必ずしも成功しないということに留意しておいてください。
CompactFlashに容量変更などできるものはほぼ存在しません。それどころか本来の容量を取得するコマンドも対応しないものばかりです。
リブートで終了するときに再び[ESC][HELP][8]を押すとICCFIXあるいはICC365を二度実行できますが、HGST製ドライブなどでは連続の容量書き換えができない仕様のようです。その他のドライブでもいちど容量を書き換えると、何かのATAコマンドを与えるかある程度時間を待たないと、再度の書き換えができません。基本的には適用後にはいったん電源を切ってください。
ドライブのなかには、28bit LBAで容量縮小したものは28bit用のコマンドでもとに戻さないと、48bitのコマンドでは再度の容量変更ができないものが存在します。そのようなドライブの場合には適用失敗のエラーとなります。本ツールでは48bitコマンド対応フラグのあるドライブには48bit用のコマンドを使いますので、もし上記のようなドライブに当たってしまった場合は、本家のICCでオプション -b をつける/つけないの試行錯誤をしてください。
FDLDMKFD.EXEは このアーカイブで添付されているものを使ってください。既に公開中のほうのFDLDMKFD.EXEは、FDのIPLからFDloaderアプリケーションを起動できるようになっていません。
ICC365を適用してLBA_IDEを導入したドライブは、以降かならずLBA_IDEが実行できる環境下で運用し続けてください。
ICCFIXのソースプログラムをこちらに置いておきます。ただし画面表示にかかわる一部のソースがついていません。そこはご自身で作った物を使うなどしてください。商用ソフトへの流用は認めませんが、フリーソフト作成の参考にするのは構いません。もともとICCではソースが公開されていましたから、それに倣っておきます。
このプログラムはフリーソフトウェアです。自由に使用してよい代わりにサポートはありません。直接的・間接的に、このプログラムの運用の結果に何があっても、作者は一切責任を負わないものとします。著作権は作者が保持しています。著作権侵害のないようにお使い下さい。
本ツールを他のサイトへの転載することは認めません。連絡先メールアドレスはトップページに記載されています。
ここで紹介している他のアプリケーションは、それぞれの作者の方に著作権があります。