このブログでは、主にPC-88VA2の修理記録を書いていますが、拡張ボードの設定ソフトの都合等により、PC-9800シリーズのパソコンが必要になることがあります。そんな理由で、数年前にPC-9821Xa12を購入しました。
元々ジャンク品として購入してしていますが、ハードディスクを除けば、それなりに生きています。メモリも32MB実装済み。
LANボードの設定はFD起動ができるドライバディスクでできてしまったので放置していましたが、ちょっと手を加えればすぐに使えるようになりそうです。
そんなわけで、今回はPC-9821Xa12の復旧を試みた内容の記録です。
まずは明らかに壊れているハードディスクについて。修理か交換かということになりますが、私にはハードディスクを修理するような技術はないので交換一択です。
とは言っても、元のディスクの容量は800MB、最大でも2GBまでしか認識できないので、かなり古い中古かデッドストックとなります。動いたとしても安定稼働は期待できません。できればSSDとかにしたいところですが、そんな小さな容量のSSDなんてありませんよね。そこで登場するのが、SDカード→IDE変換基板です。
はい、そしてこちらがAmazonで購入したSDカード→IDE変換基板です。

メーカーは不明ですが、SD35VC0という型名らしきものが書かれています。
SDカードはMS-DOSが認識できる限界である2GBのものを買ってきました。
SDカードの場合、FAT16で稼働している組み込みシステム等がたくさんありますので、まだしばらくは2GBのSDカードの入手に困ることはないでしょう。
さて、物がそろったら、次はハードディスクの初期化です。
Vector等にこのあたりのツールもいくつかありますが、まず最初はMS-DOS6.2のシステムディスクに入っているツールで何とかする予定です。
AT互換機の世界では、ハードディスクのパーティションを分けてから初期化しますが、PC-9800シリーズは順番が逆です。
まずハードディスクを初期化して、そのあとに領域確保です。
- FORMAT.EXEを起動
- HDDを初期化
- 領域確保
- システム転送
MS-DOS6.2のシステムディスクの中にHDFORMAT.EXEというプログラムがありますが、こちらは単独で起動できないようになっており、FORMAT.EXEの中から、「固定ディスクの初期化」を選ぶことによって、子プロセスとして実行されているようです。
MS-DOSを使うには2GBは大きいかもしれませんが、特にパーティションは分けません。
さて、ここまで進んだら、いったんリセットして再起動します。
AT互換機のMS-DOSでは、A:B:ドライブはFDD固定で、ハードディスクの1台目はC:ドライブになりますが、PC-9800シリーズでは(PC-88VAのPC-Engineも同じだけど)、ドライブの種類に関係なく、起動したドライブがA:ドライブになります。
OSのインストール時はフロッピーディスクから起動しているので、FDDがA:ドライブですが、HDDから起動するなら、HDDがA:ドライブとなる前提で各種設定をする必要があるので、ここでリセットが必要になるんですね。
本来ならこの後、各種ソフトをインストールしていくことになるのですが、ここで致命的な問題が発生してしまいました。
リセットでは問題なかったのですが、電源をOFFしてから再起動すると、HDDを認識しなくなってしまうのです。
結論を先に言うと間違っていたのですが、私はまず最初に以下の予想を立てました。
PC-9821Xa12は、FlashROMというものが存在しない時代のパソコンだったはず。
↓
「固定ディスク起動メニュー」に相当するブートローダーがSRAMに書かれているのでは?
↓
SRAM保持用の電池が切れている(二次電池が既に寿命で充電できない)。
↓
電源を落とすとハードディスク起動用のブートローダーが消えてしまう。
↓
電源OFFでハードディスク起動不可になる。
それで、まずは二次電池を交換することにしました。
PC-9821Xa12の電池は、電源ユニットの下にあります。
パソコンのフタを開けて、電源ユニットを固定しているネジを数個外せば、その下にコイン型の二次電池がケーブルでつながっているのが見えるはずです。私のPC-9821Xa12は、以前に電池を交換していたらしく、いかにも適当な感じで、電池がビニール袋に包まれて、本体にガムテープで止めてありました。
ネット記事を色々と調べてみると、一般的にはPanasonic製の二次電池 VL2330が使われているようです。
ネット上では、これを一時電池のCR2032に置き換える方法が色々と見つかりましたが、今回はそれはやめておいて、ヤフオクでVL2330を入手、交換しました。
因みに、PC-9800シリーズ用として出回っているケーブル・コネクタ付きのVL2330については、コネクタの形状が2種類あるようで、注意が必要です。私のパソコンでは、航空電子の茶色いコネクタのタイプでした。
この辺りの事情については、↓以下のページにて非常に詳しく紹介されていますので、興味のある方はご参照ください。
さて、二次電池を交換してカレンダー時計も無事復旧しましたが、残念なことに当初の目的であった電源OFF後のHDDからの起動は叶いませんでした。前のほうにも書きましたが、二次電池の問題ではなかったのです。
そうして原因を検討していたところ、バッチリその答えが書いてある↓サイトを見つけました。
この記事によると、起動できないのは以下の理由によるもののようです。
- PC-98のブートBIOSが起動直後にハードディスクの0セクタ目に書かれているIPL(Initial Program Loader)を読み出そうとする。
- SD-IDE変換基板の初期化処理が遅いため、0セクタ目が読み出せるようになる前に時間切れ
- PC-98が不正なディスクだったと判断
- 以降、初期化完了しようが、リセットしようが、電源ON直後以外は認識しない。
AT互換機では仕組みが違うので「問題ない」ということになってしまうのだそうです。
一応、回避策はあるようで、SDカードを抜いた状態で起動→ SDカードを差してリセットすると、認識するようになるようです。とりあえず、私のほうは当面はこれで運用していこうかと考えています。
しかし、前の記事にあるZennさんがスゴいのは、起動できない理由+対処方法だけに留まらず、ボード上のROMを逆アセンブルして解析し、PC-98でも正しく起動できるように修正してしまったということです。
私が以前に逆アセンブルしたICMのパケットドライバは4kb程度でしたので、まあ、解析するのも可能な範囲だったのですが、こちらのROM容量は64kbもあります。しかも、その修正したROMは公開されているようです。う~ん、スゴい!尊敬します。
とりあえず、文章が長くなってきたので、今回はここまで。続きはまた今度。