BIOSBIOSの動作モード同期周波数LBA計算間違いマルチベンダ機能92型パラメータ取得モードセンスのCが4095を越える場合のAH=84のSENSEの返事C>4095でH>15のとき(ありえない)のLBA計算BIOS容量壁Win95の55ボード用DMAドライバでの動作NT3.51の92ドライバでの動作入出力IOport備考
PC-9801-50未所持 参考33c93H=8 S=32固定で具体的にはCHS=8191:17:8をどう取り扱うかIDE変換かごに入れたときにH=16が起こりうるPC-9801-50×CHSはBIOSSENSEの値をそのまま利用モードセンスを見るのは100ボードと同条件 そうでなければ板に関係なく容量帯で8:32か8:128になるPC-9801-50
PC-9801-55未所持 参考33c93Cを割り算で取得Cを12bitに落とすものはフラグを破壊する(しかし普通はNECベンダではないので大丈夫)PC-9801-55LUNで後から接続したものはモードセンスを利用?動作しないのでは?HCLにいないEPSONプロテクト NECベンダ以外拒否PC-9801-55
Hを4bitに落とすものはCHSパラメータ誤認(最悪) H<16なら問題なし
As内蔵BIOSDMA/データポートするやらないCを12bitに落とすHを8bitのまま計算8GB/24bitNECベンダ以外拒否だが想定された使用方法が不明
PC-9801-55U33c93ADMA/データポートできないするやらないCを12bitに落とすHを8bitのまま計算PC-9801-55U8GB/24bit92用と書かれているがDMAで動作する HCLにあるEPSONプロテクト NECベンダ以外拒否PC-9801-55U
IF-55TB1.0233c93AFIFO/DMA/データポートできないしないやらないSだけ再計算後Cを12bitに落とすHを8bitのまま計算IF-55TB8GB/24bitIO CC0hでしか動作しない SCSI-2でも動作するIF-55TB
E907-0133c93ADMA/データポートできないするやらない CDドライブはH:S=8:64Cを12bitに落とすHを8bitのまま計算E907-018GB/24bitE907-01
IF-256033c93AFIFO/DMA/データポートできないするモードセンスの反応次第でH:S=8:64Sだけ再計算後,16bitフラグを立てHを4bitに落とすHは16bitCフラグで判別して4bitIF-25608GB/24bitCC6h WORD(RAM)IF-2560
PC-9801-9233C93BFIFO/DMA/データポートやらないするモードセンスの反応Cを12bitに落とすHは常に4bit扱いPC-9801-92事実上1GB/24bitDMAで動作FIFOで動作する(遅くない)1C84h DWORDEPSONプロテクト 特定ハイレゾ機種本体BIOSパッチデータが含まれているPC-9801-92
MDC-925L1.3433C93Bバスマスタ/FIFO/DMA/データポート10.0MHz間違えない細かく設定可MDC-925L120GB/32bit本体DMAでの動作△遅いが本体DMAで動作CC6h WORD(書き込み時だけRAM)MDC-925L
LHA-2011.3133C93Bバスマスタ/FIFO/DMA/データポート5.0MHzするやらない16bitフラグを立てHを4bitに落とすHを8bitのまま計算LHA-2018GB/24bit○(非同期バスマスタ動作)×バスマスタモードでは不可 違うモードでは本体DMA動作で遅いが可CC6h BYTELHA-201
SC-98II1.0733C93Bバスマスタ/FIFO/DMA/データポート10.0MHz間違えない自動認識はあるベンダがNECでなければ16bitフラグを立てHを4bitに落とすHは16bitCフラグで判別して4bitSC-98II8GB/24bit○(非同期バスマスタ動作)×バスマスタモードでは不可 違うモードでは本体DMA動作で遅いが可CC6h BYTESC-98II
IF-27711.00V30バスマスタ/FIFO/DMA/データポート10.0MHzするモードセンスの反応次第でH:S=8:64Sだけ再計算後,16bitフラグを立てHを4bitに落とすHは16bitCフラグで判別して4bitIF-2771(条件が揃えば)8GB/32bitDMAモード設定でも動作不可 専用ドライバが必要設定変更しても動作不可能CC6h WORDIF-2771
LHA-3011.0033C93BSMIT/IO/DMA/データポート10.0MHz間違えないベンダがNECでなければHは16bitCフラグで判別して4bitLHA-3018GB/24bitDMAで動作(非PnPモード)DMAで動作(非PnPモード)CC6h BYTELHA-301
IFC-NN1.1033C93BSMIT/MIT/IO/DMA/データポート10.0MHz間違えない自動認識はあるベンダがNECでなければHは16bitCフラグで判別して4bitIFC-NN32GB/32bitDMAで動作(非PnPモード)DMAで動作(非PnPモード)CC6h BYTEIFC-NN
SC-98III1.03 未所持33C93BSMIT/IO/DMA/データポート間違えないベンダがNECでなければHは16bitCフラグで判別して4bitSC-98III8GB/24bitDMAで動作(非PnPモード)DMAで動作(非PnPモード)CC6h BYTESC-98III
PC-9801-100AIC6260PIO10.0MHz間違えないモードセンスの反応92型(割り算で取得)にパラメータ変更Hは16bitCフラグで判別して4bitPC-9801-1008GB/32bit100ボード用ドライバ存在100ボード用ドライバ存在1840h+16h*2 WORDPC-9801-100
1840h+18h*2 DWORDDWORDでの転送は特定機種で失敗することがありうる
壁ごえSCSI下の奴以外どれでもどれでも後から電源ONだと非同期間違わなくするできる関係ない考慮している壁ごえSCSI2TB/32bit大丈夫?要ドライバパッチで大丈夫壁ごえSCSI
LIF-40Z3NCR53C80詳細不明LIF-40Z3LIF-40Z3
ページ選択機能の有無がクリティカル
データポートでのIO転送はAH=1xhのAL=Cxhで呼び出されたときにしか使われない 通常のHDDへのBIOS読み書き(AL=20h,A0h相手)では未使用


33C93 8MHz 非同期転送のみ おそらくSCSIフェーズを一度にまとめた動作をできない
33C93A 10MHzで動作できるようになった SCSIフェーズをまとめた動作が可能になった(Int1BのAL=C0のときのAH=08とか09)
33C93B 20MHzで動作できるようになり同期転送も可能になった。
33C93C 存在するらしいが詳細不明
V30 IF-2771のみ ホストとして33C93Bをemulateしている。V30用のメモリがどこにあるかはわからない。(そこがCBUSを通してPC-98側から見えるかも不明)
同期転送可能なのだがDISCONNECTがうまく動かない というのが手もとのメモにはある OS標準ドライバでは厳しい。がバスマスタ動作が早い(Inspectの読み書き速度がXe10では4421kB/sで律速した)
AIC6260 Adaptecの標準動作をしてくれる石 DMA転送可能だがPC-98版では配線されていない模様
NCR53C80 SCSIが規格化されていった段階の石 非同期のみ CBUS用で使われていることはまずない

黄色のところはいわゆる1GB壁の原因 掛け算でミスをする。H:S=8:32のときは1GB壁
モードセンスで認識された場合はHの値とCの値に依る。SCSIEmulatorでしかありえないがC:H:S=4095:15:255の約8GBは大丈夫
しかしC:Hが4095:32などのややこしいことをすると計算間違えを起こす。

茶色のところはモードセンスで得た16bitCの上位4bitを別のフラグと混ぜてしまう、極めて危険
256B/Sの場合はたまたまCが16384から20479、32768から36863、49152から53247の間でだけは混ざらずに済みます。
512B/Sの場合は上記に加えてCが4096から8191、20480から24575、36864から40959、53247から57343の間で混ざらずに済みます。
16384を越えるCの方では16bitフラグもたまたま立ってしまいますが、どうせSENSEの返事では12bit値で返事をされてしまいます。たまたまを狙うのは危ないのでやめておきましょう。

赤色のところはIDE変換かごに入れた場合にモードセンスの返事がH:S=16:63となる場合でCが4095を越えると動作不可になる。容量で書くなら2015MiB未満のHDDなら大丈夫
ただしSMIT時期のものはIDE変換かごからモードセンスの返事をもらうことはNECベンダを返さないことからまずありえない。
SCSIEmulatorであえて変な数値を作り出した場合には起こりうる。
この場合は壁こえSCSIを動作させることすら不可能かもしれない。OSFDIPLWareなりでなんとかなりはしますが変なパラメータはやめましょう。

WindowsNTにSCSIディスクをつなぐと事実上H=8、S=32(128)を強制されるのだがSCSIEmulatorで自由にモードセンスが割り振れる時代になったので
その方法もじわじわ浸透してきたようです。
手もとではモードセンスのページ選択を無視することで古いものと判断してもらえるようになることがわかっています。
さらに各ページのサイズまで指定されています。現行規格とはページサイズの数値が違いますので注意。
モードセンスのCを4095以下で返事をしないと100ボードは容量からパラメータを取り直します。

SCSIEmulator作者さまにおかれましてはこのあたりの対応を考慮していただけるとPC-98ユーザーは助かるのかもしれません。
NTを除けば容量を少なくしておけばそうそうトラブルに遭いませんが。
モードセンスの返事にC<4095、H<15を意識してもらえるとSCSIを未だに捨てられないような98ユーザーは助かると思います。

この表を製作するにあたってはFreeBSDのCTLを使ってモードセンスパラメータを弄くり倒して反応を見るとともに逆アセンブルコードも読んでいます。
見たくない人の目に入らないように注意はしていますが、見てしまってもSCSIEmulatorでパラメータをいじくり回せば同じような結果は得られます。
注意して書いてはいますが誤記、勘違いがないとはいえません。どなたさまも参考にするのはかまいませんが、ご自身でも再確認してみてください。

同期速度の説明
1秒あたりの信号の送受信回数です。
NARROWの場合は8Bit、WIDEの場合は16Bitの転送を1回の信号で送りあえます。
のでNarrowの10.0MHzの場合は10MB/sが転送速度理論値ですが、実際はCDBを送ったり、LBA計算をしたり、各メッセージ送受信の手間がかかります(IDEに比してSCSI転送が面倒なのはここですがこれのおかげで様々なデバイスと通信できるメリットもあります)から理論値での転送はできません。
Ultra2のWIDEですと40.0MHzの信号がWIDEケーブルを通して通信しあうことで理論値としては80MB/sになりますが、実際は65MB/sくらいに落ち着きます。(PCIバスの理論値?)
石の周波数とは違います。そちらはSCSI石がCPUとして動くための周波数で実際にSCSIの仕事処理のスピードに関わります。SCSIフェーズの変更や各種IOの転送への反応速度になります。