Image: DOS/Vの日本語/英語モードとSWITCHコマンド [DOS]

もともとDOS(PC DOSおよびMS-DOS)は英語(SBCS)しか扱えないIBM PCのために作られたOSです。SBCSとは文字を1バイトで表現する文字コードセットのことです。日本語の場合はひらがな・カタカナ・漢字などと扱う文字が多いため、多くの場合はDBCS、すなわち1文字を2バイトで表現します。日本語版DOSでは文字コードセットとしてMS漢字コード(コードページ932)、いわゆるシフトJISが採用されています。

本来ならIBM PCでは英文テキストしか表示できませんが、文字をグラフィックとして描画することでIBM PCハードウェアで日本語表示を可能にしたのがDOS/Vです。DOS/Vでは英語版DOSをベースにDOSの標準的なシステム拡張手段である デバイスドライバ によってにソフトウェア面から拡張を施しています。(マニュアルでは「自然拡張」と呼んでいます。)
Image: DOS/V日本語表示の仕組み
(引用元:『PC DOS J6.1/V カンタンDOS』、日本アイ・ビー・エム、1993年)

しかし日本語環境では一部の海外のDOS用適用業務プログラムが文字化けしたり動作しなかったりします。
Image: Symantec Norton Utilities 7.0

これは、DOS/Vの日本語環境が英語版DOSとある程度の互換性を保持していながらも、グラフィックや文字コードの一部で非互換の部分が存在するためです。
Image: Code page 437 (IBM PC graphic character set)Image: Code page 932 (Japanese graphic character set)
(引用元:『PC DOS 2000 日本語版 ユーザーズ・ガイド』、日本アイ・ビー・エム、1995年)

そんな時のために「CHEV US」(英語環境に切り替える)や「SWITCH」(英語モードに切り替える)というコマンドが用意されています。
CHEV USは日本語処理関連のデバイスドライバを組み込んだまま動作モードを英語環境に切り替えます。CONFIG.SYS(組み込むデバイスドライバを指定する設定ファイル。実体はテキストファイル。)には変更を加えません。
SWITCHコマンドは、CONFIG.SYSを日本語処理関連のデバイスドライバを取り除いたCONFIG.SYSに置き換えて、ほぼ完全な英語版DOSとして再起動します。デバイスドライバが常駐していないため空きメモリが増える他、日本語環境に対応していないデバイスドライバが使えるようになります。唯一の英語版DOSとの違いは、日本語配列に対応したキーボードドライバが常駐するため、英語モードでも日本語キーボードで正常に入力できます。

※DOS/Vにおける日本語環境と英語環境の関係
Native DOS Environment
英語モードはもともとのDOS。日本語モードはそれに日本語処理のためのデバイスドライバを組み込んだ状態のDOS、いわゆるDOS/Vです。MS-DOS/Vでは「US」(CHEV USと同じ)や「JP」(CHEV JPと同じ)コマンドも利用できます。
Image: DOS/V PS/55 Japanese mode
Image: DOS/V PS/2 Engligh mode

SWITCHコマンドの実際の動作は、現在のCONFIG.SYSとAUTOEXEC.BATを切り替え先モードのCONFIG.SYSとAUTOEXEC.BATに置き換えるだけなので、それぞれに変更を加えたり削除しても元には戻りません。
誤って削除してしまった場合や編集して正常に動作しなくなった時のために、標準的なCONFIG.SYSとAUTOEXEC.BATをここに置いておきます。

○MS-DOS 5.0/V 日本語モード(JPモード)のCONFIG.SYS(CONFIG.JP)

MS-DOSバージョン5.0の日本語版はMicrosoftからの直接販売は行われていません。OEM先のPCメーカーによるカスタマイズによってはDOS標準でないメモリ管理プログラムや日本語入力支援ソフト(FEP)を使用している場合があり、それに応じてCONFIG.SYSやAUTOEXEC.BATを設定する必要があります。
日本語モードのCONFIG.SYSは英語モード時にはCONFIG.JPとしてルートディレクトリに保管されます。
ちなみに、外部コマンドの多くは1つのファイルで日本語/英語両対応のバイリンガルになっていますが、バイリンガルにできなかった(?)ファイルは2つのファイルに分かれています。IBM DOSの場合はC:\DOS\PS2ディレクトリの中に英語言語のファイルが配置されていて、英語モード時に環境変数でここを指定することで英語の実行ファイルが実行されます。MS-DOS/Vの場合はC:\DOSディレクトリに日本語と英語のファイルが混在していて、さらに日本語・英語環境を判別する*.COMという実行ファイルで日本語と英語のファイルを使い分けています。英語の実行ファイルは*2.EXEというファイル名になっているため、*.EXEとしてコマンドを実行すると英語モードでも日本語のファイルが実行されてしまう問題があります。

BUFFERS=20
FILES=30
DOS=HIGH,UMB
LASTDRIVE=Z
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE 1024 RAM
DEVICE=C:\DOS\SETVER.EXE
DEVICEHIGH=C:\DOS\BILING.SYS
DEVICEHIGH=C:\DOS\JFONT.SYS /P=C:\DOS\
DEVICEHIGH=C:\DOS\JDISP.SYS
DEVICEHIGH=C:\DOS\JKEYB.SYS /106 C:\DOS\JKEYBOARD.SYS
DEVICE=C:\DOS\KKCFUNC.SYS
DEVICEHIGH=C:\DOS\ANSI.SYS
DEVICE=C:\DOS\MSIMEK.SYS /A1
DEVICEHIGH=C:\DOS\MSIME.SYS /D*C:\DOS\MSIMER.DIC /DC:\DOS\MSIME.DIC /C1 /N /A1

○IBM DOS J5.0/V 日本語モード(PS/55モード)のCONFIG.SYS(CONFIG.PS5)

BUFFERS=20
FILES=20
DOS=HIGH,UMB
COUNTRY=081,932,C:\DOS\COUNTRY.SYS
SHELL=C:\DOS\COMMAND.COM /P /E:512
DEVICE=C:\DOS\$FONT.SYS
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE 1024 RAM
DEVICEHIGH=C:\DOS\SETVER.EXE
DEVICEHIGH=C:\DOS\$DISP.SYS
DEVICEHIGH=C:\DOS\$IAS.SYS /R=1
DEVICEHIGH=C:\DOS\$IAESKK.SYS
rem DEVICE=C:\DOS\SMARTDRV.SYS 2048
rem DEVICE=C:\DOS\RAMDRIVE.SYS 14078 /E
INSTALL=C:\DOS\IBMMKK.EXE /M=S /S=C:\DOS\$MULTDCT.PRO

○MS-DOS 5.0/V、IBM DOS J5.0/V 英語モード(US、PS/2モード)のCONFIG.SYS(CONFIG.US、CONFIG.PS2)

BUFFERS=20
FILES=20
DOS=HIGH
COUNTRY=001,437,C:\DOS\COUNTRY.SYS
SHELL=C:\DOS\COMMAND.COM /P /E:512
DEVICE=C:\DOS\SETVER.EXE
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\ANSI.SYS

○MS-DOS 5.0/V 日本語モード(JPモード)のAUTOEXEC.BAT(AUTOEXEC.JP)

@ECHO OFF
PROMPT $P$G
PATH C:\DOS
SET TEMP=C:\DOS
C:\DOS\NLSFUNC.EXE C:\DOS\COUNTRY.SYS
LH KEYB.COM JP,932,C:\DOS\KEYBOARD.SYS
C:\DOS\CHEV.COM JP

○IBM DOS J5.0/V 日本語モード(PS/55モード)のAUTOEXEC.BAT(AUTOEXEC.PS5)

@ECHO OFF
SET SYS=C:
SET COMSPEC=C:\DOS\COMMAND.COM
PROMPT $P$G
PATH C:\DOS
SET TEMP=C:\DOS
LH KEYB.COM JP,932,C:\DOS\KEYBOARD.SYS
VER

○MS-DOS 5.0/V 英語モード(USモード)のAUTOEXEC.BAT(AUTOEXEC.US)

@ECHO OFF
PROMPT $P$G
PATH C:\DOS
SET TEMP=C:\DOS
C:\DOS\NLSFUNC.EXE C:\DOS\COUNTRY.SYS
KEYB.COM JP,437,C:\DOS\KEYBOARD.SYS
C:\DOS\CHEV.COM US

○IBM DOS J5.0/V 英語モード(PS/2モード)のAUTOEXEC.BAT(AUTOEXEC.PS2)

@ECHO OFF
SET SYS=C:
SET COMSPEC=C:\DOS\COMMAND.COM
PROMPT $P$G
PATH C:\DOS;C:\DOS\PS2
SET TEMP=C:\DOS
KEYB.COM JP,437,C:\DOS\KEYBOARD.SYS
VER

○関連

[EOF]


※コメント欄が表示されない場合はdisqusについてJavascriptが有効であることを確認して下さい。コメントはスパム防止フィルターによる承認制のため、投稿してもすぐに反映されない場合があります。

管理人 : Akamaki (akm)

は、PCとVTuberに夢中になっている電気技術者です。

私はレトロコンピューティングの愛好家ですが、そのようなリグはもう収集していません。

私の活動はトップページで見ることができます。読んでくれてありがとう!