キャッシュ内蔵 CD-ROMドライバ
--- 初めに ---
CDDEV.SYSが深いディレクトリに潜った時、遅くなるのが気になったので
"下位"互換ドライバを作ってみました。
--- 使い方 ---
CONFIG.SYSの中に
DEVICE = 〜\CDDRV.SYS /I<SCSI-ID> /B<BUFFER SIZE> [/Snum]
と書けばOkです。
/I でCD-ROMドライブのIDを指定します。デフォルトは 6 です。
/B でキャッシュするセクタ数を指定します。
1増える毎に2048+8バイト、メモリの消費量が増えます。
デフォルトは4セクタ分ですが、最低でも8以上にすることを薦めます。
(この4セクタというのはCDDEV.SYSと同じサイズです)
/S0 これがデフォルト。
DRVCTRLに対して "音楽用CD等の読めないCD(ROM)が入ってる時"、
未挿入、異常なディスクが入ってる、と答えるようにします。
/S1 これにすると、入ってない、という事にします。
/S0で勝手にCDがイジェクトされる場合等は、これを指定してみてください。
/S2 この時は、なんであろうと入ってさえいれば入ってるとします。
ファイラー等を使っていると白帯を拝むかもしれません。
--- 特徴 ---
電脳倶楽部のまねしてベンチマークしてみました。
計測技研のフリセレ2のtreeを取った結果
使用機種 ドライバ スイッチ
ECD-500 CDDEV.SYS 59秒98
CDDRV.SYS なし 37秒33
CDDRV.SYS /B64 25秒30
--- 注意 ---
どこら辺が"下位"なのかと言うと、
論理セクタ(ISO9660では1セクタを512,1024,2048バイトの中から選べる)が
2048のものしかアクセスできない。
メディアを交換した時などのエラー処理がてきとうなので不安定。
SCSI-IOCSがあらかじめ使えるようになってないといけない。
etc...
キャッシュ対象となるのは、ディレクトリとファイルアクセスした時の
中途半端な分(物理セクタ単位で扱えない分)のみです。
よってtreeやwhere,dir,cdなどは速くなりますが、
大きなファイルの読み込み、IOCSコールによるアクセス等は
CDDEV.SYSとなんら差は存在しません。
CD-DAはSCSI2対応機でのみ正常に動作します。
このソフトを作るにあたり、特殊デバイスドライバの制御について
参考にできるものがCDDEV.SYSしか存在しないため、
一部似かよったコードが存在するかもしれませんが、
CDDEV.SYSよりそのままコピーは1バイトたりともしていません。
ソフト名: | キャッシュ内蔵CD-ROMドライバ |
---|---|
動作OS: | X68000 |
機種: | PC-98 X68000 |
種類: | フリーソフト |
作者: | 山崎 淳 |