マルチコンフィグ(DRDOS編)
- 公開日: 2009/03/21
DRDOSのconfig.sysは、バッチファイルと同様、ラベル、GOTO文、SET文が使用可能です。また、キー入力から条件分岐を行うSWITCH文が使用可能です。SWITCH文の構文は、 SWITCH ラベル1 ラベル2 ラベル3 ... となっており、キーボードから1、2、3を入力すると、それぞれラベル1、ラベル2、ラベル3に分岐します。以下、config.sysの例を示します。
TIMEOUT=15 ECHO ECHO 1:Japanese/Netware ECHO 2:English/Netware ECHO 3:English/EMS ECHO 4:English/NoEMS SWITCH JP ENCD ENEMS ENNOEMS :JP DEVICE=C:\CTCM\CTCM.EXE DEVICE=C:\DRDOS\EMM386.EXE DPMI=OFF FRAME=NONE DEVICE=C:\DRDOS\DPMS.EXE DEVICE=C:\DRDOS\SETVER.EXE SHELL=C:\COMMAND.COM C:\ /E:512 /P BREAK=OFF BUFFERS=20 FILES=40 FCBS=4,4 LASTDRIVE=D rem HISTORY=ON,512,ON COUNTRY=081,932,C:\DRDOS\COUNTRY.SYS DOS=HIGH,UMB devicehigh=c:\dosv\fontnx.exe devicehigh=c:\dosv\vesapat.exe /JP devicehigh=c:\dosv\dispvb.exe /hs devicehigh=c:\drdos\ansi.sys devicehigh=c:\dosv\xcdrom.sys /D:CDROM1 set LOAD=0 GOTO END :ENCD DEVICE=C:\CTCM\CTCM.EXE DEVICE=C:\DRDOS\EMM386.EXE DPMI=OFF FRAME=NONE DEVICE=C:\DRDOS\DPMS.EXE DEVICE=C:\DRDOS\SETVER.EXE SHELL=C:\COMMAND.COM C:\ /E:512 /P BREAK=OFF BUFFERS=20 FILES=40 FCBS=4,4 LASTDRIVE=D rem HISTORY=ON,512,ON COUNTRY=1,,C:\DRDOS\COUNTRY.SYS DOS=HIGH,UMB devicehigh=c:\drdos\ansi.sys devicehigh=c:\dosv\xcdrom.sys /D:CDROM1 set LOAD=1 GOTO END :ENEMS DEVICE=C:\CTCM\CTCM.EXE DEVICE=C:\DRDOS\EMM386.EXE DPMI=OFF FRAME=NONE DEVICE=C:\DRDOS\DPMS.EXE DEVICE=C:\DRDOS\SETVER.EXE SHELL=C:\COMMAND.COM C:\ /E:512 /P BREAK=OFF BUFFERS=20 FILES=40 FCBS=4,4 LASTDRIVE=C rem HISTORY=ON,512,ON COUNTRY=1,,C:\DRDOS\COUNTRY.SYS DOS=HIGH,UMB devicehigh=c:\drdos\ansi.sys set LOAD=2 GOTO END :ENNOEMS DEVICE=C:\CTCM\CTCM.EXE DEVICE=C:\DRDOS\DPMS.EXE DEVICE=C:\DRDOS\SETVER.EXE SHELL=C:\COMMAND.COM C:\ /E:512 /P BREAK=OFF BUFFERS=20 FILES=40 FCBS=4,4 LASTDRIVE=C rem HISTORY=ON,512,ON COUNTRY=1,,C:\DRDOS\COUNTRY.SYS DOS=HIGH,UMB devicehigh=c:\drdos\ansi.sys set LOAD=3 GOTO END :END
上記のconfig.sysでは、以下の処理をやっています。まず、変数TIMEOUTを設定し、メニューのタイムアウト時間を設定します。そして、ECHO文でメニューを表示し、SWITCH文でキー入力を受けつけ、ラベル:JP、:ENCD、:ENEMS、:ENNOEMSのいずれかに分岐させます。分岐した先の各ラベル以降の行で設定を行い、autoexec.batに渡すパラメータを環境変数LOADに設定し、最後に:ENDラベルに分岐します。
autoexec.batの書き方はMS-DOSやFreeDOSと同様です。以下に例を示します。
@ECHO Off IF %LOAD%==0 GOTO CD IF %LOAD%==1 GOTO CD IF %LOAD%==2 GOTO NONET IF %LOAD%==3 GOTO NOEMS :CD SET SOUND=C:\SB16 SET BLASTER=A220 I5 D1 H5 P330 E620 T6 SET MIDI=SYNTH:1 MAP:E MODE:0 SET CTCM=C:\CTCM C:\SB16\DIAGNOSE /S C:\SB16\AWEUTIL /S C:\SB16\MIXERSET /P /Q C:\CTCM\CTCU /S PATH C:\DRDOS;C:\ EMM386 PIC=ON DPMI OFF VERIFY OFF PROMPT [DR-DOS] $P$G SET DRDOSCFG=C:\DRDOS rem NWCACHE 7670 1024 /LEND=ON /DELAY=OFF lh c:\drdos\nwcdex /D:CDROM1 lh c:\dosv\ctmouse GOTO END :EMS SET SOUND=C:\SB16 SET BLASTER=A220 I5 D1 H5 P330 E620 T6 SET MIDI=SYNTH:1 MAP:E MODE:0 SET CTCM=C:\CTCM C:\SB16\DIAGNOSE /S C:\SB16\AWEUTIL /S C:\SB16\MIXERSET /P /Q C:\CTCM\CTCU /S PATH C:\DRDOS;C:\ EMM386 PIC=ON DPMI OFF VERIFY OFF PROMPT [DR-DOS] $P$G SET DRDOSCFG=C:\DRDOS rem NWCACHE 7670 1024 /LEND=ON /DELAY=OFF lh c:\drdos\nwcdex /D:CDROM1 lh c:\dosv\ctmouse GOTO END :NOEMS SET SOUND=C:\SB16 SET BLASTER=A220 I5 D1 H5 P330 E620 T6 SET MIDI=SYNTH:1 MAP:E MODE:0 SET CTCM=C:\CTCM C:\SB16\DIAGNOSE /S C:\SB16\AWEUTIL /S C:\SB16\MIXERSET /P /Q C:\CTCM\CTCU /S PATH C:\DRDOS;C:\ DPMI OFF VERIFY OFF PROMPT [DR-DOS] $P$G SET DRDOSCFG=C:\DRDOS rem NWCACHE 7670 1024 /LEND=ON /DELAY=OFF lh c:\drdos\nwcdex /D:CDROM1 lh c:\dosv\ctmouse GOTO END :END