※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。



Windows XP MS-DOS 起動ディスクって? その2

追記[2008-11-04][2008-1029]転記[2008-10-19]


日本語の読み書き

Windows XP で作った起動 SD は、起動 FD イメージだけでは日本語環境にはできません
でした。手元の環境では、SD カードを仮想起動 FD として使用可能で、DOS が起動 FD
イメージ外の領域を別ドライブとして認識できる場合に、日本語環境を構築可能でした。
たぶん、内蔵 HD 内に DOS が起動時に認識可能な FAT パーティションがある場合も
可能だろうと思います。(未検証)

以下は、MS-DOS 起動 SD での構築例です。
Japanese DR DOS User's Group の日本語関連の記事がとても参考になりました。

日本語を表示する はてなブックマークに登録

Windows 98 日本語版があるなら

追記[2008-09-30]

Windows 98 の緊急起動ディスク(メーカー添付のツールで作成したもの)から
日本語表示に必要なファイルをコピー、CONFIG.SYS で読み込ませてみた。
肝は、フォントファイルを 仮想 FD イメージ外のFAT パーティション内に置くこと。
A ドライブ(FD イメージ内)に置くとパスを指定しても読み込めなかった。

どっちにしても
JFONT: 24 dot user fonts not available.
JFONT: 16 dot user fonts not available.
ってのが出るけど気にしない。

追加するファイル
  • FD イメージ内(追加5、計19ファイル)
BILING.SYS
JDISP.SYS
JFONT.SYS
COUNTRY.SYS
PANSI.SYS
COUNTRY.SYS: Windows Me 起動ディスク に含まれるものを使用。
PANSI.SYS : ANSI.SYS 互換のコンソール表示ドライバー。これがないと日本語環境
にした時、コンソールの英語表示が変になったので。XP の ansi.sys ではダメ。

  • SD ドライブ内
ANK16.FNT
ANK19.FNT
KANJI16.FNT

SD メモリブートユーティリティで MS-DOS 起動 SD 作成するとフォーマットされて
しまうので、フォントファイルは起動 SD 作成後に、普通に SD にコピーする。
fnt.jpg

問題は、USB HD を接続している時とそうでない時で SD ドライブのドライブ文字が
変わってしまうこと。(接続時:D、非接続時:C →環境次第でさらに変わるのかも)
仕方ないので、MENU コマンドで分けることに。

CONFIG.SYS
[MENU]
menuitem    = USB, with USB Device
menuitem    = NOMAL, without USB
menudefault = NOMAL, 20

[USB]
REM フォントファイルの場所:D ドライブ指定
DEVICE=JFONT.SYS /P=D:
REM USB デバイスドライバのインストール
DEVICE=USBASPI.SYS /V
DEVICE=di1000dd.sys

[NOMAL]

[COMMON]
REM 国コードとコードページを指定(日本・Shift-JIS)
COUNTRY=081,932,COUNTRY.SYS
DEVICE=BILING.SYS
REM フォントファイルの場所:C ドライブ指定
DEVICE=JFONT.SYS /P=C:
DEVICE=JDISP.SYS /HS=LC
DEVICE=PANSI.SYS

AUTOEXEC.BAT
keyb.com jp,932,keyboard.sys
以下変更なし

USB 選択時に
JFONT.SYS was not installed.
JFONT: 16x16 DBCS font file not found.
と言われるが、すぐ見つかるのでだいじょうぶ。

Windows 98 が無いとき

追記[2008-10-05]

DOS/V 互換のフォントドライバとフォントとディスプレイドライバを使う。

1. FONTX と DISPV を DL、必要なファイルを用意する。

  • フォントドライバ:$FONTX.SYS(FONTX)

  • フォント(.FNT):FONTX 同梱の MKXFONT.EXE を使って Windows XP 上で作成する。
 (1).FONTX フォルダを作成、MKXFONT.EXE をそこに移動、実行。
   9個のフォントファイルが作成されるが、日本語表示に必要な最低限の
   フォントは3つ。
   JPNHN16X.FNT(8*16 半角)
   JPNHN19X.FNT(8*19 半角)
   JPNZN16X.FNT(16*16 全角)
 (2).FONTX 同梱の $fontx.ini を書き換える。(フォントファイルの拡張子に注意)

$font.ini
[CODE] ; Define code area.
;start end comment
F040 F0FC ; user font area
[FONT] ; Install font file.
;font file comment
jpnhn16x.fnt ; 8*16 ascii font (japanese)
jpnhn19x.fnt ; 8*19 ascii font (japanese)
jpnzn16x.fnt ; 16*16 SJIS font

  • ディスプレイドライバ:DISPV.EXE(DISPV)
 使いたいビデオモードによって、必要なディスプレイドライバとフォントファイルが
 変わる(#8)ので、詳細は DISPV.TXT を参照のこと。

2.SD ドライブに FONTX フォルダを作成、$fontx.sys とフォントファイル3つを
  コピー、DISPV.EXE を SD ドライブにコピーする。任意のフォルダ内でもOK。
  ただし、これらを FD イメージ(仮想 FDD)内に置いてはダメ。

3.CONFIG.SYS を編集
  USB 接続有り無しそれぞれで各ファイルのパスを指定する。

CONFIG.SYS
[MENU]
menuitem    = USB, with USB Device
menuitem    = NOMAL, without USB
menudefault = NOMAL, 20

[USB]
REM フォントファイルの場所:D ドライブ指定
DEVICE=D:\FONTX\$fontx.sys /P=D:\FONTX\
DEVICE=D:\DISPV.EXE
DEVICE=USBASPI.SYS /V
DEVICE=di1000dd.sys

[NOMAL]
REM フォントファイルの場所:C ドライブ指定
DEVICE=C:\FONTX\$fontx.sys /P=C:\FONTX\
DEVICE=C:\DISPV.EXE

[COMMON]
REM 国別コードとコードページを指定(日本・Shif-JIS)
COUNTRY=081,932,COUNTRY.SYS
DEVICE=PANSI.SYS

ファイル
  • FD イメージ内(計16ファイル)
AUTOEXEC.BAT
CHOICE.COM
COMMAND.COM
CONFIG.SYS
COUNTRY.SYS
DESTROY.COM
di1000dd.sys
IO.SYS
KEYB.COM
KEYBOARD.SYS
lngintl.dat
MSDOS.SYS
ntfs4dos.exe
PANSI.SYS
READNTFS.EXE
USBASPI.SYS

  • SD ドライブ内(計6ファイル)
DISPV.EXE
FONTX --$fontx.ini
   --$FONTX.SYS
   --JPNHN16X.FNT
   --JPNHN19X.FNT
   --JPNZN16X.FNT

# 8
BDF M+ 12dot フォント を使いたければ、DISPVC.EXE(SVGA なら DISPVCD.EXE)を使用
DEVICE=DISPVC.EXE [/HC=ON]
$font.ini で MPLZN12X.FNT と MPLHN12X.FNT を読み込ませる。起動時は VGA(640*480)
標準ビデオモード 03h なので 8*19、8*16、16*16 フォントも必要。

$font.ini
[CODE]
F040 F0FC
[FONT]
jpnhn16x.fnt ; 8*16 ascii font (japanese)
jpnhn19x.fnt ; 8*19 ascii font (japanese)
jpnzn16x.fnt ; 16*16 SJIS font
MPLZN12X.FNT ; M+ Gothic 12x12dot
MPLHN12X.FNT ; M+ Gothic 6x12dot + DOS/V 罫線

ビデオモードの切り替は、 CHEJ か、 DISPV 同梱の VMX.EXE で。
 chej 70 or 3 / vmx 70 or 3
起動時に V-Text ビデオモード 70h にするなら、AUTOEXEC.BAT に。

AUTOEXEC.BAT
@ECHO OFF
REM 日本語キーボード(106/109)ドライバ使用
keyb.com jp,932,keyboard.sys
CHEJ 70
以下略

DESTROY は 03h の方が吉。


コンソール表示だけでなく、FD55(FD 日本語メッセージ版) や DESTROY など日本製
アプリも日本語表示になる。
cosole_jp.JPG FD_jp.JPG
DESTROY_jp.JPG jed70h.JPG
画像右下は JED 106 桁表示 BDF M+ 使用時


英語アプリが問題で、NTSF4DOS は起動時の画面スクロールや表示が崩れる。yes→ENTER
で以後の操作は問題なく行える。Active@ NTFS Reader for DOS や EDIT.COM などは、
。。。まっくろけ。 SWITCH で 環境切り替え た方がいいかも。

と、よくよく画面を見たら、画面の最下段に起動モード選択メニューが出てるじゃん!
CONFIG.SYS に MENU があると出てくるんか?

F5=Safe mode Shift+F5=Command prompt
Shift+F8=Step-by-step confirmation [N]

Safe mode では CONFIG.SYS と AUTOEXEC.BAT の内容を読み込む前の素の状態で起動、
内蔵 NTFS→SD(FAT16)へのコピーなら十分 NTFS Reader が使える。

Step-by-step では CONFIG.SYS と AUTOEXEC.BAT の内容を一行ずつユーザの許可を
求めながら読み込んで行くので、日本語表示関連だけ不許可にすればオッケ。
REM 行や ECHO 行を逐一不許可にしなけりゃならんのは面倒なので書かなきゃいいし。

step1.JPG step2.JPG
日本語表示関連の読み込みを許可・完了したとたん日本語表示になる。

日本語・英語環境の切り替え

CHEJ を使えば簡単。

CHEJ.EXE を 仮想FD か SD ドライブにコピー
  • 英語環境に切り替え
chej us [25,30,34,43,50,60]
英文表示行数の変更も可能
  • 日本語環境に切り替え
chej jp

今までの設定では起動時に日本語環境なので、英語環境に切り替えても日本語表示関連の
ドライバなどはメモリに読み込まれたままとなる。気になるなら ADDDEV/DELDEV
組み込みや取り外しをすると良いのでしょう。

日本語の入力

たぶん、Windows 98/Me の DOS 用 FEP(msime.sys,MSIMEK.SYS)と辞書と kkcfunc.sys
があれば可能なんじゃないかと思うんだけど(XP 用ではダメ)、実機が手元に無い。
旧宅に置いて来ちゃった。→とってきましたあ!→MS-IME(Windows 98)へ

「鳳」(日本語入力デバイスドライバ)を使う

追記[2008-10-11]

1.用意するもの

2.OTRI.SYS(日本語入力デバイスドライバ)にパッチを当てる
   OTRI.SYS(デバイスドライバ OTRI0552.LZH から)
   OTRI.BDF(差分ファイル OP552033.LZH から)
   BUPDATE.EXE(差分更新プログラム bdiffvct.lzh から)
  3つのファイルを同一フォルダ内に置き、コマンドプロンプトから
BUPDATE.EXE OTRI.BDF
(元の OTRI.SYS は OTRI.ORG にリネームされる)

3.辞書ファイル作成
   TXT2DIC.exe(テキスト・辞書コンバータ smstool.lzh から)
   SMS.TXT(嵐辞書テキスト arasdic6.lzh から)
   CONVDIC.exe(辞書コンバータ DICTOOL.LZH から)
  3つのファイルを同一フォルダ内に置く。
  (1)辞書テキストから「嵐」の辞書ファイル形式に変換
    コマンドプロンプトから
txt2dic.exe SMS.REA SMS.DIC SMS.TXT
    SMS.REA と SMS.DIC が作成される。
  (2)「嵐」の辞書ファイルから「鳳」の辞書に変換
    CONVDIC.exe を実行
    SMSREA.DIC と SMSDIC.DIC が作成される

4.ファイルをコピー
  SD ドライブ内に OTRI フォルダを作成、
  その中に、作成した OTRI.SYS、SMSREA.DIC、SMSDIC.DIC と、 DICTOOL.LZH から
  SMSROM.DIC(ローマ字辞書)と、 otri055.lzh から SMSTXT.ST(短文辞書
  -編集可能-)をコピー
  FD イメージ(仮想 FDD)内に KKCFUNC.SYS をコピー

5.CONFIG.SYS に追記
  DEVICE=C:\OTRI\OTRI.SYS /DC:\OTRI 起動オプション
  例(1行で):
DEVICE=KKCFUNC.SYS
DEVICE=C:\OTRI\OTRI.SYS /DC:\OTRI /t /i1 /ス /2 /K0F920 /K1ABFF
/K2B6FF /K3B0F8 /K4AFFF /K5B3FF /K8OO1B /K9F820 /KA0020 /KBF820
/KEB2FA /J0FA20 /J2AFFF /J7A7FF

  /t:「~」を、かな変換時に「~」、英字変換時に「 ̄」にする。
  /i:仮想鍵盤表示形式指定 /i0 長方形(デフォルト)/i1 斜形
  /ス:「づ/ず」「ぢ/じ」の使い方を自由に
  /2:JIS83罫線コードで出力(DOS/V 用)
  /k,/j:キーカスタマイズ(機能番号・キーコードを指定)

  仮想鍵盤表示・ページ送り:Ctrl + Space:/K0F920
  ひらがな変換:無変換:/K1ABFF
  カタカナ変換:かな :/K2B6FF
  全角英数変換:Shift + 半角/全角:/K3B0F8
  半角カナ変換:半角/全角:/K4AFFF
  半角英数変換:英数:/K5B3FF
  変換取り消し(入力・鍵盤消去):ESC:/K8OO1B(デフォ)
  仮想鍵盤前ページへ:SHIFT + Space:/K9F820
  半角スペース:Space:/KA0020(デフォ)
  全角スペース:Shift + Space:/KBF820
  「鳳」の起動・終了:Alt + 半角/全角:/KEB2FA
  リピート入力:Alt + Space:/JFA20(デフォ)
  漢数字変換 :半角/全角:/J2AFFF
  短文変換  :変換:/J7A7FF
  詳細は OTRI.DOC( otri055.lzh 同梱)参照のこと。

  メモ:
     PANSI.SYS はディスプレイドライバ( DISPV.EXE )より先に読み込まれて
    いないとダメ
     KKCFUNC.SYS は FEP(OTRI.SYS)の前でも後でも大丈夫

6.使い方
  4.で例示のオプションの場合(106 キーボード)
   (1)Alt + 半角/全角 で「鳳」を起動・終了
   (2)文字入力後
      →ひらがな:「無変換」キーで確定(「Enter」:000D でもいいかも)
      →全角カタカナ:「カタカナ・ひらがな」キーで確定
      →半角カタカナ:「半角/全角」キーで確定
      →全角英数字 :Shift + 「半角/全角」キーで確定
      →半角英数字 :「英数(Caps Lock)」キーで確定
      →漢数字   :「半角/全角」キーで確定
      →全角スペース:Shift +「Space」、半角スペース:「Space」
              (私は普段 S&S を使ってるのでそれに合わせてる)
      →漢字    :a. Ctrl + 「半角/全角」キーで仮想鍵盤表示
              b. 変換したい漢字の位置に該当するキーで確定
                仮想鍵盤1段目:1~0 仮想鍵盤2段目:Q~P
                仮想鍵盤3段目:A~; 仮想鍵盤4段目:Z~/
              c. 変換候補が出るまで Ctrl +「半角/全角」キーで
                ページ送り、逆順は SHIFT +「Space」
      →短文変換  :「変換」キーで確定
   (3)文字入力取り消し・仮想鍵盤消去は「Esc」

コンソール画面、 FD JED で動作確認(画像右2つは、 ぱうフォント 使用時)
otri_console.jpg otri_fd.jpg otri_jed.jpg

脳直で使うには習熟と漢字力が必要。でも、ここでの目的は、いざと言うときの
ファイルのレスキュー・サルベージなので、(日本語ファイル名はあまり無いし)
ま、大丈夫でしょ。

WXP + WXPDOSV

追記[2008-10-19]
結論から言うと、 WXP for J-3100 WXPDOSV(WXP for J-3100 を DOS/V で動作させる) では漢字変換ができなかった。ひらがな・カタカナ(全角・半角)と英数字・記号は問題ないのだが。

一応覚書。
  • SD ドライブ内に WXP フォルダを作成、その中に WXP.SYS、WXDP.SYS、JISHO01.DOC、
 JISHO02.DOC を置く。(WXP.SYS に WXPDOSV 同梱の V-Text 対応パッチを)
 適用したものは動かなかったので、素の WXP.SYS)
  • WXPDOSV.EXE を任意の場所に置く。(環境変数 SET PATH= で指定した場所が便利)
  • CONFIG.SYS に
DEVICE=KKCFUNC.SYS
DEVICE=C:\WXP\WXP.SYS /R /Z /H30 /CS /D1C:\WXP\JISHO01.DIC
  /D3C:\WXP\JISHO02.DIC
DEVICE=C:\WXP\WXDP.SYS
  • wxpdosv を常駐させる:wxpdosv
 WXP の起動・終了:Alt + 全角/半角
 常駐解除:wxpdosv -r

おまけ
せっかくだから、 DOS と DBCS ベクタと2バイト文字を含むファイル名に関する…
問題を実践してみた。

habanero.jpg

確かに「クグキロ.txt」ができあがるし、Windows 上で作成した「ハバネロ.txt」は、
画面では見えるけどアクセスしようとすると、見つからないと言われる。
いわゆるダメ文字ももちろんダメ。

MS-IME(Windows 98)

掲載[2008-11-07]

取って来ました、Windows 98 の実機。
MS-IME と PANSI.SYS KKCFuncサポートドライバ FONTX と DISPV の組み合わせで動作確認。(ただし、MS-IME 関連ファイルを仮想 FD 内に置いた場合は未確認)

  • C:\WINDOWS\COMMAND から SD にコピー(6ファイル)
MSIME.SYS
MSIMEK.SYS
MSIMED.SYS
MSIME.DIC    ;ユーザ辞書
MSIMER.DIC   ;システム辞書
MSIMEKEY.EXE ;キーボードユーティリティ
キー割り当て変更しない場合は MSIMEKEY.EXE は不要

  • キーバインド変更-ユーザ定義ファイル MSIME.CFG を作成-(変換キーで IME on/off トグルの例)
    • MS-DOS 上で MSIMEKEY.EXE を起動
    • ↓キーで [19 変換] に移動→[ENTER]→[未入力状態]に移動→[ENTER]→[起動トグル]を選択→[ENTER]
    • Esc キー連打で前画面に戻り F9(セーブ)→ファイル名(MSIME.CFG)を確認→[Enter]
    • F10(終了)→[MS-IME にキー設定をして終了](MS-DOS を終了するまで有効)
    • 定義ファイル(MSIME.CFG)を作成後再変更しないのなら MSIMEKEY.EXE は削除してかまわない。

CONFIG.SYS(抜粋)
REM DOS=HIGH,UMB ;(#10)
REM フォントドライバとフォントファイルの場所指定
DEVICE=C:\FONTX\$fontx.sys /P=C:\FONTX\
REM ディスプレイドライバ
DEVICE=C:\DISPV.EXE
REM かな漢字変換サポートドライバ
DEVICE=KKCFUNC.SYS
REM コンソール表示ドライバ
DEVICE=PANSI.SYS
REM FEP(MS-IME)
DEVICE=C:\MSIME\MSIMEK.SYS /A1 /SP
DEVICE=C:\MSIME\MSIME.SYS /A1 /C2 /L /N /D*C:\MSIME\MSIMER.DIC
       /DC:\MSIME\MSIME.DIC /UFC:\MSIME\MSIME.CFG
/A1:拡張メモリエリア指定 1:EMS,2:XMS(デフォルトは使用しない)(#10)
/SP:Space キーで空白入力(デフォルトは変換)
/C2:Shift-JIS(デフォルト)
/L :学習しない
/N :エコーモード指定(デフォルトはシステムライン)
/D*:システム辞書指定
/D :ユーザ辞書指定
/UF:ユーザ定義ファイル指定
/H21:自動変換・確定しない(デフォルトは連文節・確定しない)

ms-ime.jpg

#10
HIMEM.SYS・EMM386.EXE(拡張メモリマネージャ)は XP の IO.SYS に統合されたので
不要。CONFIG.SYS で読み込ませようとしても already installed と言われる。
なので、拡張メモリエリアの使用をオプションで指定する必要は無いのかもしれない。
MEM.EXE(#11)でシステム、デバイスドライバ、常駐プログラムなどの詳細情報を調査
(mem /a /d)しても、オプションの有無・違いによる差は無いし。DOS=HIGH,UMB や
DEVICEHIGH を指定する意味は無いように思う。素で DOS は HMA に常駐状態になる。

日本語の読み書きには多くのメモリを必要とする。ここでの目的(データの完全消去や
緊急時のデータのレスキュー)を考えれば、できるだけ日本語を使わずにメモリを確保
すべきかもね。

#11
ME 用(98/XP の MEM.EXE はバージョン違いで使用不能。)

長い名前(long file name)のファイル・フォルダ

掲載[2008-10-29]

LFN(long file name)で見れる / 扱える方が判りやすいので。
VFAT とか LFN エントリーとか、良く解っていないので以下はひたすらテストした結果。
当分未完。

NTFS ASCII



set_uselongname=1+2+16+128
  縦1列表示のモード時に([1]キーで切り替え)、右側に LFN が表示される。(#9)
  起動時に縦1列表示、終了時 EMS のデータを残さない
MIEL -E1 -KE
    • NTFS→FAT copy はメモリ不足でテスト不可^^;
    • NTFS4DOS + DOSLFN では LFN の表示は不可(SFN での表示・コピーは可能)

miel_ntfs.jpg

  • NTFS driver
    • DOS から NTFS パーティションの読み書きをするドライバ・コマンド
    • オリジナルは Linux ツール なので、NTFS へのアクセスは Linux 風に。
ntdir //hda3
ntcp //hda2/longfilrname.txt \longfilename.txt
ntcp //hda2/longfilrname.txt c:\copy\longfilename.txt
    • /dev/hda2 ではアクセスできない。
    • なぜか、ルートが E ドライブで hda3、D ドライブが hda2、たぶん C ドライブが hda1 なのだけど、アクセスするとエラーメッセージがスクロールし続け。。
    • ドライブ直下にしかアクセスできない。(下位フォルダは not found)
    • ntcp、ntchange などで NTFS パーティションにファイルを作成すると、壊れたハードリンクのような Windows 的には異常なファイルになり、ファイルシステムエラーが生じる。→[chkdsk /f D:]で修復

FAT ASCII / 日本語

掲載[2008-11-04]

  • DOSLFN v0.32o / DOSLFN from Jason Hood v0.40e
    • ASCII / 日本語 とも LFN 表示、LFN での copy / move 操作に対応
    • DOSLFN.COM と CP932UNI.TBL を SD 内の同じディレクトリにコピー
    • NTFSDOS と併用するときは、DOSLFN → NTFSDOS の順に起動すること。
 起動・常駐
DOSLFN [/d] [/u]
  d:停止 u:常駐解除

  • FD Clone
    • FDC と同じディレクトリに 設定ファイル(ファイル名 FD2RC)を作成し、内部変数 DOSDRIVE を定義しておくことで DOS でも LFN が扱えるようになる。
DOSDRIVE=1
    • SFN 表示で copy / move をすると LFN が削除される。
    • LFN 表示では LFN を保持したまま move 可能。copy は、LFN ファイルだけでなく、SFN も不可。(File exists と言われる。)

 KL_U.BAT
@ECHO OFF
UNIDRV
KL.COM
    • DOSLFN( v0.32o / v0.40e )が起動(常駐)していれば LFN を保持したまま copy / move が可能。でなければ SFN になる。
    • KL.CFG で LFN に関する設定項目を変更したら klcust.exe を実行する。
    • NTFSDOS / NTFS4DOS が起動していれば、KL から NTFS パーティションへのアクセスもできるようになるが、LFN は表示できず、日本語ファイル名も不可。

  • MIEL(DOS/V,IBM) v2.58 / Ver.2.58+4a + DOSLFN( v0.32o / v0.40e
    • 縦1列表示モード時に右側に LFN が表示され、LFN エントリー を保持したままの copy / move 等の操作が可能になる。マクロ指定も可。(#9)
    • 「ドライブのエラーです」と表示されることがあるが(FAT32→SD)、ESC or F キーで抜けるとコピーは完了している。
    • 指定したエディタで開くことも可。
 MIEL.CFG(ユーザーカスタマイズ用定義ファイル)
set_uselongname=1+2+16+128
  (変更後は MIELCUST.COM で MIEL.COM を書き換えること)
 起動オプションで指定
MIEL -E1 -KE
  (起動時に縦 1 列表示、終了時 EMS のデータを残さない)
miel_fat.jpg

#9
私には、 DOSLFN の仕組みはわからないが、 MIEL YUPDATE は、Windows 95
環境下であると誤解してくれるっぽい。


-