RvII26のページ


最高を目指すために購入したRvII26のページです。



1997年5月に発売されたRvII26、Pentium(R)IIプロセッサ/266MHz(マルチプロセッサ対応)&最大メモリー搭載:512MBと、98シリーズの中ではなかなか面白いマシンです。
現在でも十分使えるスペックですが、このまま使ったのでは面白くありません(^^ゞ
それではお決まりの改造(増設)となるのですが、このRvII26はほかの98シリーズみたいに簡単ではありませんでした。
まずメモリー増設ですが、ECC(Error Correcting Code)対応、おまけにメモリーインターリーブ 採用していることで、ただでさえ高いECC対応メモリーを4枚単位で増設しなくてはなりません。
これは仕方ないので、素直に高いメモリーを購入しました。

次はCPUを高速な物にと思ったのですが、ここでも制約が...
な、なんとCPUチェックらしき物がITF(BIOS)内に存在しており、Klamathコア以外のCPUはチェックに引っかかって起動できないらしいのです。
と言うことはPentium(R)IIIは搭載することが出来ないって事です。
しかしながら、まったく方法がないわけではなく、現にITFを書き換えてPentium(R)IIIを搭載している方々もいらっしゃいます。
プログラム関係ど素人である私ですが、先駆者の方々のホームページを見ているうちに何となく出来そうな感じがしてきました。

と言うことで、初心者にも出来る ITF書き換え講座!!(^^ゞ
参考にさせていただいたサイト
powerx氏のホームページ「98改造講座」 こちら


まず必要な物=ROMライターを購入します。
RvII26は、PA28F400というSOPタイプFlashROMが搭載されていますので、これに対応したロムライターでないといけません。
あと、一度でバッチリ書き換えが成功するはずもないでしょうから、私は補助部品として山一電機社製の実装用ICソケット「IC179-44600-500」を購入しました。
この部品はレバー式のソケットではありませんので、取り付け取り外しは少しコツがいりますが、最大の特徴として取り外したFlashROMの基板パターンにそのまま取り付けできます。



クリックで拡大
左の写真がFlashROMを取り外してソケット式にした写真です。
このとき一番注意しなくてはいけない事は、FlashROMの1番ピンとマザーボードの1番を合わせなくてはならないと言うことです
これを間違えると一発でFlashROMを破損しますので、細心の注意を払って何度も確認することを怠ってはなりません。
1番ピンは、FlashROMは左下に見える丸いくぼみが1番ピンの印で、マザーボード側は少し見にくいかもしれませんが、FlashROMの周りを囲うようにシルク印刷してある白い四角のラインの一辺が内側に丸く入っている側が一番ピン側(写真左)になります。

それではいよいよ書き換えです。
(注)私自身素人ですから間違ったことを書いているかもしれませんので、そういうつもりでこれ以降はご覧下さい
PA28F400は512KBの容量を持っていますので、すべて読み込んだ物としてITFと呼ばれる部分はROMアドレスの最後部分みたいです。
いきなり意味不明のROMアドレスという言葉が出てきましたが、ロムライターで読んだファイルをバイナリエディタで見てみましょう。



左の写真がバイナリエディタの画面です。
左端にADDRESSとある数字がROMアドレスで、98シリーズの場合はメモリーアドレスF8000〜FFFFFにROMアドレスの最後から32KBがマッピングされます。
この場合、00****〜07****までしかないので書き換えるべき部分は07****に集中しているということになります。

ではCPUチェックを探してみましょう。
書き換える場所は転載になりますので、powerx氏のホームページ「98改造講座」の「第14回・RvII26の封印を解除する」を参考にしてください。
探し方はエラーメッセージそのものの「CACHE ERROR」を探します。


この部分をデバッグしてみると

:0008.BB23 FA          cli
:0008.BB24 BC3000      mov sp, 0030
:0008.BB27 8ED4       mov ss, sp
:0008.BB29 BCFE00      mov sp, 00FE
:0008.BB2C E8A0FA      call B5CF
:0008.BB2F 731B      jnb BB4C
:0008.BB31 BE3E3B      mov si, 3B3E
:0008.BB34 B91100     mov cx, 0011
:0008.BB37 BD3D3B      mov bp, 3B3D
:0008.BB3A E9372E      jmp E974

:0008.BB3D F4          hlt
:0008.BB3E 41          inc cx
:0008.BB3F 43          inc bx
:0008.BB40 41          inc cx
:0008.BB41 43          inc bx
:0008.BB42 48          dec ax
といった感じになります。(アドレスはデバッガの関係で1つずれていますので、07=0008です)
バイナリエディタの画像と比較するとCACHE ERRORの表示は41 43 41 43 48...となりますから0008.BB3Eが始まりです。
ではどうやってこの部分を表示しているかというと、少し上に「 mov si, 3B3E」と書かれています。
このようにエラーメッセージは「 mov si, ****」、つまり****にある文字列を表示しています。
じゃあ「3B3E」がどうして「0008.BB3E」になるかというと、アドレスF800を一桁あげてF8000+3B3E=F:BB3E つまりここで言う0008.BB3Eとなります。

ではどういった場合にエラー表示になるかというと、「 mov si, ****」の2つ上に「call B5CF」という記述がありますが、これはサブルーチンと呼ばれる補助プログラムに移動しています。
移動したサブルーチン内でいろいろなチェック&設定をして、異常があればフラグと呼ばれる目印を付けて1つ下に戻って来るのですが、戻ってきた所に「jnb BB4C」と書かれています。
ここでエラー処理にいくのか正常起動プロセスにいくのか決めています。
ここまで理解できれば、書き換える場所はcallで呼ばれているサブルーチンであることに気が付かれたことと思います。

書き換え作業が完了しても、もう一つ重要なことをしないといけません。
そう、チェックサムを合わせます。
ITFは全体のチェックサム(奇数アドレス&偶数アドレスそれぞれの和)が違っていると起動すらしませんので、計算して合わせてやります。
この作業を簡単にするべく、Moonface氏に「チェックサム計算プログラム」を作っていただきました。(ここからダウンロードできます)


「チェックサム計算プログラム」で、書き換え前のITFを見てみますと、偶数アドレス加算値:0× 029f4c00 奇数アドレス加算値:0× 029e9b00となっていますので、奇数&偶数それぞれ下2桁を0にしてやればいいみたいです。


書き換え後のチェックサム(奇数アドレス&偶数アドレスそれぞれの和)を確認して調整してやるわけですが、私は簡単にするべく、CPUチェック外しの為に書き換えたサブルーチン内の残骸部分で調整しました。
本来はITF最後の部分周辺で調整されているみたいです。

それでは書き換えを確認(CPU実装)です

クリックで拡大
スロット変換下駄はPowerLeap社の PL-iP3/Tを使用し、IntelPentiumIII 1.1GHzDualで取り付けてみました。
もっとも、PentiumIII 1.1GHzを搭載してもベースクロックが66MHzなので、実際の動作クロックは733MHzとなってしまいます(^^ゞ

では、スイッチオン!
ピポッ  おおっ、無事に起動できました。
これで、RvIIの制約の一つが解除されました。


進む



GOホーム