PC-9821La13/S14 システムインストールディスク(起動用)の中で、 怪しそうな箇所を調べてみます。
BUFFERS, FILES の設定、HIMEM.SYS, MOUSE.SYS, RAMDRIVE.SYS の組み込み、 あと環境によっては PC カードドライバ等の組み込み くらいしか記述されていないので、特に怪しいということは無さそうです。
98CHECK と SYSREST /R いうコマンドを起動する記述があります。 ちょっと怪しいかも。(^^;;
このプログラムは、実行している本体が La13 なので、そのまま通り抜けます。
試しに Xa10/K8 (Pentium 200MHz 他 ... に改造済み)で実行したところ、
本機では再セットアップすることはできません。という白い画面が出ました。どうやら機種チェックのようです。 実行環境が 98CHECK.INI に記述されている情報と合っていれば、 そのまま通り抜けるようになっているようです。
この画面を終わらせるには、電源を切ってください。
La13 で実行する分にはこれも怪しくは無さそうです。
気になるのであれば、AUTOEXEC.BAT の中の 98CHECK と書かれた行の頭に REM を付けて実行しないようにするのも良いでしょう。
これは Windows 95 再セットアップのプログラムです。 これを実行したところで HDD チェックに引っかかっています。 めっちゃ怪しいです。(笑)
/R というオプションの意味は、
システムバックアップツール(SYSBACK.EXE)で作成しただそうです。
バックアップディスク(FD・MO・HD)よりハードディスクに再
セットアップを行います.
このプログラムを解析するのは非常に困難なので、 他の怪しそうなところをチェックしていきます。
拡張子が DAT になっている、いかにも怪しげなファイルが全部で 4 つあります。 これらの中身を見てみましょう。
DELLBL.DAT は、改行、Y + 改行という内容です。 LABEL < DELLBL.DAT という使い方をして、 ボリュームラベルを削除するときに使われるものと思われます。
FREESIZE.DAT は、"550000000" という内容です。 これは意味不明です。飛ばしましょう。(^^;;
PARTSIZE.DAT は、それぞれの HDD 固有の値と
デフォルトの第 1 パーティションの容量の設定が書かれています。
実は、本当に怪しいのはここです!
親切なことに、PARTSIZE.DAT ファイルの中の注釈文に説明が書かれています。 それを読むと、SENSEHD.EXE の戻り値(リターン値)と 第 1 パーティションサイズを = で結んだものを書けば良い というのが分かります。
では、La13 で SENSEHD.EXE を実行してみましょう。
そのままコマンドプロンプトが返ってきました。 どうやら SENSEHD.EXE 戻り値は、画面に表示されるわけではなく、 ERRORLEVEL として返されるようです。
ERRORLEVEL の値を調べる方法はいくつかありますが、 もっとも身近なのは、バッチコマンドの if 文で調べる方法です。 ですが、0 〜 255 まで考えられる戻り値を調べるには、 この方法だと非常に面倒で、時間が掛かります。
ここで、私が実際に使った調査プログラム S_HD を公開しておきますので、 使いたい人はシステムインストールディスクをコピーしたフロッピーの中に コピーして使ってください。 ここにあるバイナリを直接実行したくない人は、 C 言語のソースファイルも置いておきますので、 参考にして使ってください。(Turbo C++ でコンパイル & 動作確認済み)
#include <stdio.h> #include <process.h> int main(void) { int retcode; retcode = spawnl(P_WAIT, "SENSEHD.EXE", NULL); if(retcode == -1) { printf("SENSEHD コマンドが実行できません.\n"); return 1; } else { printf("戻り値は %d です.\n", retcode); return 0; } }
SENSEHD.EXE の戻り値が分かったら、PARTSIZE.DAT ファイルに記述を加えますが、 その前に COPY PARTSIZE.DAT *.ORG コマンドで オリジナルのファイルを保存しておくと良いでしょう。
EDIT PARTSIZE.DAT でエディタを起動し、記述を加えます。 最後の行に、以下のような 2 行を加えるだけで良いでしょう。 ここで書き加える第 1 パーティションサイズで 固定されるわけではありませんので、 HDD の容量をみて妥当な数値を記述しておきます。
; ?.? GB ← HDD の容量を書く
戻り値=パーティションサイズ
参考までに、私が追加した内容を紹介します。
; 3.2 GB (IBM DYKA-23240)
48=2047
PARTSIZE.DAT の編集が終わったら、上書き保存してエディタを終了します。
では、SYSREST /R を実行して、 Windows 95 再セットアップが始められるかどうか確認します。
左のような画面が出たら、HDD チェック回避は成功です!
もし、「該当するハードディスクがありません。〜」という画面が出たら、 SENSEHD.EXE の戻り値が正しく記述されていない可能性が高いので、 = (イコール)の前後にスペースが入っていないか、 行頭にスペースやタブが入っていないか、無用な空行が入っていないか、 よく確認してください。
それでは、気を取り直して・・・。