<!doctype linuxdoc system>
<article>

<title>「LOADLIN & Multi-Config in MS-DOS 6 (or so)」
<author> 佐野武俊 / <tt/Taketoshi Sano/, (<tt/kgh12351@nifty.ne.jp/) 
<date> $Date: 1999/12/06 15:34:58 $, ($Revision: 1.3 $)
<abstract>
`LOADLIN' を使って Linux を起動する場合、 DOS のマルチコンフィグ
機能を使うと、起動時にメニューで OS を選択できて結構便利です。<newline>
この文章は、 MS-DOS 6 でマルチコンフィグ機能を使った場合の
 config.sys と autoexec.bat のサンプルを示すものです。
<newline><newline>
私も config.sys の書き方について詳しく知っているわけでは
ないのですが、一応の御参考になるかもしれません。
<newline>
なお、Windows95/98 でも似たような方法でマルチコンフィグの機能を
使えるらしいという話を聞いています。
<newline>
もし間違いを見つけたり、より良いアイデアを考えついたりした場合は、そっと
教えて下さいね。連絡先は著者のメールアドレス (<tt/kgh12351@nifty.ne.jp/)
でも、 JF の連絡先 (そのうちきっと専用の窓口ができるでしょう) でも結構です。
</abstract>

<toc>

<sect>「config.sys の例」
<p>
ではさっそく、まずは config.sys の例からです。
<p>
<verb>
[menu]
menuitem=Dos, Stand-Alone
menuitem=Interlink, InterLink & InterServer
menuitem=Linux, Load Linux
;menudefault=Dos, 3
;menudefault=Interlink, 3
menudefault=Linux, 3

[common]
files=80
buffers=10,0
stacks=9,256
break=on
FCBS=1
shell=c:\dos\command.com c:\ /e:1024 /p
lastdrive=g

[doscom1]
DOS=HIGH,UMB
device=c:\dos\himem.sys /testmem:off
device=c:\dos\emm386.exe highscan ram

[Dos]
include=doscom1
include=jp-k
include=doscom2

[Interlink]
include=Dos
device=c:\dos\interlnk.exe /noprinter /lpt /noscan

[Linux]

[doscom2]
device=c:\dos\power.exe std
device=c:\dos\setver.exe
devicehigh=c:\dos\ansi.sys

[jp-disp]
devicehigh=c:\dos\biling.sys
devicehigh=c:\dos\jfont.sys /p=c:\dos\
devicehigh=c:\dos\jdisp.sys

[jp-k]
include=jp-disp
device=c:\dos\kkcfunc.sys
device=c:\dos\msimek.sys /A1
device=c:\dos\msime.sys /d*c:\dos\msimer.dic /dc:\dos\msime.dic /c1 /n /a1
</verb>
<p>

<sect>「config.sys の内容説明」
<p>
参考のために、上で例に挙げた config.sys についての説明を書いておきます。
詳しくは、MS-DOS なり PC-DOS なりのオンラインヘルプを参照下さい。
IBM の PC-DOS だとすこし違うところがあるかもしれません。
私の使用したのは MS-DOS J6.02/V です。
<p>
<sect1>「選択メニュー」
<p>
最初に、起動時に選択メニューを表示するための設定です。
<p>
<verb>
[menu]
menuitem=Dos, Stand-Alone
menuitem=Interlink, InterLink & InterServer
menuitem=Linux, Load Linux
</verb>
<p>
ここの [menu] で、メニュー選択を使用する宣言をします。
menuitem= で autoexec.bat で使用する %config% 変数への
値の設定と、メニュー画面に表示する文字列を用意します。
ここに書いた "Stand-Alone" とか "Load Linux" とかの文字が
メニュー画面に表示されます。
<p>
<verb>
;menudefault=Dos, 3
;menudefault=Interlink, 3
menudefault=Linux, 3
</verb>
<p>
menudefault= でデフォルトの起動選択肢を設定します。
menuitem で設定した %config% 変数の値のひとつを指定します。
後の数字は、Wait の秒数です。私の場合は 3秒待って何も入力が
無ければデフォルトで起動するように設定しています。
メニュー画面での選択は数字でも矢印キーでも可能です。
選択してからリターンキーを押せば、その設定で起動できます。
<p>
<sect1>「共通設定」
<p>
<verb>
[common]
files=80
buffers=10,0
stacks=9,256
break=on
FCBS=1
shell=c:\dos\command.com c:\ /e:1024 /p
lastdrive=g
</verb>
<p>
ここ [common] はすべてに共通で設定する項目です。
上にある項目はほとんど時間がかからないので、そのまま
入れてあります。
<p>
<sect1>「共通設定 (DOS のみ: 1)」
<p>
<verb>
[doscom1]
DOS=HIGH,UMB
device=c:\dos\himem.sys /testmem:off
device=c:\dos\emm386.exe highscan ram
</verb>
<p>
ここ [doscom1] は DOS で使用する場合に共通で設定する
初期化項目です。himem.sys とか emm386.exe とかを
ロードする時間がもったいないので、Linux を起動する
時は外すために [common] から分けました。
<p>
<sect1>「DOS の起動: 1」
<p>
<verb>
[Dos]
include=doscom1
include=jp-k
include=doscom2
</verb>
<p>
ここ [Dos] は DOS で使用する場合の設定のひとつです。
[doscom1], [jp-k], [doscom2] の順に実行します。
<p>
<sect1>「DOS の起動: 2 (+InterLink)」
<p>
<verb>
[Interlink]
include=Dos
device=c:\dos\interlnk.exe /noprinter /lpt /noscan
</verb>
<p>
ここ [Interlink] は パラレルポートを使って Interlink で
ファイル転送をする場合のための DOS 用の設定です。
[Dos] の設定をしたあとで、interlnk.exe をロードします。
<p>
<sect1>「Linux の起動」
<p>
<verb>
[Linux]
</verb>
<p>
ここ [Linux] は何もロードせずに autoexec.bat へ飛ばすため
ラベルだけで何も書きません。
<p>
<sect1>「共通設定 (DOS のみ: 2)」
<p>
<verb>
[doscom2]
device=c:\dos\power.exe std
device=c:\dos\setver.exe
devicehigh=c:\dos\ansi.sys
</verb>
<p>
ここ [doscom2] は DOS 用の共通設定項目として
後処理のものを入れておきます。
<p>
<sect1>「共通設定 (DOS 用日本語表示)」
<p>
<verb>
[jp-disp]
devicehigh=c:\dos\biling.sys
devicehigh=c:\dos\jfont.sys /p=c:\dos\
devicehigh=c:\dos\jdisp.sys
</verb>
<p>
ここ [jp-disp] は日本語表示関係のものだけを入れてあります。
ここは PC-DOS ではドライバーの名前が異なると思います。
<p>
<sect1>「共通設定 (DOS 用日本語入力)」
<p>
<verb>
[jp-k]
include=jp-disp
device=c:\dos\kkcfunc.sys
device=c:\dos\msimek.sys /A1
device=c:\dos\msime.sys /d*c:\dos\msimer.dic /dc:\dos\msime.dic /c1 /n /a1
</verb>
<p>
DOS 用の MS-IME のロードです。Windows でしか使わないなら、
これは不要です。私は Demacs-J で日本語入力をしたい場合がある
という理由で入れてあります。
<p>
<sect1>「その他」
<p>
この他にも、 PCMCIA の SocketService, CardService を使う場合には
設定が必要ですが、省略します。[Interlink] のラベルを参考に
追加していけば、[PCMCIA] の menuitem を作成することもそれほど
困難では無いと思います。
<p>

<sect>「autoexec.bat の例」
<p>
<verb>
@ECHO OFF
 prompt $p$g

if "%config%" == "Linux" goto linux

loadhigh c:\dos\smartdrv.exe /x a b- c+ d- e- f- g- h- 1024 /B:4096 > nul
loadhigh c:\dos\mouse.com > nul
c:\dos\nlsfunc.exe c:\dos\country.sys
c:\dos\chev.com jp
path c:\dos;c:\tools\bin;

 set temp=c:\temp
 set tmp=c:\temp

 if "%config%"=="Interlink"     goto interlink
goto start

:interlink
set path=%PATH%;c:\Win31J
loadhigh c:\dos\share.exe
goto start

:linux
c:\loadlin\b_linux

:start
c:
c:\dos\doskey > nul
</verb>
<p>

<sect>「autoexec.bat の内容説明」
<p>
上で例に挙げた autoexec.bat の内容を説明します。
<p>
<sect1>「初期化」
<p>
<verb>
@ECHO OFF
 prompt $p$g
</verb>
<p>
この 2 つは autoexec.bat で行なうバッチ処理の内容表示
をしないという指定と、 使用する DOS Prompt の設定です。
<p>
<sect1>「Linux への分岐」
<p>
<verb>
if "%config%" == "Linux" goto linux
</verb>
<p>
ここで、config.sys で設定した %config% 変数の値を見て、
Linux の起動の場合は :linux のラベルまで飛ばします。
<p>
<sect1>「ディスクキャッシュ、マウスドライバ、その他」
<p>
<verb>
loadhigh c:\dos\smartdrv.exe /x a b- c+ d- e- f- g- h- 1024 /B:4096 > nul
loadhigh c:\dos\mouse.com > nul
c:\dos\nlsfunc.exe c:\dos\country.sys
c:\dos\chev.com jp
path c:\dos;c:\tools\bin
set path=%PATH%;c:\Win31J
</verb>
<p>
DOS 用のディスクキャッシュドライバとマウスドライバの起動/設定、
それから日本語表示用の設定、パスの指定です。
<p>
<sect1>「InterLink への分岐」
<p>
<verb>
 if "%config%"=="Interlink"     goto interlink
goto start

:interlink
loadhigh c:\dos\share.exe
goto start
</verb>
<p>
ここで、 InterLink を使う場合にのみ、share.exe を
ロードするよう設定しています。
<p>
<sect1>「LOADLIN 実行」
<p>
<verb>
:linux
c:\loadlin\b_linux
</verb>
<p>
ここで、LOADLIN を実行するよう指定しています。
私の環境では、 c:\\loadlin\\b_linux.bat に LOADLIN の
コマンドを書いて、バッチファイルで LOADLIN を実行する
ようにしてあります。LOADLIN についての詳細は、LOADLIN の
パッケージを展開してできる Readme を参照してください。
ここから先はもう Linux が起動してしまいますので、
以後の記述は Linux 起動時には関係ありません。
<p>
あと、重要な注意として、ディスプレイが日本語表示モードだと
LOADLIN の起動後、Linux の起動メッセージが画面に表示されません。
<p>
これを防ぐために、LOADLIN の起動用バッチファイルの先頭、
サンプルにある
<verb>
smartdrv /C 
</verb>
の後に、
<verb>
chev us 
</verb>
という行を追加しておくと良いでしょう。
<p>
これで、日本語表示モードからでも、バッチファイルの実行で
Linux を起動できます。
<p>
お試しください。
<p>
<sect1>「DOS の起動処理」
<p>
<verb>
:start
c:
c:\dos\doskey > nul
</verb>
<p>
ここは DOS 用の共通設定を指定しています。
ちなみに上はドライブの指定と doskey のロードを実行しています。
<p>
<sect>「おわり」
<p>
以上で、LOADLIN と組み合わせるためのマルチコンフィグの機能の
設定方法の紹介を終ります。
<p>
なお、著者がこの文章を書いた当時はまだまだ DOS/Windows に頼って
いたため、ここで紹介した情報がけっこう役に立ったのですが、最近
ではほとんど Linux だけで用が足りるようになってしまったのと、
Windows98 の浪費するディスクスペースが巨大なために Windows を
削除してしまったので、今後これについての情報が更新される予定は
当面ありません。
<p>
もし「俺が最新の情報に更新してやる！」という方が現われたなら、
喜んでこの文書の担当を交代しますので、是非御連絡下さい。
<p>
<sect>この文書の配布について
<p>
<verb>
 copyrighted (c) 1999 Taketoshi Sano
</verb>
<p>
この文書は GNU パブリックライセンス (GPL) バージョン 2 かそれ以降
の条件、あるいは標準的な Linux ドキュメントプロジェクト (LDP) の条件に
基づいた配布ならば自由にしていただいてかまいません。これらのライセンス
はこのドキュメントが入手できるようなサイトから入手できます。LDP の条件は
(翻訳をのぞく) いかなる修正も許可していません。修正されたバージョンは
GPL の基でのみ配布されるものとすることが可能です。
<p>
</article>
