SCSI HDD用16進パラメータビューア/接続チェッカ for PC-98
hexp.com ver 1.01
本ソフトはNEC PC-98シリーズの55ボード互換SCSI-BIOS I/Fで、メモリアドレスのシステム共通域を参照して、各SCSI-IDのHDDの接続情報をエラーレベルに返すというDOSバッチファイル用ユーティリティです。したがって動作にはPC-98とDOSが必要です。
またSCSI情報のうちC/H/Sパラメータを含むデータを16進DUMP表示する機能があり、エレコムEIF-98AWシリーズのマルチベンダ機能を利用したいとき等に便利でしょう。
注意: EIF-98AWシリーズのForceパラメータは、ただ入力しただけでは適用されません。そのIDのHDD認識をForceモードに設定する必要があります。
なお、動作確認したEIF-98AWのBIOSは2.11です。SCSIインターフェイス自体の有無はチェックしていません(とりあえずSCSIなしのときは全てのIDでHDDなしと返すはずなので問題ないかと・・・)。
** 製作の背景(読み飛ばして構いません) **
[謎の高速SCSI]
ELECOM EIF-98AWは、私がはじめて入手したバスマスタSCSIボードでした。当時私は286マシンにCPUアクセラレータを載せ、ICMのSCSIボードを使い、WORD-FIFO転送の高速性に誇りを感じていた時代です。
そのEIF-98AWはジャンク由来で基板には型番も無く、当初はその素性さえもまったく分からなかったのですが、FXGAの6倍速データ再生がWORD-FIFO以上にうまくいったため、より高速なバスマスタではないかとの期待に感動したものでした。やがて中古屋で同じ基板を見つけたことからメーカーと型番が判明し、SHIFTキー起動によりセットアップ画面が出ることも、WEB上を調べて分かりました。その設定内容から、本当にバスマスタであることも確認出来ました。かくして、うちで最強のSCSIボードが誕生したのでした。
[死蔵の理不尽]
しかしWindowsドライバが見つからず95導入には使わなかったことと、マルチベンダ機能の使い方がよくわからないことから、それまで使っていたHDDを繋ぎ換えることができなかったため、あまり使われることがありませんでした。これは実に勿体無い話だと思います。その後の調べで、EIF-98AW III(手元のAWはIIよりも新しそうです)は、Windows95には55ドライバで正式対応していることが分かりました(専用ドライバは、INFファイルだけで、MPDは55用を使いますから無理に手に入れる必要はありません)。設定次第では92互換パラメータも持っているので、手動設定ながらも、マルチベンダ機能さえ使いこなせば、メモリ14.6MB以下のマシンでWindowsはもちろん、新しいPCでも古いHDDデータ整理などに、そこそこ役に立つでしょう。
[Forceパスワード]
ところがその設定が曲者でした。通常の手動設定するマルチベンダSCSIボードではHDDを以前のSCSIに繋ぎ、HDDパラメータを調べるツール(アイオーデータでHDDP.COM、旧メルコではHDPARA.EXEが提供されています)で、シリンダ数(C)、ヘッド数(H)、及び(トラックあたりの)セクタ数(S)の値を調べ、新しいSCSIにおいてその設定を入力するのが普通です。ところがAWはForce(強制指定の意か)パラメータ設定が16進数なばかりか、どこがCだかHだかSだか分からず、また16進データは桁の上下方向も曖昧なため、8ビット値の上下4桁の表示さえどんな順番かもわかりません。つまりForceパラメータとは、ほとんどパスワードと化していると言っても過言ではなかったのです。従ってHDDPやHDPARAのような一般的なパラメータツールを利用できませんでした。
[試行錯誤と単純な結論]
とりあえず16進ということは分かるのでC/H/Sをどこに設定すべきか考えてみましたが、そう単純でもないことが分かりました。98関連の技術資料では、パラメータ情報のあるメモリアドレスには、ドライブのC/H/S情報のほかにも、同じアドレスの別bitを利用して、いくつかの情報が盛り込まれています。Forceパラメータでは、これらをひっくるめて登録するのかもしれません。そこでそのアドレスをダンプするツールを作って16進データの表示順番を試行錯誤したところ、どうも普通のデバッガでダンプされて表示される順番が、ちょうどForceパラメータの順番と同じ事がわかりました。 そこで、マルチベンダ機能を使うのにいちいちデバッガを利用するのは煩わしい、ということで、試作したパラメータダンプツールをHDDPやHDPARAの感覚で、ある程度使いやすく改良することにしました。もちろんそれだけでは芸が無いので、HDDの存在チェックに着目し、BIOSの段階で認識したSCSI接続HDDの存在を、エラーレベルに返すDOSバッチファイルツールとしてリニューアルしたので、試しに公開してみます。
** エラーレベルの利用 **
本プログラムはバッチファイルで使いやすいようにエラーレベルが利用できますが、次の3つの場合において意味が異なります。
1) PC-98と見なされなかった場合。または簡易ヘルプ表示の場合。
常に255を返します。
2) オプションなしの一括表示の場合。
ID=7を除いた0から6まで各IDのHDD接続情報が、エラーレベルのビット0から6までに対応し、ver1.00とは逆にHDD無しのビットを1に上げます。
注意: 通常は0〜127のエラーレベルを返します。無いとは思いますが、ID=7にHDDが報告されていた場合は逆にbit7を上げますので、128以上のエラーレベルになります。
3) 調べるID番号を指定した場合。
そのIDにHDDの存在が報告されていなければ128、HDDが報告されていれば0を返します。
** 更新履歴 **
某事件に感化されて、何でもいいから作ってみたくなったというしょうもない動機もあったりします。開発中バージョンはいくつかありますが、最終版を除いて割愛します。そういえば、開発ではmobioNXも使うので、開発中バージョンではPC-98チェックがありませんでした。
2004/5/12 ver0.99 EIF-98AW調査後、Forceパラメータに合わせて表示変更し一応完成。
2004/5/13 ver1.00 PC-98チェックを搭載。一括表示機能を搭載したのに合わせて、エラーレベル関連の機能を大幅変更&バグ修正。初公開版。
2004/5/16 ver1.01 バッチファイル対策を強化(一括表示時のエラーレベルを変更し、オプションなしと見なされるオプション文字数を0から1に変更)。
KAZZEZ
戻る