MS-DOSの標準デバイスドライバについて [PC98]
NEC PC-9800シリーズ用MS-DOS標準デバイスドライバについて。
○DOSにおけるデバイスドライバ
DOSにおいて「デバイスドライバ」はEMM386.EXEのようにDOSの機能を拡張するプログラムと、GRAPH.SYSやAVSDRV.SYSのように単にアプリケーションに関数(ライブラリ)を提供するだけのものがあります。
Windowsではハードウェアは完全にOS(Windows)の管理下にあり、デバイスドライバがないとハードウェアの機能を利用できません。しかしDOSにおける「デバイスドライバ」はWindowsのそれとは異なるもので、またアプリケーションがハードウェアを利用するのにデバイスドライバは必須ではありません。一つもデバイスドライバを組み込まなくても、基本的なDOSの機能は使えます。
○デバイスドライバを組み込む方法
デバイスドライバ機能はMS-DOS Ver.2.0以降でサポートされています。(もっとも現在MS-DOS Ver.1.25を使っている人なんていないと思いますが。)
MS-DOSのシステムがあるドライブのルートディレクトリにCONFIG.SYSというファイルがあるはずなので、それをEDLINコマンドやSEDITコマンド、VZ Editorなどのテキストエディターで開きます。そして「DEVICE=[デバイスドライバのファイルパス] [スイッチ...]」という記述を追加します。MS-DOS Ver.5.0以降の場合は「DEVICEHIGH=...」とすることで一部のデバイスドライバはUMBメモリに組み込むことができます。また、キャラクタ系デバイスドライバはADDDRVコマンドで後から組み込むこともできます。
PC98の場合はMS-DOS Ver.3.1よりCUSTOMコマンドが用意されており、メニュー選択・対話形式でより簡単にCONFIG.SYSを作成・編集できます。
○MS-DOS標準デバイスドライバについて
MS-DOS自体が既に20年以上前の製品なのでマニュアルを紛失したという方も多いでしょう。そこでPC98用MS-DOS Ver.5.0で標準で添付されているデバイスドライバとサポートするスイッチについて解説します。
なお、標準で添付されているデバイスドライバや使えるスイッチはMS-DOSのバージョンによって異なります。例えば、PRINT.SYSの機能はVer.3.1以前ではMS-DOS(IO.SYS)に統合されていました。EMM386.EXEはVer.3.3/3.3AではEMSDRIVE.SYS、Ver.3.3B/3.3CではEMM386.SYSというファイルでした。
上でも説明したとおり、デバイスドライバにはDOSの機能を拡張するプログラムと、単にアプリケーションに関数(ライブラリ)を提供するだけでそれ自身は動かないものがあります。また、DEVICEHIGHコマンドでUMBメモリに上げることができるものとそうでないもの、EMSが存在すれば一部の機能をEMSメモリに移してコンベンショナルメモリの常駐量を減らすことができるものがあります。
MS-DOSで使えるメモリは拡張メモリを除けば640KBしかありません。なので必要最低限のデバイスドライバだけを組み込み、できる限りUMBメモリやEMSメモリを使うように設定を工夫しないと、空きメモリ不足でアプリケーションが起動できなくなることがあります。
○CONFIG.SYSで組み込むデバイスドライバ
AVGDRV.SYS | |
機能 | 拡張グラフィックドライバを組み込む |
対象製品 | 日本語MS-DOS Ver.5.0A-H, 6.2 |
書式 | DEVICE=[パス]AVGDRV.SYS [/E] [/C] [/S] |
/E | ドライバの一部をEMSメモリに読み込む。 |
/C | 数値演算プロセッサを使用し、描画を高速にする。 |
/S | 描画系の機能を切り離し、設定系の機能のみを組み込む。 |
補足 | PC-9821シリーズの256色グラフィック機能に対応するライブラリ。 組み込んでも単体では何も処理をしない。対応するアプリケーションが必要。 利用可能なライブラリ関数についてはプログラマーズリファレンス(マニュアル)を参照。 |
AVSDRV.SYS | |
機能 | 拡張サウンドドライバを組み込む |
対象製品 | 日本語MS-DOS Ver.5.0A-H, 6.2 |
書式 | DEVICE=[パス]AVSDRV [/E] [/F] [/P] |
/E | ドライバの一部をEMSメモリに読み込む。 |
/F | FM音源ドライバ部分のみ常駐 |
/P | PCM音源ドライバ部分のみ常駐。 |
補足 | PC-9801-73相当のPCM・FM音源に対応するライブラリ。 組み込んでも単体では何も処理をしない。対応するアプリケーションが必要。 利用可能なライブラリ関数についてはプログラマーズリファレンス(マニュアル)を参照。 |
EMM.SYS | |
機能 | 拡張メモリ(プロテクトメモリ)、EMS増設メモリをEMSメモリとして使用するためのデバイスドライバ |
対象製品 | 日本語MS-DOS Ver.3.3B - 6.2、日本語MS-Windows 2.x |
書式 | DEVICE=[パス]EMM.SYS [/P=n] [/F=adr] [/H=h] |
/P=n | 拡張メモリに割り当てる論理ページ数を指定する。既定値は使用できる最大論理ページ数。 |
/F=adr | 使用するページフレームのアドレスを指定する。 B000でソフトウェアエミュレーション方式、C000でハードウェアバンク切り替え方式を利用。 C000はPC-9801-53/54実装時のみ指定可。IO-DATAやBuffalo製のEMSボードは利用不可。 |
/H=h | 使用するEMMハンドル数を指定する。既定値は64。 |
補足 | 他社製のEMSボードは各メーカーが提供するドライバを使用する必要がある。 80386以上のCPUかつプロテクトメモリを搭載する機種では代わりにEMM386を使用したほうがよい。 |
EMM386.EXE | |
機能 | 拡張メモリを使ってEMSメモリをエミュレートするデバイスドライバ |
対象製品 | 日本語MS-DOS Ver.5.0 - 6.2、日本語MS-Windows 3.0 - |
書式 | DEVICE=[パス]EMM386.EXE [/M=m | /P=n] [/F=saddr [-eaddr | [/D] | [/U] [/UMB] [/NOEMS] [/E=saddr-eaddr] [/EN=saddr-eaddr] [/EH=saddr-eaddr] [/T=[パス]EXTDSWAP.SYS] |
/M=m | 拡張メモリに割り当てるEMSメモリの総量を指定する。 |
/P=n | 拡張メモリに割り当てる論理ページ数を指定する。既定値は使用できる最大論理ページ数。 |
/F=saddr-eaddr | 物理ページのページフレームの範囲を指定する。 |
/D | 物理ページのページフレームをC0000h-C7FFFFhに指定。 |
/U | 物理ページのページフレームをC8000h-CFFFFFhに指定。 |
/UMB | UMBを使用可能にする。 |
/NOEMS | EMS機能を使用せずUMBのみを使用可能にする。 |
/E=saddr-eaddr | 拡張ROMとして使用されていてUMBとして使用できないメモリアドレスの範囲を指定する。 |
/EN=saddr-eaddr | ノーマルモード時にUMBとして使用できないメモリアドレスの範囲を指定する。 |
/EH=saddr-eaddr | ハイレゾモード時にUMBとして使用できないメモリアドレスの範囲を指定する。 |
/T=EXDSWAP.SYS | DOSシェルで拡張タスクスワップ機能を使う場合に指定する。 |
FONT.SYS | |
機能 | 文字フォントを拡大縮小板パターンデータを作成/取得するキャラクタ系デバイスドライバ |
対象製品 | 日本語MS-DOS Ver.3.3B - 6.2 |
書式 | DEVICE=[パス]FONT.SYS [/M(ヨコ,タテ)] [/E] |
/M(ヨコ,タテ) | CG ROMや漢字ROMから供給される文字フォントのボディフェイスサイズの最大値を指定。既定値は40x40。 |
/E | ストロークCGフォント使用時にドライバの一部をEMSメモリに追い出す。 |
補足 | PC98のユーザー定義文字機能に対応するライブラリ。 組み込んでも単体では何も処理をしない。対応するアプリケーションが必要。 利用可能なライブラリ関数についてはプログラマーズリファレンス(マニュアル)を参照。 |
GRAPH.SYS | |
機能 | 16色同時発色グラフィックの基本的な描画機能を提供するキャラクタ系デバイスドライバ |
対象製品 | 日本語MS-DOS Ver.3.3 - 6.2 |
書式 | DEVICE=[パス]GRAPH.SYS [/F=GRP_H98.LIB [/E]] |
/F=GRP_H98.LIB | PC-H98シリーズでGRAPH.SYSを利用する場合に指定する。 |
/E | ドライバの一部をEMSメモリに読み込む。PC-H98シリーズでのみ指定可能。 |
補足 | PC98の内蔵グラフィック機能に対応するライブラリ。 組み込んでも単体では何も処理をしない。対応するアプリケーションが必要。 利用可能なライブラリ関数についてはプログラマーズリファレンス(マニュアル)を参照。 |
HIMEM.SYS | |
機能 | 拡張メモリ(プロテクトメモリ)の使用を管理する |
対象製品 | 日本語MS-DOS Ver.5.0 - 6.2、日本語MS-Windows 2.0 - |
書式 | DEVICE=[パス]HIMEM.SYS [/HMAMIN=n] [/NUMHANDLES=n] |
/HMAMIN=m | HMAの使用領域のサイズmをキロバイト単位で指定。 |
/NUMHANDLES=n | EMB上でのハンドル数の最大値を指定。既定値は32。 |
HRTIMER.SYS | |
機能 | 100分の1秒単位の時刻情報を得ることができるキャラクタデバイスドライバ |
対象製品 | MS-DOS Ver.6.2(一部のプリインストールモデル) |
書式 | DEVICE=[パス]HRTIMER.SYS |
補足 | 不具合を起こしやすいドライバなので必要時以外は組み込まないほうがよい。 |
KKCFUNC.SYS | |
機能 | かな漢字変換システム制御ファンクションをサポートするキャラクタ系デバイスドライバ |
対象製品 | 日本語MS-DOS Ver.5.0 - 6.2 |
書式 | DEVICE=[パス]KKCFUNC.SYS |
補足 | CONFIG.SYS中ではかな漢字変換ドライバより先に組み込む必要がある。 MS-DOSに付属のNECAIかな漢字変換、松茸 Ver.3.7以降、VJE-β Ver.3.0以降などで対応。 古いかな漢字変換システムを使用する場合は代わりにKKCSAV.SYSを組み込む。 |
KKCSAV.SYS | |
機能 | MS-DOS Ver.5.0以降に未対応のかな漢字変換システムをサポートするためのデバイスドライバ |
対象製品 | 日本語MS-DOS Ver.5.0 - 6.2 |
書式 | DEVICE=[パス]KKCFUNC.SYS |
MOUSE.SYS | |
機能 | マウス機能を提供するキャラクタ系デバイスドライバ |
対象製品 | MS-DOS Ver.2.0 - 6.2 |
書式 | DEVICE=[パス]MOUSE.SYS [/I:割り込みベクタ番号] |
/I:割り込みベクタ番号 | マウスインタフェースで使用するハードウェア割り込みがINT 06h以外に指定する。 |
NECAIK1.DRV | |
機能 | NEC AI かな漢字変換システムのデバイスドライバ。 |
対象製品 | 日本語MS-DOS Ver.3.3 - 6.2 |
書式 | DEVICE=[パス]NECAIK1.DRV [/F=filepath] [/H] [/J] [P=m n | M] [/W] |
/F=filepath | NECAIKEYコマンドで作成した日本語キーファイル名を指定する。 |
/H | 句読点変換をしないようにする。 |
/J | コード入力変換を連続して行う。 |
/Pm n | M | mに読みがなの色、nに変換文字の色を数字で指定する。 1=赤、2=青、3=緑、4=水色、5=黄、6=紫、7=白、M=モノクロ表示。 |
/W | 単語登録を連続して行えるようにする。 |
補足 | 必ずKKCFUNC.SYS、NECAIK1.DRV、NECAIK2.DRVの順にセットで組み込む。 EMSが存在する場合はドライバの一部をEMSメモリに自動で読み込む。 |
NECAIK2.DRV | |
機能 | NEC AI かな漢字変換システムのデバイスドライバ。 |
対象製品 | 日本語MS-DOS Ver.3.3 - 6.2 |
書式 | DEVICE=[パス]NECAIK2.DRV [/T] [/R] 辞書ファイル名 |
/T | AIかな漢字変換を使用しないように設定する。 |
/R | 連文節変換モードに設定する。省略すると逐次変換モードになる。 |
辞書ファイル名 | NECAI用の辞書ファイル(NECAI.SYS)のパスを指定する。 |
NECCD.SYS | |
機能 | CD-ROM装置を制御するデバイスドライバ |
対象製品 | MS-DOS CD-ROM Extensions, 日本語MS-DOS Ver.5.0A-H, 6.2 |
書式 | DEVICE=[パス]NECCD.SYS /D:drvname |
/L:drvname | ドライブ名を指定する。後にMSCDEXを起動する際に同じ文字列を指定する。 |
補足 | CDドライブ非搭載機で別にCDドライブを購入した場合は、それに付属するドライバを用いるのが基本。 ただしNEC純正の外付けCDドライブは別売のMS-DOS CD-ROM Extensionsが必要になる場合がある。 CDドライブ内蔵かつMS-DOSプリインストール機の場合は既に必要なファイルはインストールされている。 PC98内蔵CDドライブのドライバは複数の種類が存在するが、インストール時に適切なドライバが選ばれ、 ファイル名はNECCD.SYSに統一されるため、通常は種類を気にする必要は無い。 NEC純正CDドライブのMS-DOS用ドライバの種類と機種対応についてはこちらを参照。 |
POWER.EXE | |
機能 | アプリケーションやデバイスが待機状態にあるときに消費電力を低減させるデバイスドライバ。 |
対象製品 | MS-DOS Ver.6.2(一部のプリインストールモデル) |
書式 | DEVICE=[パス]POWER.EXE [ADV[:MAX|REG|MIN]|STD|OFF] [/LOW] |
ADV:MAX | 最大限に節電を行う。 |
ADV:REG | 節電とアプリケーションの処理速度のバランスを取る。 |
ADV:MIN | アプリケーションの処理速度を優先する。 |
ADV | ADV:REGと同等。 |
STD | 本体内蔵の省電力機能だけを使う。 |
OFF | 電力管理機能をオフにする。 |
/LOW | UMBが使用可能であってもPOWER.EXEをコンベンショナルメモリに読み込む。 |
PRINT.SYS | |
機能 | プリンタ出力をサポートするキャラクタ系デバイスドライバ |
対象製品 | 日本語MS-DOS Ver.3.1 - 6.2 |
書式 | DEVICE=[パス]PRINT.SYS [/U|/UL] [/P] [/F] |
/U|/UL | PC-PR201系のプリンタでユーザー定義文字(外字)を印字するときに指定する。 /Uを指定すると84字、/UFを指定すると188字までの外字をサポートする。 |
/P1 | 漢字文字幅の制御コードを出力しない。 |
/F | フルセントロニクス仕様のプリンタインタフェースをもつ機種で指定する。 |
補足 | MS-DOS Ver.3.1(PS98-129)以前ではMS-DOSのシステムに統合されていた。 |
RAMDRIVE.SYS | |
機能 | 拡張メモリまたはコンベンショナルメモリの一部をRAMDISKとして利用するデバイスドライバ |
対象製品 | 日本語MS-Windows Ver.3.0 - |
書式 | DEVICE=[パス]RAMDRIVE.SYS [容量] [論理セクタ長] [ファイル数] [/M|/E] |
スイッチ | RAMDISK.SYSと同じ。 |
補足 | 中身はRAMDISK.SYSと同じだが、Windows付属のドライバはファイル名だけが違う。 ちなみにIBM互換機のDOSに同名のデバイスドライバがあるがスイッチが異なり、 既定でコンベンショナルメモリ、/EでXMSメモリ、/AでEMSメモリを確保する。DOS/Vも同様。 |
RAMDISK.SYS | |
機能 | 拡張メモリまたはコンベンショナルメモリの一部をRAMDISKとして利用するデバイスドライバ |
対象製品 | 日本語MS-DOS Ver.3.1 - 6.2 |
書式 | DEVICE=[パス]RAMDISK.SYS [容量] [論理セクタ長] [ファイル数] [/M|/E] |
容量 | RAMDRIVEとして確保する容量。 |
論理セクタ長 | RAMDISKの論理セクタ長を512または1024で指定。既定値は1024。 |
ファイル数 | ルートディレクトリに作成できるファイル数。128-1024で指定。省略すると容量に応じて自動で設定。 |
/M|/E | /Mを指定するとRAMDISKをコンベンショナルメモリから確保する。 /Eを指定するとEMSメモリから確保する。 スイッチを省略するとHIMEM.SYSを経由せず直接プロテクトメモリから確保する。 |
補足 | PC98版DOSのRAMDISKドライバはIBM互換機のDOSとはファイル名やスイッチが異なる。 IBM互換機ではDOS4.0までVDISK.SYS、DOS5.0以降がRAMDRIVE.SYSという名前だった。 |
RSDRV.SYS | |
機能 | RS-232Cインタフェースに関する機能を提供するキャラクタ系デバイスドライバ |
対象製品 | 日本語MS-DOS Ver.3.1 - 6.2 |
書式 | DEVICE=[パス]RSDRV.SYS |
補足 | COPYAコマンドでシリアルインターフェースを通じてファイル転送を行う場合に必要。 |
SETVER.EXE | |
機能 | バージョンテーブルをメモリに読み込む。 |
対象製品 | 日本語MS-DOS Ver.5.0 - 6.2 |
書式 | DEVICE=[パス]SETVER.EXE |
補足 | バージョンテーブルの設定はSETVERコマンドで行う。 |
SMARTDRV.EXE | |
機能 | SMARTDRV.EXEデバイスドライバを読み込み、ダブルバッファを実行する |
対象製品 | 日本語MS-DOS Ver.5.0A-H, 6.2 |
書式 | DEVICE=[パス]SMARTDRV.EXE /DOUBLE_BUFFER |
補足 | 普通にSMARTDRVを実行していてSCSI接続のハードディスクで問題が生じたときに、 ダブルバッファ機能を有効にしてSMARTDRVを組み込むと問題を回避できる場合がある。 ちなみに普通にSMARTDRVを組み込む場合はAUTOEXEC.BATで実行するかINSTALL文を使用する。 |
SMARTDRV.SYS | |
機能 | 固定ディスクキャッシュドライバ(SMARTDrive) |
対象製品 | 日本語MS-DOS Ver.5.0 - 5.0A-H |
書式 | DEVICE=[パス]SMARTDRV.SYS [標準キャッシュサイズ [最小キャッシュサイズ]] [/E] |
標準キャッシュサイズ | ディスクキャッシュの標準サイズを指定。既定値は256。 |
最小キャッシュサイズ | ディスクキャッシュの最小サイズを指定。既定値は0。 他のプログラムがEMSやXMSメモリを必要としたときはキャッシュがこの設定値まで減らされる。 |
/E | ディスクキャッシュにEMSメモリを使用する。省略時はXMSメモリを使用。 |
補足 | Windowsを利用する場合はWindows付属のSMARTDRV.EXEを利用する。 |
VFDDRV.EXE | |
機能 | 仮想FDドライブ機能を有効にする。 |
対象製品 | 日本語MS-DOS Ver.5.0A-H(一部の機種にプリインストールされたMS-DOS) |
書式 | DEVICE=[パス]VFDDRV.EXE |
補足 | 仮想FDドライブ起動ディスクの作成にはVRAMDコマンドを利用する。 |
○AUTOEXEC.BATで組み込むプログラム
一応、常駐プログラムではあるものの、デバイスドライバと同じような機能をもつプログラムを挙げています。これらはAUTOEXEC.BATに記述するか、コマンドライン上で実行します。
MSCDEX.EXE | |
機能 | CD-ROMドライブへのアクセスを可能にする。 |
対象製品 | MS-DOS CD-ROM Extensions, 日本語MS-DOS Ver.5.0A-H, 6.2 |
書式 | MSCDEX [/E/K/S/V] /D:drvname1 [/D:drvname2...] [/L:letter] [/M:n] |
/E | EMSメモリを使ってセクタバッファを格納する。 |
/K | 漢字で書かれたCD-ROMボリュームがMS-DOSに認識されるように指定する。 |
/S | MS-NETまたはWindows for Workgroupsサーバ上でCDドライブを共有できるようにする。 |
/V | 組み込み時にメモリの使用状況を表示する。 |
/D:drvname | CD-ROMデバイスドライバのドライブ名を指定する。 |
/L:letter | 先頭のCDドライブに割り当てるドライブ名を指定する。 |
/M:n | セクタバッファの数を指定する。 |
補足 | あらかじめCONFIG.SYSでNECCD.SYSなどのデバイスドライバを指定する必要がある。 |
SMARTDRV.EXE | |
機能 | 固定ディスクキャッシュドライバ(SMARTDrive) |
対象製品 | MS-DOS Ver.6.2, Windows Ver.3.1以前 |
書式 | SMARTDRV [/X] [[ドライブ[+|-]]...] [/U] [/C|/R] [/F|/N] [/L] [/V|/Q|/S] [初期キャッシュサイズ [Winキャッシュサイズ]] [/E:基本サイズ] [/B:バッファサイズ] |
/X | すべてのドライブで書き込みキャッシュを行えないようにする。 |
ドライブ[+|-] | キャッシュ制御を行うディスクドライブを指定する。 +を付けると読み書きキャッシュ有効。-を付けると読み書きキャッシュを無効。 何も付けないと読み込みのみキャッシュを有効にする。 |
/U | CDドライブが接続されていてもCDドライブのキャッシュを行わないようにする。 |
/C | 全てのキャッシュ情報をメモリからディスクへ書き戻す。 |
/R | 書き込みキャッシュを含めキャッシュの内容を消去してSMARTDriveを再起動する。 |
/F | 各コマンドの実行が完了した後でキャッシュのデータを書き込む。既定値で設定される。 |
/N | システムが待機状態になっているとき、キャッシュのデータを書き込む。 |
/L | UMBが使用可能な場合でもSMARTDriveをUMBにロードしない。 |
/V | SMARTDrive起動時にステータス・エラーメッセージを表示させる。 |
/Q | SMARTDrive起動時にステータスメッセージを表示させないようにする。 |
/S | SMARTDriveの実行状態について追加情報を表示する。 |
初期キャッシュサイズ | SMARTDrive起動時のキャッシュサイズを指定。既定では使用可能なメモリ量によって自動設定。 |
Winキャッシュサイズ | Windows起動時にどれだけキャッシュサイズを小さくするかを指定。 |
/E:基本サイズ | 一度に移動するキャッシュの容量を1024,2048,4096,8192で指定。既定値は8192。 |
/B:バッファサイズ | 先読みバッファの容量を指定する。既定値は16384。 |