[22220]  チェックサム合わせについて
投稿者:畠山 さん   2004-01-01 10:51:30
始めまして、畠山と申します。
チェックサム合わせについて何方かアドバイスして頂けないでしょうか。
UIDE−66とUIDE−98Mが入ったマシンを
稼動させていたのですが、
UIDE−98Mのマシンにちょっとストレスを感じて、
UIDE−66ボードを買おうとネットで探しているうちに
UIDE−133/98の事を10月末になって知りました。(^^ゞ
UIDE−133は9821非対応とあったので買いませんでした。
今にして思えば買っとけば良かった・・・。(T_T)
某ホームページで、
UIDE−66のBIOSをUIDEPATで書き換えると
32GB以上認識出来る様になることとAEC−6280
でも出来る事を知って着手したまではいいんですが
AEC−6280とUIDE−133の違いも解らず始めた
もんでああでもないこうでもないと試行錯誤の結果
ある方に救いのメールを出して、ヒントを頂き認識と起動の問題を解決しました。
(^^ゞ
現在までの変更箇所です。
00000000 55 AA 20 E9 8B 24 00 00 00 00 1A 2D 41 45 43 36
00000010 32 38 30 20 00 00 00 00 50 00 00 00 50 43 39 38
00000020 E9 08 24 00 CB 00 00 00 CB 00 00 00 CB 00 00 00
00000030 CB 00 00 00 CB 00 00 00 CB 00 00 00 CB 00 00 00
00000040 00 00 00 00 CB 00 00 00 00 00 00 00 00 00 00 00
00000050 50 43 49 52 91 11 09 00  00 00 18 00 00 00 00 01
00000060 20 00 00 00 00 80 00 00  00 00 00 00 00 00 FF FF
00000070 FF FD FF 00 00 00 00 00 00 00 00 00 00 00 00 00

00007FF0 29 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

それではAEC−6280で32GB超えの処理をしようと、
UIDEPAT処理をしたUIDE66.BINを上記の様に書き換えて
A:¥>AECFLASH /DOS UIDE66.BIN 
書き換え部分で、
BANK0 #00h
BANK1 #00h
Checksum Err
となってROMの書き換えが出来ません。

今は、UIDE−66に40GB/ATA133を
AEC−6280に30GB/ATA100を繋いでいます。
どこを変更すればいいのか、
どなたかご存知の方、アドバイス頂けないでしょうか。
それとUIDE−133R−LはROMの書き換えでUIDE−66に
ならないんでしょうか。
UIDE−133R−Lには、UIDE−133に変更するファイルが同梱されてい
るみたいなのでこれを使って、
UIDE−133R−L -> UIDE−133 -> UIDE−66
実証された方いませんか。
地方に住んでいるもんでカタログにある物しか調達出来ません。
宜しくお願いします。
  1. 大熊猫 さん   2004-01-01 20:31:25
    ライセンスの問題についてはどなたかからフォローがあるものと思いますが、http://weblabo.griffonworks.net/dorlog/2nddorcom/98mania/thread20806.html
    はご覧になりましたでしょうか?
    PCI-BIOSがチェックサムを取る区間は0000h-3FFFhです。
    7FF0hの変更はなにか必要があったのでしょうか?

    また、別の問題ですが、AEC-6280はデバイスIDが0009hで間違い無いでしょうか?
    たしかAEC-6280はUIDE-133R用の石でUIDE-133用の石とは別だったと記憶しております。
    INTELSATを用いて、
    INTELSAT /EDIT というエディットモードでデバイスIDは確認できます。
    アドレス02hがWORD単位でデバイスIDになります。
    もしくはUIDE-133R用のWindowsのドライバ中にあるINFファイルに
    記載されているものでも同じかと思います。

     また、チェックサムといっているのが、PCI-BIOSが妥当なROMか
    判断するためのものではなく、書きこみソフトがROM内容が想定外の
    イメージでないことを吟味するためのチェックサムの可能性があります。
    その場合は色々確かめるなり書きこみソフトをいじるなりする必要があります。

     最後に、失敗すると最悪の場合98でもAT互換機でもメモリチェックで固まる
    不良ボードになる可能性があります。(たとえばチェックサムを命令コード中で
    合わせてしまった場合)私もそう言う経験がありますので・・・
  2. いーとん さん   2004-01-01 21:07:42
    > AEC-6280はUIDE-133R用の石でUIDE-133用の石とは別だった
    6280 − UIDE-133
    6880 − UIDE-133R
    です。
  3. 大熊猫 さん   2004-01-01 22:12:42
    > 6280 − UIDE-133
    > 6880 − UIDE-133R
    > です。
    勘違いしていました。ご指摘ありがとうございます。m(_ _)m
  4. アマティ さん   2004-01-03 15:07:20
    >スレッドの中で足した分どこかで引けと書かれていますが、
    >バイナリコードは全然解らん上に、
    >区間0000h-3FFFhは広すぎて皆目検討もつきません。(T_T)

    弄り回すなら、少なくとも逆アセンブルリストを作って自分なりに大まかな構
    造を理解して納得してから始めるのが定石ではないかと。
    まぁ、しくじって何枚もボードをゴミにしながら、お金と時間を浪費して覚え
    るという方法もないわけではありませんし、人それぞれですから止めませ
    んが。

    UIDEシリーズではメモリ全体のチェックサムを冒頭のデータ領域で合わせ
    ています。
    UIDE-66だと0068hで帳尻を合わせていますが、そこはどうなっていますか?
    UIDE-98/Mでは0066hなので、UIDE-133だとまたこのアドレスは違う可能性
    もあります。
    0002番地のROMサイズを読んだ後、×2^9してアドレスサイズに変換し、そ
    の回数分ループを回して足した後、合計値をNEGしている所があると思いま
    す。その結果を書き出しているアドレスがBYTE-SUMのアドレスです。
    アルゴリズム上、ここはROMデータの時点では必ず00hが入っていなければ
    なりません。

    この処理をしているところは一箇所しかないので、捜せばわかると思いま
    す。
    まずは解析してみることからお勧めします。
  5. アマティ さん   2004-01-03 19:33:36
    っと、そこまで辿り着いていないようなので、もう一つアドバイスを。
     逆アセンブルして解析してみるとすぐにわかりますが、UIDE-133に付属し
    ているBIOS書き換え用プログラム(AECFLASH.EXE)は、最初にBIOSデータを
    読み込んで、どのATAカード(チップ)に対応したBIOSデータなのかを調べ、
    その結果により、それぞれに固有な書込パラメータを設定して動作していま
    す。
     この値が正しく設定されないまま、プログラムを書き換えて強制的に書き
    込みモードへ突入させても、エラーを吐いて止まってしまいます。

     従って、正しいパラメータが設定されるようにBIOSデータの方も直してや
    る必要があります。

     このパラメータですが、BIOSデータヘッダのデバイス/リビジョン/プロ
    ダクトデータの部分で確認されていますので、そこを目的とするボードのも
    のに書き換えてやらなければなりません。

    取りあえずこんな所でしょうか。
    頑張って解析してみて下さい。
  6. 畠山 さん   2004-01-04 10:37:08
    アマティさん
    ありがとうございました。
    できれば元スレッド
    http://weblabo.griffonworks.net/dorlog/2nddorcom/98mania/thread20806.html

    に書いて頂けていたら、着手しなかったと思います。(^^ゞ
    >UIDE-66だと0068hで帳尻を合わせていますが、そこはどうなっていますか?
    00000060 20 00 00 00 00 80 00 00  00 00 00 00 00 00 FF FF
    00000070 FF FD FF 00 00 00 00 00  00 00 00 00 00 00 00 00
    この事でしょうか?
    本人は、何もしていない様に思うんですが・・・。
    それと、
    書きこみを読んで、ここまでしなくちゃいけないんだとすると、
    私では手に負いない・・・。今更遅いか(T_T)

    あのスレッドはUIDE−133の話であって、 
    OEM元のAEC−6280は含まない話だったんですね。(^^ゞ

    全ては私の勘違い。
    私は川崎に住んで居た時、プリント基板の設計に携わっていたもんで
    AEC−6280はシルク印刷を変えたものかと思って買ってしまった。)
    只のラベル商売じゃ無かったんですね。−>IODATAさん
    大変失礼しました。m(__)m

    それで結論を申し上げますと、成功しました。(^^ゞ

    ある方から、エラーそのものを無視するという方法を
    教わりなんと一回で書き換え終了してしまいました。

    アマティさんの2度目の書きこみを読む前でした。
    アマティさんの2度目の書きこみを読んで、こういうことだったのかと
    納得しました。
    >BIOS書き換え用プログラム(AECFLASH.EXE)は、最初にBIOSデータを
    >読み込んで、どのATAカード(チップ)に対応したBIOSデータなのかを調べ、
    >その結果により、それぞれに固有な書込パラメータを設定して動作していま
    >す。

    それで、UIDEPAT当てする前はエラーが出なくて
    当てると途端だったんですね。

    それにしても、ここまで2ケ月かかりました。
    今更ながら思うに、UIDE−133が製造中止になる前に
    スレッドを読んでいたらなあ・・。
    しかし、表示速度の問題と通信料金の問題でそんなにネット
    サーフィン出来ません。(^^ゞ
    昔、パソコン通信で5万円の請求書が来ました。
    それにくらべれば格段に安いですが・・・。

    私の地域は、去年の5月にADSLの8Mになりました。
    私はいまだに56Kモデムを使っています。
    月¥980/4時間のプロパイダー料金です。
    UPDATE等の容量の大きいファイルは
    ちょっと隣町のインターネットカフィ(20Km先)まで
    行ってダウンロードしています(そこは24M)。
    今回の設定では、冷やかされながらも随分通いました。

    アマティさんの指摘通り、お金と時間を浪費して
    やっとここまで出来ました。(^^ゞ
    アマティさんのアドバイス、
    > 正しいパラメータが設定されるようにBIOSデータの方も直してやる。
    > BIOSデータヘッダのデバイス/リビジョン/プロダクトデータの部分のパラメータの
     書き換え。
    は、もう少し勉強してからやります。
    HDDを買うお金をつぎ込んでしまったし
    今は、40GBを認識して動いてくれたからいいやという事で・・・。
    それに、正直疲れました。

    皆様、貴重な時間を割いて書きこんで下さり、
    またアドバイスを頂きありがとうございました。

    駄目もとで投稿してよかったです。

    本当にありがとうございました。

    一応繋がったという事で、
    ★ ★ ★ HDBENCH Ver 3.30 (C)EP82改/かず ★ ★ ★
    M/B Name PC-9821XA13/W12
    Processor AMD K6-III+ 596.89MHz[AuthenticAMD family 5 model D step 0]
    Cache L1_Data:[32K] L1_Instruction:[32K] L2:[256K]
    Name String AMD-K6(tm)-III Processor
    VideoCard スタンダード ディスプレイ アダプタ (9821 シリーズ)PC-9821: GA-SV4 Series Bus Master Driver
    Resolution 1024x768 (32Bit color)
    Memory 160,104 KByte
    OS Windows 98 4.10 (Build: 2222) A
    Date 2004/01/04 04:58

    HDC = ACARD AEC6280 UDMA133 IDE Controller

    AB = Maxtor 2 F040L0 PM Rev VAM5
    C = QUANTUM FIREBALL EX6.4SM Rev A0A.
    D = GENERIC NEC FLOPPY DISK
    F = PHILIPS 4424 CDRW Rev 2.4C

    ALL Integer Float MemoryR MemoryW MemoryRW DirectDraw
    19888 28610 18262 7218 3526 7050 8

    Rectangle Text Ellipse BitBlt Read Write Copy Drive
    8937 9161 3333 47 38151 31721 20983 A:100MB

  7. 畠山 さん   2004-01-04 17:48:33
    追加です。
    一応ファイルをチェックしました。
    まりもさん作のPCIXROM.EXEを使用して、
    AEC−6280の差さっているマシンで、
    A:¥>PCIXROM
    出来あがったファイル(PCIXROM.BIN)は64KBなので、これを
    元ファイル(UIDE66.BIN)の48KBに合わせて
    (PCIXROM.BINのお尻を削除しただけですが・・・。)
    フロッピディスクに保存して、
    WINDOWSを起動して、
    DOS窓から
    D:¥>FC /B UIDE66.BIN PCIXROM.BIN
    すると、
    ファイルを比較しています。UIDE66.BIN PCIXROM.BIN
    FC:違いは見つかりませんでした。
    と画面表示されたので、一安心です。

    本当は、アマティさんのアドバイスで設定できれば、
    始めのタイトル通りチェックサム合わせとなるところなんだけど、
    チェックサムをハードルに例えるなら、なぎ倒してゴールした様な
    気分だったので(抜けた所は無いか)ファイルチェックして見ました。

    アマティさん、ごめんなさい。
    >0002番地のROMサイズを読んだ後、×2^9してアドレスサイズに変換し、そ
    >の回数分ループを回して足した後、合計値をNEGしている所があると思いま
    >す。その結果を書き出しているアドレスがBYTE-SUMのアドレスです。
    >アルゴリズム上、ここはROMデータの時点では必ず00hが入っていなければ
    >なりません。

    今の私の頭では、理解出来ません。
    勉強します。
    貴重なアドバイスありがとうございました。