いろいろと苦労の末、Amity CN(初代機)のハードディスク交換(1.2G → 5G)にようやく成功。こんな話は今更…、とも思うが、まとめておかないと自分で忘れてしまうのと、他にも応用が効くか?と思われる情報もあるので、以下にメモを公開します。
今回、いろいろな方のページを参考にしました。なかでも、(て)氏による CMOS MEMORY MAP が公開されていなければ、多分あきらめていたと思います。(て)氏 ほか、皆様に深く感謝します。
なお、記述内容について十分注意はしておりますが、誤った情報を含んでいる可能性があります。そのため万一損害を受けた場合も、筆者はいかなる責任もとれません。あくまでも自己責任でご利用下さい。
以前から指摘されている (1) ことだが、この初代機のBIOS(Phoenix Note BIOS 4.0) のセットアッププログラムには不具合と思われるところがある。具体的には、HDDのパラメータを "USER" でセットしようとしても思うようにできない。
私が使った日立の DK227A-50 という5GBのディスクの場合、 "AUTO" で認識させると、シリンダ、ヘッド、セクタ (CHS) の値は正しいのだが、"Operating System not found" となってしまう。本当のところは分からないが、どうもDMAモードがMODE2にセットされるためらしい(これも変な話だが)。
そこで、どうしても "USER" でDMAモードを "Disabeled" にしたいのだができない。
この問題の対策として、「save & quit するのではなく、本体裏にある on/off スイッチを使えばよい」という報告がある (2, 3)。実は、これを知って交換をしてみる気になったのだった。ところが、やってみると一度は確かに成功したのだが、ハードディスクの付け外しを何回かするうちに認識に失敗し、その後は、何度やってもうまくいかなくなってしまった。
具体的には、セットアッププログラム上では次のような感じで表示される。
Type: [USER] 37MB Cylinder: [855] Head: [5] Secter: [17]
そこで、パラメータが記録されている CMOS をダンプして見てみると、以下のことが分かった。
これを参考に試行錯誤の結果、次の手順で無事にHDDを正しく認識させることができた。
書き換え前の CMOS の一部を示すと次の通り。
CMOS RAM DUMP v1.00 ADR: +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F ---------------------------------------------------- 10 : 40 00 00 00 03 80 02 00 BC 00 00 8C 28 00 00 00 20 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 35
ここで、12: 00→0F, 19: 00→28, 2E: 02→03 2F: 35→4D とした。 2E,2F はチェックサムで、10 から 2D までに入っているデータを単純合計した値にすればOK。
CMOSのデータの意味、ダンプツール、DEBUGコマンドでのCMOS書き換えの方法、については CMOS MEMORY MAP (5) を参照のこと。なお、ダンプツール CRD.COM はAmityで使っても特に問題を起こしていない。
Amity で認識さえできればこっちのもの。まず、起動フロッピから fdisk → format c: → phdisk /create /partition → format c: の順序でディスクの用意をして、いったんAmityからHDDを外して、デスクトップに接続。Secondary Master にくっつけるのが楽… のはずだった。
phdisk というのは、Phoenix の BIOS でハイバーネーションをさせるためのユーティリティ。これでディスク領域を確保しておかないとサスペンドができなくなるので、やはり不便。この後のフォーマットまではAmityでやるのが無難の模様。
ところが、この 2.5インチHDDをデスクトップにつなぐための変換コネクタが曲者だった。都合4通りの接続ができてしまうのである。もちろん、正解は1つしかなく、誤った場合、HDDを破壊する可能性もある(私は電源の接続を一度間違ったが、幸いに破壊は免れた)。
特に、電源の位置が、3.5インチと逆になることが多いようなので注意が必要である(すべての変換コネクタでそうなる保証はないので、テスタなどで接続を確認するのが確実)。 Webを調べたが、意外にもこの接続の仕方について、分かりやすい資料が見つからなかったので、ここに図を出しておく。
2.5インチと3.5インチを重ねて撮影。赤い四角で囲ったのが5V電源ピン。2.5インチの場合、3.5.インチのように別コネクタになっておらず、位置も逆(左端から2列目)。2.5 インチの白い四角は master/slave の切り替えジャンパピンで、1番ピンとの間に1列隙間がある。1番ピン側にフラットケーブルの赤い線が来るようにして挿入。
接続ができたら、デスクトップ機に認識させて、適当な名前のフォルダを作り、そこにOSのCDを丸ごとコピーする。コピーが終了したら、デスクトップの電源を落としてHDDを外し、ふたたび Amity に接続しフロッピから起動、CDを入れたフォルダの中の setup.exe を実行。
途中、scandisk でエラーが出たが、「修復しない」を選び on/off で電源を落とし、再度起動のあと setup し、無事 Win95OSR2 のインストールができた。FAT32 で5GBのディスク全体を1パーティションとして問題無く使えている。
CMOS はリアルタイムクロック (Amity の場合、bq3285) の中にあるという。 下記のページによると、 このICの特定の2つのピンをショートさせてデータをクリアすることができるという。
Clearing CMOS RAM on AT Compatible PC Systems (Micro Firmware)
http://www.firmware.com/support/bios/cmosclr.htm
しかし、bq3285のデータシート (http://www-s.ti.com/sc/ds/bq3285.pdf) を見ると、この方法は、バックアップ電源をグランドに落とすことになるので、バックアップ電池(リチウム系の二次電池?)が外せない Amity では、ちょっとまずいはず。最後の手段としての価値はあるかもと思うが、かなりアブナイ技なので、あくまでも自己責任で行ってほしい。何があっても筆者は責任をとれないのであしからず。
なお、DEBUGコマンドを使う方法では、Amity の場合、時計のリセットなどはできなかった。