MELCO SCSIボード IFN シリーズの BIOS容量上限などの改良
IFN92R Version 1.32
Copyright(C)2022-23 まりも(DOSsoft)
【1.このプログラムの目的】
Buffalo MELCO がかつて販売した98CバスSCSIボードのうち、92互換のIFN-92S のSCSI BIOSには 1GBまでしか使えない問題があります。本プログラムは、このBIOSにパッチを当てて1GB以上8GB未満までが問題なく使えるようにするものです。ただしボード上のROMを直に書き換えるわけではありません。Buffalo MELCO が現在(2022年12月)でも提供している書き換えプログラムの中のデータにパッチをあて、もういちどそのプログラムで書き換えるという形をとります。Buffalo MELCO のサイトにある書き換えプログラムは、適用対象がIFN-92Sだけでなく、IFN-SC,SCY,92S シリーズすべてとなっており、これらの古いボードでもIFN-92S相当にアップグレードできるようになっています。IFN-SC,SCY はそもそもいわゆる92互換のBIOSですらありませんので、この機会に書き換えてしまうのがよいでしょう。もはや使い物にならなかった92非互換のSCSIボードが実用可能なものに生まれ変わります。
なおこの書き換えで動作可能なのは、CPUにi486(互換を含む)が搭載されている機種に限定されます。以下で述べる選択により80386で動作可能にはなりますが、80286以下の機種では一切動作しなくなります。なおi486相当のアクセラレータに載せ替えてあれば動作可能です。
さらにバージョン1.10では、「div0ROM」機能が加わりました。SCSIに関係なく、オンボードIDEディスクの容量上限オーバーの際のハングアップが回避されます。
【2.準備:バッファローサイトからダウンロード】
https://www.buffalo.jp/support/download/detail/?dl_contents_id=60399
から ifnpc95.exeをダウンロードします。これをMS-DOSあるいはWindowsのコマンド プロンプト上で実行すると、アーカイブが解凍され、カレントディレクトリに IFNUPROM.COM ほかのファイルが作られます。【3.使用法】
本プログラムを解凍して得られた IFN92R.EXE を IFNUPROM.COM と同じ ディレクトリ上で実行します。ファイルが見つかれば
「このSCSI BIOSの 8192シリンダ(1GB)問題のパッチを行います.」
と表示されます。続いて
「80386機でも動作可能なようにしますか?(y/n) [ESC]で中止」
と表示されます。このとき Y で答えると、そのとおり80386機で動作可能となりますが、「DIV0ROM機能」は働かなくなります。いっぽう N で応答すると、
「ゼロ除算例外停止回避機能(div0rom)も追加されます.」
「ただし80386機では動作しなくなります(i486以降が必要)」
と表示されます。この通りの仕様となります。つまり80386対応とDIV0対応は排他となります。
次に
「JMP $+2命令を out 5FH,alに変換しますか?(y/n)」
という問いが出ます。
このときに Y で応答すると、変更が行われますが、PC-9801FA以前の機種では out 5Fhのウェイト機能が無いため、正常に動作しなくなる可能性がすこしだけ高く なります。いっぽうPentium(PCI)機でも動作するようになります。このパッチを 行わない場合、まずPentium(PCI)機ではハングアップして正常動作しません。
都合に合わせてどちらか(Y/N)を選択してください。なおESCを押すとこの段階で 中止します。
パッチに成功すると IFNUPR8G.COM という実行プログラムが生成されます。 これは次のステップで使用します。
ファイルが見つからないときは次の図のようなエラーで終了となります。
入力データのIFNUPROM.COMが異常なデータの場合もエラーで終了となります。
【4.ボードに適用】
ここからはかならずi486機を用意してください。PCI、Pentiumの機種ではSCSI ボードのROMの書き換えに失敗すると思います。
IFN-SC,SCY,92SのいずれかのSCSI ボードを1枚装着し、MS-DOSをFDベースで起動 します。このFDには IFNUPR8G.COM をコピーしておいてください。
書き換え時には、「SCSI_RAM」や「壁超えSCSI_LBA」などのBIOS RAM化ユーティリティやEMM386でのBIOS RAM化は適用しないでください。適用してあると必ず失敗します。
MS-DOSコマンドプロンプトからIFNUPR8G.COM を実行します。N を押すと実行を開始し、ROMの書き換えが行われるはずです。書き換えには数分を要します。BANK00 01 10 11 と4バンク(1バンク4KB)ずつ書き換えが行われて行きます。ベリファイが成功していれば、最後に成功のメッセージが出ます。なお終了後にMS-DOSに戻らないため、電源を落とすかリセットするしかありません。
書き換えに失敗すると,次の画面のようにバッファローの連絡先電話番号などが表示されますが、絶対に問い合わせることはしないでください。そもそも無保証の書き換えです。なおこれはIFNUPR8G.COMの問題で書き換えに失敗するわけではありません。オリジナルのIFNUPROM.COM でも失敗するはずです。一部のボードには書き換えできない ROM が載っているのだと思われます。また既に述べたように98本体が高速すぎても必ず失敗します。
IFNUPROM.COMは、書き換えに成功した後も失敗した後もハングアップする仕様のようですが、バージョン1.30からは実行後にDOSに戻るようパッチを当てました。しかしSCSIのドライブは動作しない状態となっているので、基本的に再起動する必要はあります。
なお書き換えユーティリティ実行が成功した後の画面で「パラメータ自動解析」を行うようにという指示が表示されますが、これが必要なのは、「元のボードがIFN-SC,SCYで、既にディスクドライブを接続して運用中だった場合」に限ってください。それ以外の場合(これからディスクドライブを繋ぐような場合)にはパラメータの自動解析をしてはいけません。
【5.書き換え後】
再起動するとSCSIボードのBIOS表示は図のように2.13.92R となり、パッチを当てた版であることを明示します。
1GB壁問題がなくなりますので、非常に使い勝手がよくなります。80386で使うかの問いにNで答えている場合はDIV0ROM機能も働きます。
PC-9821Af,An,Xn,BfなどのレガシーPentium機ではバスマスタは使えなくはないようですが、推奨されていませんし、実際転送速度は遅いです。これらの機種ではSMIT方式SCSIボードのほうが適しています。H98シリーズではバスマスタは動作しません。
IFN-SC,SCY,92SのバスマスタはI/O データのSC-98初代,SC-98Uとよく似ており(同じチップ BMX-2使用なので当然)、あまり高速ではありませんが、動作に安定感があります。
【6.その他注意点】
バージョン1.2で80386まで許容できるようになりましたが、DIV0ROM機能とは排他となっています。これはBIOSの空きエリアが不足しており、両方の機能を盛り込むスペースがなかったことに依ります。
システム起動時、[CTRL][GRPH][P]を押すと「パラメータ自動解析」が行われます。しかしもともと想定されていない容量のディスクドライブは自動認識できないと思われます。
手動でパラメータを設定することは可能で、基本的にはどのような値でもよいはずです。たとえばIDEで使用していた4351MB以下のディスクドライブなら8ヘッド17セクタにすればそのまま認識できます。16ヘッド63セクタでも問題ありません。
パラメータの手動設定のとき、ヘッド数とセクタ数だけ指定すれば十分なはずですが、なぜかシリンダ数まで入力させられます。この値を実際より大きい値に設定してはいけません。65535以上の値は指定できません。ヘッド数が16以上のときは4095以上の値を指定することができない可能性もあります。
シリンダ数は次の式で求められます(セクタ長は512バイトとする)。
容量MiBをXとし、ヘッド数をH、セクタ数をSすると、シリンダ数Cは
C = X * 2048 /H /S (ただし C < 65535であること)
となりますが、あまり欲張らない方がいいでしょう。8GB以上のパラメータ、例えば8ヘッド128セクタなどは、完全手動でパラメータを指定することは可能ですが、8GB以上のディスクドライブを接続して8GB以上のところに書き込みが正常にできるかのテストは十分になされていません。
ついでですのでこのSCSIボードのDIPスイッチ(SW1)の説明も掲載します。この8連のDIPスイッチは、通常の55/92互換 SCSIボードのDIPスイッチ2とは逆の番号が振られているようです。というか逆向きの使い方のようなので、1と8を逆向きに見ればそれと一致します。
スイッチ番号 意味 デフォルト設定位置 8 ノーマルモードROMアドレスbit0 OFF 7 ノーマルモードROMアドレスbit1 ON 6 ノーマルモードROMアドレスbit2 ON 5 ハイレゾモードROMアドレスbit0 ON 4 ハイレゾモードROMアドレスbit1 ON 3 対応機種グループbit0 ON ON-ONで 80286以上のノーマル機 2 対応機種グループbit1 ON ON-OFFで ハイレゾ兼用機 1 BIOS ROM有効無効 ON で有効 ボードのIRQ、DMAチャネル、ボードのSCSI IDなどの設定はシステム起動時の[CTRL][GRPH][S]押しのメニューで行います。これの物理的設定スイッチはボード上に存在しません。
Div0ROM機能については、それが動作した場合でもメッセージやbeep音は一切出ま せん。動作しない場合については特にシステムへの影響もありません。
【7.お約束】
IFN92R はフリーソフトウェアとしますので、ダウンロードして実行することは自由 ですが、著作権は作者である私にありますので、作者の意向に反する使い方は禁止と します。
このソフトウェア全体を、不特定多数のダウンロードできる場所へ「転載」する ことも、禁止とします。しかしリンク先の紹介についてはなんら制限はありません。
書き換えたSCSIボードを譲渡・転売・廃棄する際には、オリジナルのバッファロー のifnpc95.exe で必ず再度元に戻す書き込みを行ってからとしてください。
プログラムは、ある程度のテストを経て公開していますが、一部見込みで作成して いるところもあり、動作が完璧に行なわれるということを、作者は保証するものでは ありません。ユーザがプログラムを適用しことによる起動不能などのトラブルの補償 には一切応じません。
バッファロー(メルコ)が提供するボードのROM書き換えプログラムにも問題はある可能性があり、それによるROM書き換え失敗が起こったとしても、絶対にバッファローに問い合わせたり責任を求めたりしてはいけません。
システムが起動しなくなったことや、それに付随した逸失利益、精神的損害について、 作者は一切責任は負わないものとします。これらの点を了承できない方には、使用を 認めません。
まりも(DOSsoft) (連絡先メールアドレスはWebページ上で)
[履歴]
日付 版 内容
2022-12-18 1.00 新規公開
2023-01-07 1.10 DIV0ROM機能を添加
2023-04-25 1.20 80386対応と DIV0ROM機能を排他で選択できるようにした
2023-05-08 1.30 IFNUPR8G実行後DOSに戻ることを可能にした
2023-05-25 1.31 Codeパターン検索ルーチンの変更(機能的な変更なし)
2023-05-25 1.32 Codeパターン検索ルーチンの変更(機能的な変更なし)
←戻る