PC-9821のDOSでSBP-2デバイスを使う


どういうものか

PC-9821のMS-DOSからIEEE1394接続のCD-ROM、HDD、MOなどのSCSIコマンドを利用するSBP-2デバイスをSCSIエミュレーションするASPIドライバです。Sound blaster! AudigyやSUPERCHANPON2やUSB&IEEE1394コンボボードの1394OHCIコントローラにドライブを繋げて利用するものです。カードバス搭載98ノート対応のため、/Pオプションでの決め打ちを可能にしました。

使い方

以下の一文をCONFIG.SYSに加えてください。

DEVICE=FWASPI.SYS

このドライバはASPIを提供するだけなので、適宜デバイスドライバを追加で読み込んでください。CDSDMINI.SYSでCD-ROMを読んだりICMDISK.SYSでMOを読み書きしたりとかなんかのドライバでAT互換機フォーマットなFATフォーマットのHDDを読んだりします。なお、Windows98SEのインストールの際にはCABSセットアップしてください。EMM386との共存は旨く行ってるのか良く分かりません。ドライバのある物理メモリアドレスが動いたりしなければ動作に支障は無いと思うのですが。1394OHCIの入出力はMMIOであり、Windows起動中にページの変換などが入ってるのが原因か、Windowsのドライバと競合するためかも知れませんが、途中で落ちます。Target IDは設定しようが無いので、OHCIのボードをルートとして幅優先探索でASPI上便宜的にIDを振ります。IDを変えたい場合、トポロジを変えてください。メモリは12KBも食いますがこれはOHCIの仕様のためです。

EMM386.EXE

EMM386.EXEとかの仮想86モードのドライバを使う場合、ドライバの物理アドレスが最初にロードされたアドレスから動かないものとして書いています。また、INT 1Fhが引数チェック無しにMMIOに使えることを前提としています。このどちらかが満たせない場合、まともに動かないと思います。

おまけ

なお、PCIROM10というのはBIOSのソースファイル先頭付近のFWASPI EQUの行をコメントアウトせずにアセンブルすると、BIOSイメージ中にASPIのメインルーチンを実行時に残るようにアセンブルするもので、これを3124ASPI.SYSで呼び出すとASPIマネージャが登録されるという仕組みのものです。なぜこんなことをしているかというと、IEEE1394はDMAでしかデータ転送が出来ず、常にDMA用のRAMをそれなりに確保する必要があって、メインメモリ常駐というのはちょっとなあ、と思ってRAM化したBIOS領域をそのデータのやり取りに使おうと考えたためです。

おまけ2

ノート機の場合はCardbusブリッヂに置いたfwcbena.sysを使ってまずPCIデバイスとしてアクセスできるようにしてください。


Valid HTML 4.01 Strict