CバスのSCSIボードの DIPスイッチ設定を表示します。対象となるのは、PC-9801-55または92互換のボードです。ジャンクで購入したがスイッチの設定がわからないという場合に、本プログラムを使って読み出すことができます。またスイッチ設定を一ヶ所づつ変えてみることで、スイッチの機能を調べることもできます。 DOSを起動して調べようとしても、ROMアドレスや割り込みの設定が不適切なSCSIボードが装着されている場合、システムの起動ができなくなり、読み出すこともできません。
そこで、どんな場合でもすぐにフロッピーが起動できる「FDローダ機能」でも読み出すようにしたのが、本アプリケーションです。本アプリケーションのフロッピーを作っておけば、[ESC][HELP][8]押し起動で一瞬でSCSIボードの諸スイッチ設定を表示できます。割り込み(INT)やROMアドレスが不適切な場合でもこのフロッピーは起動できます。
またFDローダ機能を持たない旧機種でも、通常のフロッピー起動ができる状況であれば、本アプリケーションで作成したフロッピーで実行結果を得ることができます。
まずPC-98の1.25MBでフォーマット(1024バイト8セクタ形式フォーマット)されたフロッピーディスク用意し、起動優先順位のトップとなるドライブレターのフロッピードライブに挿入しておきます。 FDLDMKFDも用意しておきます。
コマンドラインから
FDLDMKFD SCSIDSW
のように打ち込みます。すると書き込みが始まり、起動用FDが作られます。
なお、このフロッピーはシステムからダイレクトに読まれる物であるため、通常のファイルシステムに則った形式では書かれていませんが、それでは何だかりませんので、dirコマンドで見るとSCSIDSW.APPというダミーの(0バイトの)ファイルが存在するようにしています。この空のファイルは削除しても構いませんし、フロッピーの空きにデータを書き込んでも問題ありません。FDローダアプリケーションの存在する場所は「スキップセクタ」として登録したところにあります。chkdskで表示されますが異常ではありません。詳しくはFDLDMKFDの説明書のほうをお読みください。
フロッピーに入ったアプリケーションの起動方法には次の2通りがあります。
起動すると次のような画面が出ます。FDローダとして起動した場合は再起動が必要です。電源を切ってもかまいません。通常のFDブートの場合は、表示後にブート装置を選択してシステム起動ができます。通電状態のままボードのスイッチを変更してまた実行しなおすと、変更箇所の表示が変わるはずです。なおSCSIDSWの旧バージョンではBSキーを押すと連続実行できましたが、1.10ではこの機能は廃止としました。
SCSIボードの認識は、I/Oアドレスで行います。I/Oベースアドレスが所定の0CC0h,0CD0h,0CE0h,0CF0h以外のボード(例えばPC-9801-100ボード)は認識しません。SMITボードの場合はCCC0hも検索します。SCSIボードが検出できない場合、「SCSIボードが見つかりません」という表示が出ます。ハングアップしているわけではないので、ENTERキーを押せば再起動がかかります。
92互換の非NEC製SCSIボードのなかには、ハードウェアのスイッチ設定がなく、[GRPH][CTRL][S]など(メーカにより異なる)を押してスイッチメニューを出す機能を持ったものがあります。SMIT方式SCSIボードは全てそうです。本アプリケーションはこのタイプのボードにも対応していますが、そもそも「スイッチ設定がひどく不適切」だとボードは98本体から認識されません。このような状態の場合本アプリケーションでも表示がなされません。
「スイッチ設定がひどく不適切」の例としては、本体機種タイプの設定(SW2-7,6)が挙げられます。このスイッチを「ハイレゾ/ノーマル兼用」にしている状態でハイレゾモードのない普通の98(PCI搭載は全機種該当)に装着すると認識できず、設定もできません。ジャンクのSMITボードを入手して動作しない場合、本当に不良なのではなく、これに該当している可能性があります。この場合はハイレゾモード機で[GRPH][CTRL][S]などによる設定を行い、「ノーマルモード専用機」に直せばノーマルモード機で認識できるようになります。もしハイレゾモード対応機を持っていない場合は、ボードの再設定は不可能です。
SCSIボードの2枚挿しは、SCSI BIOSが生きている限りできませんので、既にSCSIがある環境では、調べたいほうのボードのBIOSROMを無効にして下さい。無効にするには、SW2-8 をOFFにするか、ROM そのものを取り外します。また、種類に関わらず、SCSIボードのI/Oアドレスが競合しないように設定して下さい(PnPのSCSIボードなら大丈夫)。なお、BIOSROM有効/無効のスイッチ(SW2-8)の情報は、本プログラムでは読み出せません。
本プログラムでは、PC-9801-92/55互換のCバスSCSIボードが装着されている枚数全て表示できます。ただしI/Oアドレスはそれぞれ異なっている必要があります。ボードを識別するのはI/Oアドレスです。I/Oアドレスの設定がわからないような場合は、2枚挿しはおこなわないでください。
ほとんどの 92/55互換SCSIボードでは、スイッチの役割りが決まっています。少なくとも SW1,SW2は8連のDIPスイッチとなっています(しかしSW1,SW2の名称や形状が異なるボードもあるようです)。
I/Oアドレスを決めるスイッチはSW3,SW4というジャンパピンのことが多いですが、物によっては SW1,2と別のDIPスイッチになっています。このときデフォルト側がONかOFFかは物によって異なります。本プログラムの存在意義は、これを調べることにあるといってもよいでしょう。なお、比較的古い(55互換の)ボードでは、SW3,4は ROMのアドレスピンA14,A15と連動になっているものが多いようです。SW3,4をデフォルト以外の設定にすると、ROMのアドレスは 2000hまたは4000hずれることになります。SW3,4を動かすとROMが無効になるのは、ROMアドレスがずれることで、データのない部分(値 FFh)が出現するためのようです。したがって、例えばI/Oアドレスを CD0hにしてもROMが動くようにするには、ROMの物理アドレス2000hに SCSI BIOSをコピーして焼けばよいということになります(ただしBIOSルーチンは CD0,CD2,CD4を使うように改変する必要がありますが)。そのほか、SCSIとは関係ないROMプログラム(例としてはIDE BIOSのパッチなど)を格納しておくということにも使えます。
プログラミング上の参考資料として、小高輝真・こうのたけし 共著、Undocumented9801/9821 vol.2 があります。 http://www.webtech.co.jp/undoc/
本プログラムでは、SCSIボード標準の 0Cx0hを叩いてDIPスイッチ読みだしコマンドを送り、読み出した値を表示しています。添付ソースプログラムがありますが、フリーソフトを作るのにこれを参考にすることは構いません。
●資料 SW1,SW2の意味
bitと書いてあるものは、値0 が スイッチのOFFで、1 がONです。
設定が禁止されている値もあります(例 DMAch2 , INT6,INT7 )。
■SW1 1 SCSI ID bit0 2 SCSI ID bit1 3 SCSI ID bit2 4 INT LEVEL bit0 (#) 5 INT LEVEL bit1 (#) 6 INT LEVEL bit2 (#) (#) 0=INT0(IRQ3), 1=INT1(IRQ5), 2=INT2(IRQ6), 3=INT3(IRQ9) 4=INT41(IRQ10), 5=INT5(IRQ12), 6=INT6(禁止), 7=禁止 7 DMA channel bit0 8 DMA channel bit1 (2bitで DMA ch0から3を表す) ■SW2 1 ROM address (N) bit0 (*) 2 ROM address (N) bit1 (*) 3 ROM address (N) bit2 (*) (*)値 0=D000, 1=D200, 2=D400, 3=D600, 4=D800, 5=DA00, 6=DC00, 7=DE00 4 ROM address (H) bit0 (+) 5 ROM address (H) bit1 (+) (+)値 0=E800, 1=EA00, 2=EC00, 3=EE00 6 HOST PC TYPE bit0 00b V30,8086 , 01b PC-98XA 7 HOST PC TYPE bit1 10b ハイレゾ兼用 , 11b 80286以上ノーマル 8 ROM kill (OFF)/ ROM enable(ON)
著作権は保持しますが、フリーソフトウェアですので、自由に使用してかまいません。ただし不特定多数がダウンロードできる場所に置く(公衆送信可能な状態にする)ことや、二次的な譲渡や販売を行うことは禁止とします。
このソフトを使用したことによる損害(起動不能、何かの設定への干渉など)に関し、作者は一切責任を負わないものとします。自己責任でお使いください。
日付 版 内容 2017-11-23 1.02 公開初版(移植元のSCSI_DSWと同じ) 2017-11-24 1.04 ハイレゾモード対応、SMITボード検出強化 2021- 3-17 1.05 SW2 6,7の機種タイプ名(XAと8086/V30)の入れ違いを修正 2024- 9- 8 1.10 FDloaderアプリとして更新、旧DOS版(scsi_dsw.exe)は統合のうえ廃止