スリルドライブ基板のNVRAMについて

 スリルドライブもNVRAM(TimeKeeper RAM, M48T58Y)が使われていて、これの電池が切れてRAMに書かれている内容が消えると起動しなくなってしまいます。


 スリルドライブのNVRAMもバトルトライストと同じようにFRAMに交換して、一部のみ書き込んで起動してみたところ、最初に内容をチェックして初期化をするかどうか聞かれて、その後問題無く起動するようになりました。


 書き込んだ内容は前と変わらないような内容で

0xE,Fに0xA7,0xABが無いと駄目です。バージョンが違うと立ち上がらない可能性があります。
 上記内容を書き込んだNVRAMで起動すると

このような画面が表示されますので、ここでテストボタンを押すとNVRAMの内容を初期化して立ち上がり、それ以降は何もしなくても立ち上がるようになります。


 立ち上がらなくなったスリルドライブを見つけたらNVRAMをFRAMに置き換えて立ち上げてみてください。


 FRAMにすることによりRTCが無いため、bookkeepingの内容などが意図した動作をしないようになります。それ以外に問題が起こる可能性がありますが、確認出来ていません。


 0xE,0xFバイト目の0xA7,0xABですが、以下のruby scriptにて計算すると得ることが出来ます。0x00~0x0dまでのchecksumを求めています。

# checksum.rb
data = [0x47, 0x43, 0x36, 0x37, 0x36, 0x00, 0x00, 0x00, 0x19, 0x99, 0x4a, 0x41, 0x41, 0x00]
sum = 0
0.step(data.length-1, 2) {|i|  
  sum += data[i]<<8 | data[i+1]
}
sum ^= 0xffff
sum &= 0xffff
printf("%x\n",sum)

実行すると

% ruby checksum.rb
a7ab

0xa7abが求まりますので、そちらを0xE, 0xFに記載してください。