[ SCSI_DSW ] V1.05
Copyright(C) 2004,2021 まりも
CバスのSCSIボードの DIPスイッチ設定を表示します。対象となるのは、PC-9801-55または92互換のボードです。PnPのボードは対象ではありませんが、非PnPモードであれば読み出しできるかもしれません。ジャンクで購入したがスイッチの設定がわからないという場合に、本プログラムを使って読み出すことができます。またスイッチ設定を一ヶ所づつ変えてみることで、スイッチの機能を調べることもできます。
SCSI_DSW.EXE はMS-DOSプログラムですので、コマンドプロンプトから
scsi_dsw
とタイプして下さい。コマンドオプションなどはありません。 WindowsのGUIモードのDOSプロンプト(いわゆるDOS窓)では 実行できません。なお動作可能なMS-DOSの最低バージョンは 2.11です。WindowsのDOS窓から実行された場合や、 SCSIボードが存在しない場合は、結果を表示せずに終了します。
実行結果表示例
SCSIボードの2枚挿しは、SCSI BIOSが生きている限りできませんので、既にSCSIがある環境では、調べたいほうのボードのBIOS ROMを無効にして下さい。無効にするには、SW2-8 をOFFにするか、ROM そのものを取り外します。また、種類に関わらず、SCSIボードのI/Oアドレスが競合しないように設定して下さい(PnPのSCSIボードなら大丈夫)。なお、BIOS ROM有効/無効のスイッチ(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)
このプログラムはフリーソフトです。今後改版をおこなうつもりがないので、転載も自由とします(許可不要)。著作権は、作者である「まりも」にあります。このプログラムの表示する情報内容に関して、作者は保証するわけではありません。
2004-9-1 作成
2004-9-8 改訂
2004-9-17 改訂 V1.01 I/Oアドレス0CF0hに設定したボードが検索漏れする問題を修正
2004-9-21 改訂 V1.02 無意味に386命令を使わないようにした
2017-12-23 改訂 V1.04 SMITボードの検索強化
2021- 3-17 改訂 V1.05 SW2 6,7機種タイプ名(XAと8086/V30)の入れ違いを修正