CONFIG.SYSとAUTOEXEC.BAT(詳細)


1.MS−DOS起動時のメニュー選択機能

 Ver6.2以降からMS−DOS起動時のメニュー選択機能が追加されました。これまでのMS−DOSのバージョンでは、CONFIG.SYSとAUTOEXEC.BATを記述することにより、あらかじめ設定したシステム環境となるようMS−DOSを起動することができました。しかし、MS−DOSで色々なアプリケーション・プログラムを使用する場合、それぞれのアプリケーション・プログラム毎にMS−DOS環境が大きく異なる(メインメモリ利用方法、日本語・英語モード、ネットワーク・CD−ROMの登録等)ことがあり、環境を切り替えた方が使い易い場合があります。このような場合、便利なのがこのメニュー選択機能です。
 メニュー選択機能を利用するとMS−DOSシステムに登録するデバイス・ドライバおよび環境変数の追加・変更が比較的容易に可能(あらかじめ記述する必要はありますが)となり、ワープロ、ゲーム、テスト等使用するアプリケーション・プログラム毎に適した環境でMS−DOSを起動することができます。
 以下にその記述概要を述べます。

●CONFIG.SYSの設定

   [MENU]              ;メニュー選択することを宣言する。
   MENUITEM=LABEL_1,日本語モード   ;メニュー一覧を記述。MENUITEM=に続きラベル名、カンマ(,)、
                    ;選択画面で表示する文字列を記述する。
   MENUITEM=LABEL_2,英語モード    ;※以下同様
    ・               ;※環境変数CONFIG に選択したラベル名が設定される。
    ・               ; LABEL_1を選択した場合、SET CONFIG=LABEL_1 と同等
   MENUITEM=LABEL_n, バイパスモード

   [COMMON]             ;共通で実行する処理(設定)をここですることを宣言する。
    処理A             ;メニュー選択に関係なく実行する処理(設定)を記述する。
                    ;※[COMMON]は記述位置(行)順で処理される。[LABEL_1]と
                    ; [LABEL_2]間にある場合その順で処理→前処理と後処理
   [LABEL_1]             ;LABEL_1の処理(設定)をここですることを宣言する。
    処理1             ;LABEL_1を選択したとき実行する処理(設定)を記述する。
   [LABEL_2]             ;※以下同様
    処理2
    ・
    ・
   [LABEL_n]
    処理n

   [COMMON]
    処理B

●AUTOEXEC.BATの設定

    処理C             ;共通の処理があれば記述する。

   GOTO %CONFIG%           ;ラベル %CONFIG% (選択したラベル名)へ処理を移す。

   :LABEL_1             ;ラベルLABEL_1 の定義
    処理1             ;LABEL_1を選択したとき実行する処理を記述する。
   GOTO PASS1            ;LABEL_2以降を実行しないよう処理を移す。
   :LABEL_2             ;※以下同様
    処理2
   GOTO PASS1
    ・
    ・
   :LABEL_n
    処理n

   :PASS1
    処理D             ;共通の処理があれば記述する。
   ECHO 終了

●記述例

 数種類のコンピュータを対象に、1枚のFDでCD−ROMが使えるようMS−DOSを起動する場合の記述例

----- CONFIG.SYS の内容 -----

[menu]
MENUITEM=ADPT, ADAPTEC Series SCSI CD-ROM
MENUITEM=ASUS, ASUS SC-200 SCSI CD-ROM
MENUITEM=DTCT, DTCT-3194 SCSI CD-ROM
MENUITEM=HITA, ASPI(Hitachi) CD-ROM
MENUITEM=IMES, ASPI(Imescd) CD-ROM
MENUITEM=IFCU, IFC-USP-M2 SCSI CD-ROM
MENUITEM=RSRV, (reserved)
REM MENUCOLOR=15,1
MENUDEFAULT=ADPT
NUMLOCK=ON

[common]
DOS=HIGH,UMB
LASTDRIVE=Z
DEVICE=\HIMEM.SYS
DEVICE=\EMM386.EXE RAM X=A000-BFFF I=E800-EFFF
DEVICEHIGH=\SETVER.EXE

[ASUS]
DEVICE=\PCI200\aspi8xx.sys
DEVICE=\PCI200\symcd.sys /D:SYM001
DEVICE=\PCI200\symdisk.sys

[ADPT]
DEVICE=\SCSI\ASPI2DOS.SYS /D /Z /Q11
DEVICE=\SCSI\ASPIDISK.SYS /D
DEVICE=\SCSI\ASPICD.SYS /D:ASPICD0

[DTCT]
DEVICE=\DTCT3194\ASPI3194.SYS /L
DEVICE=\DTCT3194\DMXCD.SYS /D:DMXCD01

[HITA]
DEVICE=\HIT-IDE.SYS /N:1 /D:MSCD012

[IMES]
DEVICE=IMES_CD.SYS /D:IMESCD01

[IFCU]
DEVICE=\IFCUSPM2\MASPI.SYS
DEVICE=\IFCUSPM2\MELCDU.EXE /D:MELCDU01

[RSRV]
BREAK ON

[common]
rem DEVICE=\EMM386.EXE RAM X=A000-BFFF I=E800-EFFF
rem DEVICEHIGH=\SETVER.EXE
DEVICEHIGH=\BILING.SYS
DEVICEHIGH=\JFONT.SYS /P=\
DEVICEHIGH=\JDISP.SYS
DEVICEHIGH=\JKEYB.SYS /106 \JKEYBRD.SYS
DEVICEHIGH=\ANSI.SYS
DEVICEHIGH=\KKCFUNC.SYS

----- AUTOEXEC.BAT の内容 -----

PROMPT $p$g
LH \NLSFUNC.EXE COUNTRY.SYS

GOTO %CONFIG%
:ASUS
rem [ASUS]
LH \MSCDEX.EXE /D:SYM001 /E /M:12
GOTO P1
:ADPT
rem [ADPT]
LH \MSCDEX.EXE /D:ASPICD0 /E /M:12
GOTO P1
:DTCT
rem [DTCT]
LH \MSCDEX.EXE /D:DMXCD01 /E /M:12
GOTO P1
:HITA
rem [HITA]
LH \MSCDEX.EXE /D:MSCD012 /E /M:12
GOTO P1
:IMES
rem [IMES]
LH \MSCDEX.EXE /D:IMESCD01 /E /M:12
GOTO P1
:IFCU
rem [IFCU]
LH \MSCDEX.EXE /D:MELCDU01 /E /M:12
GOTO P1

[RSRV]
rem GOTO P1

:P1
CHEV JP

2.メモリ利用方法の設定

(1)CPUの種類とMS−DOSが扱えるメモリ

 x86用CPUは8086・80186、80286、80386以降(80486、Pentium等含む)でメモリ領域の使い勝手が大きく異なります。まず、CPU種類で、MS−DOSが扱うことができるメモリ範囲について簡単に述べます。
 表1のとおり、CPUの種類でMS−DOSが扱えるメモリ範囲が異なります。(CPUが扱えるメモリ範囲に依存)

表1 MS−DOSが扱えるメモリ範囲

Memory Address / CPU

8086-80186

80286

80386以降*1

備考

----------------
$00000000
 〜
$0009FFFF(640KB)
$000A0000
 〜
$000FFFFF(1MB)
----------------
$00100000
 〜
$00FFFFFF(16MB)
----------------
$01000000
 〜
$FFFFFFFF(4GB)
----------------
--------------

システム領域*2

Video-RAM,
BIOS等ROM

--------------
拡張メモリ
領域
(その1)
--------------
拡張メモリ
領域
(その2)
--------------

------------






------------



------------



------------

------------






------------



------------



------------

------------






------------



------------



------------

------------
MS-DOSが通常
プログラムの
実行に割り当
てるメモリ領


------------
MS-DOSはEMS,
XMS(拡張領域)
として利用
------------
同上


------------

  80286以降
Real
-mode
Only Protect
-mode
Only Protect
-mode
 
記号の説明  ■:扱える(CPUがアクセスできる)メモリ
*1:80386,80486,Pentium,PentiumII,III,4,Celeron等
*2:コンベンショナル・メモリとも言う

MS−DOSでは、
 @プログラム(BIOSを含む)が実行できるメモリ (メモリアドレス $00000000〜$000FFFFF の部分、システム領域)
 Aプログラムが必要なときに随時呼び出される補助記憶的なメモリ (同 $00100000〜$FFFFFFFF、拡張メモリ領域)*3
  (ハードディスク的に使われる一時記憶メモリとして高速動作が期待でき、多くのプログラムがる)
の2種類の方法で使うことができます。@はこれまでの8086CPUと同じ使い方、Aは主にデータの格納場所やディスク・キャッシュとして使われます。(多くのプログラムがそのように使っている)

*3:厳密にはプログラムが実行できる。

なお、MS−DOSでAのメモリを使う場合はCONFIG.SYSでドライバを登録する必要があます。HIMEM.SYS(拡張メモリのアクセス管理を行うドライバ)と、EMM386.EXE(拡張メモリを簡単に扱えるよう、俗に言うEMSを使えるようにするドライバ)がこれに該当します。
CONFIG.SYSの冒頭で、

 DEVICE=HIMEM.SYS   (ルートディレクトリにある場合)
 DEVICE=EMM386.EXE  ( 同 )
と記述すればOKです。(MS−DOSのバージョン5.0以降が対応、それ以前のMS−DOSは@のシステム領域のみ使用可)
 これによりEMSを使用することができるプログラム(日本語FEP、ディスクキャッシュ、DISKCOPY等のMS−DOSコマンドの一部など)では、その動作が速くなったり、大きなデータを扱えるなどの効果があります。

(2)システム領域(コンベンショナル・メモリ)を広くする

 MS−DOSのバージョンが5.0以降でCPUが80286以降の場合は、640KB以降の一部のメモリ領域と拡張メモリ領域(その1)をMS−DOSシステム(一部)の領域として使用することができます。
CONFIG.SYSで、

 DOS=HIGH      ;拡張メモリ領域(その1)を使用する。80286CPU以降で有効
 DOS=UMB       ;Video-RAM,BIOS等ROM領域で使用していないメモリ領域を使用する。
                80386CPU以降で有効
 DOS=HIGH,UMB  ;HIGHおよびUMBの両方を使用する。80386CPU以降で有効
のいずれかを記述し、
 DEVICE=HIMEM.SYS ;HIGHまたはUMB指定時に必要(ルートディレクトリにある場合)
 DEVICE=EMM386.EXE RAM ;UMB指定時に必要( 同 )
のドライバを登録すればOKです。(COMMAND.COMの一部やデバイス・ドライバがこの領域に移る。但しデバイス・ドライバはUMBのみ)
 これによりシステム領域を50〜60KB広くすることができます。

*:HIGH=High Memory($0010000〜$001FFFFF)、UMB=Upper Memory Block($000A0000〜$000FFFFF)

●記述例その1(CPUが8086、80186の場合)

 記述しても機能しない(起動はできる)

●記述例その2(CPUが80286の場合)

----- CONFIG.SYS の内容 -----

DOS=HIGH
DEVICE=HIMEM.SYS

●記述例その3(CPUが80386以降の場合)

----- CONFIG.SYS の内容 -----

DOS=HIGH,UMB
DEVICE=HIMEM.SYS
DEVICE=EMM386.EXE RAM

●UMBの使用について
 80386以降のCPUで追加されたメモリ管理機能を活用し、使用していないメモリ・アドレス空間に拡張メモリ(RAM)を割り当てるもので、使用していないメモリ・アドレスが通常のRAMとして使用することができます。コンピュータ仕様でVideoRAM領域、LAN等拡張カード(ボード)用として予約されているが使用されていないメモリ・アドレス空間、また、BASIC ROM領域としてメモリ・アドレスが使われているがBASICを使用しない限り不要となるメモリ・アドレス空間などを拡張メモリに割り当てることができます。どのメモリ・アドレス空間が割り当て可能か(空いているか、普段使用しないか)についてはコンピュータ仕様に詳しい必要がありますが、EMM386.EXEにRAMオプションをつければある程度自動的に割り当ててくれます。(手動で指定することもできます)
 DEVICE=EMM386.EXE RAM

3.日本語環境

(1)画面表示

 現在、最も使用されているコンピュータは、DOS/V(PC/AT互換機)コンピュータですが、このコンピュータはその歴史から元々英語圏用のハードウェア構成となっているため、英語の画面表示は得意(ハードウェア処理)ですが、日本語を画面表示する場合はデバイス・ドライバを登録(ソフトウェア処理)する必要があります。
 日本語表示のデバイス・ドライバはMS−DOSとPC−DOSでドライバ名(ファイル名)が異なります。

●MS−DOSの場合

 DEVICE=BILING.SYS      ;英語&日本語表示のサポート
 DEVICE=JFONT.SYS /P=¥  ;表示フォントの指定
                        ;/P=は表示フォントファイルのパスを指定
 DEVICE=JDISP.SYS       ;JFONTの表示

●PC−DOSの場合

 COUNTRY=081,932,C:¥COUNTRY.SYS  ;日本語環境の指定
 DEVICE=$FONT.SYS /P=¥  ;表示フォントの指定
                        ;/P=は表示フォントのパスを指定
 DEVICE=$DISP.SYS       ;$FONTの表示

 なお、PC−9800Seriesは日本市場用に開発されたため当初から日本語環境にカスタマイズされたコンピュータ仕様であり、日本語表示用フォントROMを内蔵、画面への日本語表示はCPUを経由せずにハードウェアで処理しています。このため、日本語表示用デバイス・ドライバの登録が不要です。(日本語の表示速度はDOS/Vと比較し早い)

(2)キーボード配列

 キーボードには英語用キーボードとひらがなが記載されている日本語用キーボードなどがありますが、英数字以外の文字配置が異なっています。(例:!や”、@などの記号)
 ローマ字で日本語を入力する場合、どちらのキーボードでも入力は可能ですが、記号等の入力に苦労するので通常はキーボード配列をそのキーボードに合ったものにするためドライバを登録します。

●MS−DOSの場合

 DEVICE=JKEYB.SYS /106 ¥JKEYBRD.SYS
 DEVICE=ANSI.SYS        ;日本語キーボード配列の指定

●PC−DOSの場合

 DEVICE=ANSI.SYS
※以下AUTOEXEC.BAT内
 KEYB.COM JP,932,KEYBOARD.SYS ;日本語キーボード配列の指定

 なお、PC−9800Seriesは(1)と同様にデバイス・ドライバの登録は不要です。

(3)日本語入力デバイス

 ひらがな、カタカナや漢字などの全角(2バイト)文字の入力には日本語入力デバイスを登録します。デバイスはローマ字変換や漢字辞書の読み込み、文節の解析、同音意義語の解釈、学習登録などを行います。
 日本語入力(全角)モードのON/OFFはAlt(*1)キーを押しながら半角/全角キーを押します。ひらがなを漢字に変換する場合はスペースキーまたは変換キーを押し、よければReturn(ENTER)キーを押して確定させます。
 日本語入力デバイスは日本語入力FEP(フロント−エンド−プロセッサ)と呼ばれており、ATOKやWXなど漢字変換率の高いものが販売されています。

*1:PC−9800Seriesの場合GRPHキー

●MS−DOSの場合

 DEVICE=MSIMEK.SYS /A1
 DEVICE=MSIME.SYS /D*MSIMER.DIC /DMSIME.DIC /C1 /N /A1

●PC−DOSの場合

 DEVICE=$IAS.SYS
 DEVICE=IBMMKKV.EXE /M=S /Z=4 /C /L /J=90 /S=MULTDICT.PRO /U=$USRDICT.DCT

●PC−9800Seriesの場合

 (未調査)

4.その他

(1)CONFIG.SYS

 MS−DOSはシステムを容易に変更・追加可能なよう「デバイス・ドライバの登録」が準備されており、通常は各種デバイス・ドライバをCONFIG.SYSの中で登録するのが普通です。このデバイス・ドライバの種類には基本動作の性質(MS−DOS内部の処理方法の違い)からキャラクタ・デバイスとブロック・デバイスの2種類に大別されます。

○キャラクタ・デバイス
 補助入出力装置用に準備されたもので、マウス、タブレット等、MS−DOSでは標準機能でサポートされていない補助入出力装置の登録や補助入出力装置の仕様変更に適しています。MOUSE.SYS(マウス)、ANSI.SYS(キーボード入力)、PRINT.SYS(パラレル)、RSDRV.SYS(RS−232C)、日本語FEP等、多くのデバイス・ドライバがこれに該当します。このキャラクタ・デバイスに属するドライバはADDDRV.EXEでMS−DOS起動後に登録が可能です。
○ブロック・デバイス
 外部記憶装置用に準備されたもので、ZIPドライブ、SCSI装置のハードディスク等、MS−DOSでは標準機能でサポートされていない外部記憶装置(ドライブ番号が付くもの)の登録に適しています。SCSIカードのドライバ(*.SYS)、RAMDISK.SYSがこれに該当します。CONFIG.SYSの中でのみ登録が可能です。

(2)AUTOEXEC.BAT

 特にありません。

以上


<Back>