まえがき
Windows95/98/98SEをMS-DOS7として使うためのメモ。 ファイルを取り出すことで、長いファイル名(LFN)、FAT32(95OSR2以降)、LBA(約137GBまでのHDD)をサポートするDOSとして使うことができる。
MS-DOS7を取り出す
_用意するもの
- Windows9xのインストールCD
- インストールするPC。 用意できないときは仮想PCソフトを使うと良い。
- fdiskの修正hotfix(263044JPN8.EXE)http://support.microsoft.com/kb/263044/ja
- io.sysの修正hotfix(311561JPN8.EXE)http://support.microsoft.com/kb/311561/ja
_インストール
- CDブートできないものは、FATでフォーマットしたHDDにCDのi386フォルダをコピーし、setupコマンドでインストールする。
- 修正hotfixを入れる。
_取り出し
- Windows9xを起動しブートフロッピーを作る(要インストールCD)。 これがMS-DOS7のインストール兼ブートディスクになる。
- hotfixでio.sysとfdisk.exeが更新されるので、c:\io.sysとc:\windows\command\fdisk.exeを1枚目のブートフロッピーに上書きコピーしておく。
- 次のファイル(約5MB)を外部メディアにコピーする。 (括弧)のファイルは無くても可。
ディレクトリ構造をそのまま残しておくと、bootdisk.batでブートフロッピーが作れるようになる。C:\WINDOWS\COMMAND\EBD\はブートフロッピーの中身なので重複ファイルがいくつかある。- C:\WINDOWS\COMMAND\EBD\はブートフロッピー作成時に作られる? 作られる条件が不明。
C:\
(AUTOEXEC.BAT) 後で作成するので不要 (COMMAND.COM) sysコマンドでコピーされるので不要 (CONFIG.SYS) 後で作成するので不要 (DOSIME.SYS) MS-IMEを後から組み込む時に使う。通常は不要。 IO.SYS hotfixにより更新されるのでブートフロッピーのものより新しい (MSDOS.SYS) 後で作成するので不要
C:\WINDOWS\
ANK16.FNT ANK19.FNT (ASPI2HLP.SYS) SCSI関連? 通常は不要。 BILING.SYS (CMD640X.SYS) CMD PCI-0640x IDEコントローラ用ドライバ 使ってなければ不要 (CMD640X2.SYS) CMD PCI-0640x IDEコントローラ用ドライバ 使ってなければ不要 (COMMAND.COM) 重複 (CONFIG.TXT) ドキュメント COUNTRY.SYS DBLBUFF.SYS EMM386.EXE GAIJI16.FNT 外字フォント。JFONT.SYS /U=0とすると読み込まれない。 GAIJI24.FNT 外字フォント。JFONT.SYS /U=0とすると読み込まれない。 (GENERAL.TXT) ドキュメント HIMEM.SYS (IFSHLP.SYS) Microsoft Network Client for DOS等で使用。通常は不要。 JDISP.SYS JFONT.SYS /U=0とすると外字フォントを読み込まない。 JKEYB.SYS JKEYBRD.SYS KANJI16.FNT KANJI24.FNT 24ドットフォント。V-TEXTや印刷では使うこともある。WebBoyの表示にも使える。 KKCFUNC.SYS (LICENSE.TXT) ドキュメント (MSDOSDRV.TXT) ドキュメント (NETWORK.TXT) ドキュメント (PROGRAMS.TXT) ドキュメント RAMDRIVE.SYS SETVER.EXE SMARTDRV.EXE
C:\WINDOWS\COMMAND\
ADDDRV.EXE ANSI.SYS ATTRIB.EXE BOOTDISK.BAT CHEV.COM 使うにはNLSFUNC.EXEの組み込みが必要。chejを使うので無くても良い。 CHKDSK.EXE CHOICE.COM CVT.EXE DEBUG.EXE DELDRV.EXE DELTREE.EXE DISKCOPY.COM (DOSIME.BAT) MS-IMEを動的に組み込むバッチ。通常は不要。 DOSKEY.COM (DRVSPACE.BIN) 圧縮ドライブを使わなければ不要 (DRVSPACE.SYS) 圧縮ドライブを使わなければ不要 EDIT.COM テキストエディタ。日英両モードに対応。V-TEXT非対応。 EDIT.EXE テキストエディタ本体(日本語) EDIT.HLP テキストエディタヘルプ(日本語) EDIT2.EXE テキストエディタ本体(英語) EDIT2.HLP テキストエディタヘルプ(英語) EXTRACT.EXE FC.EXE FDISK.EXE 98はhotfixを当てると128GiB(約137GB)までのHDDを扱える。当てないと64GiBまで。 FIND.EXE FORMAT.COM JP.BAT chejでモード切り替えするように編集する(後述)。 JPRINTER.SYS LABEL.EXE MEM.EXE MODE.COM MORE.COM MOVE.EXE MSCDEX.EXE MSIME.DIC MSIME.SYS MSIMED.SYS MSIMEK.SYS MSIMEKEY.EXE MSIMEKEY.INI MSIMELST.EXE MSIMER.DIC MSIMERGN.EXE MSIMESET.EXE NLSFUNC.EXE SCANDISK.COM SCANDISK.EXE SCANDISK.INI SCANDSK2.EXE SELKKC.EXE SORT.EXE SUBST.EXE SYS.COM US.BAT chejでモード切り替えするように編集する(後述)。 XCOPY.EXE (XCOPY32.EXE) XCOPY.EXEと全く同じファイルなので削除可。 XCOPY32.MOD XCOPY本体
C:\WINDOWS\COMMAND\EBD\
BOOTDISK.BATで作られるブートFDの中身になる。 C:\WINDOWS\COMMAND\EBD\が存在しない場合もあるが、SCSIドライバ類が必要ならブートフロッピーから取り出せる。
ANK16.FNT 重複 ANK19.FNT 重複 ASPI2DOS.SYS Adaptec SCSIドライバ ASPI4DOS.SYS Adaptec SCSIドライバ ASPI8DOS.SYS Adaptec SCSIドライバ ASPI8U2.SYS Adaptec SCSIドライバ ASPICD.SYS SCSI CD-ROMドライバ AUTOEXEC.BAT BILING.SYS 重複 BTCDROM.SYS BusLogic/Mylex製SCSI用CD-ROMドライバ BTDOSM.SYS BusLogic/Mylex製SCSI用CD-ROMドライバ COMMAND.COM 重複 CONFIG.SYS (DRVSPACE.BIN) 重複 圧縮ドライブを使わなければ不要 EBD.CAB EXTRACT.EXE 重複 FDISK.EXE 重複 FINDRAMD.EXE FLASHPT.SYS BusLogic/Mylex製SCSI用CD-ROMドライバ HIMEM.SYS 重複 IO.SYS 重複 JDISP.SYS 重複 JFONT.SYS 重複 JKEYB.SYS 重複 JKEYBRD.SYS 重複 KANJI16.FNT 重複 OAKCDROM.SYS RAMDRIVE.SYS 重複 (README.TXT) ドキュメント SETRAMD.BAT
取り出した後のWindows9xは不要なので消す。 インストールした環境でそのままMS-DOS7を使いたいのなら、前述のファイルを残してすべて削除する方法を取ってもよい。
MS-DOS7のインストール
_インストール
- 作成したブートフロッピーで起動
- fdiskでパーティション作成
- 再起動後、format C: /sでフォーマット&システムファイル転送
- 事前にコピーしたファイルを転送
前もってFATパーティションを作成し、ファイルをコピーした後にブートフロッピーからsysコマンドでシステムファイルを転送してもよい。
_msdos.sysの編集
編集の前にシステム属性と隠し属性を解除しておく。
[Path]セクションは不要なので削除。 特に「WinDir=…」の項目があると、config.sysの内容にかかわらずbiling.sysとifshlp.sysを自動的に組み込もうとする。
[Options]セクションでは次のようにすると良い。
[Options] BootGUI=0 DOSモードで起動。 DBLSpace=0 DoubleSpaceを使わない。 DRVSpace=0 DriveSpaceを使わない。 ;BootMenu=1 ブートメニュー表示(マルチコンフィグのメニューより先に表示される) Logo=0 起動時にWindowsロゴを表示しない。 DisableLog=1 起動ログファイルbootlog.txtを作らない。 SystemReg=0 起動時にレジストリの検査をしない。(DOSではレジストリ自体が存在しない)
_日本語環境を整える
OS標準のドライバだけで構築した場合、だいたい次のようになる。
config.sys
BUFFERS=20 FILES=30 DOS=HIGH,UMB COUNTRY=081,932,C:\WINDOWS\COUNTRY.SYS SHELL=C:\COMMAND.COM /P /E:512 LASTDRIVE=Z DEVICE=C:\WINDOWS\HIMEM.SYS /NUMHANDLES=128 DEVICE=C:\WINDOWS\EMM386.EXE RAM DEVICEHIGH=C:\WINDOWS\BILING.SYS DEVICEHIGH=C:\WINDOWS\JFONT.SYS /P=C:\WINDOWS\ /U=0 DEVICEHIGH=C:\WINDOWS\SETVER.EXE DEVICEHIGH=C:\WINDOWS\JDISP.SYS DEVICEHIGH=C:\WINDOWS\JKEYB.SYS /106 C:\WINDOWS\JKEYBRD.SYS DEVICEHIGH=C:\WINDOWS\COMMAND\ANSI.SYS /X DEVICEHIGH=C:\WINDOWS\COMMAND\EBD\OAKCDROM.SYS /D:mscd001 DEVICEHIGH=C:\WINDOWS\RAMDRIVE.SYS 16384 512 1024 /E DEVICEHIGH=C:\WINDOWS\KKCFUNC.SYS DEVICE=C:\WINDOWS\COMMAND\MSIMEK.SYS /A3 DEVICEHIGH=C:\WINDOWS\COMMAND\MSIMEI.SYS /D*C:\WINDOWS\COMMAND\MSIMER.DIC /DC:\WINDOWS\COMMAND\MSIME.DIC /N /G /A3 INSTALL=C:\WINDOWS\COMMAND\NLSFUNC.EXE C:\WINDOWS\COUNTRY.SYS
autoexec.bat
@ECHO OFF SET COMSPEC=C:\COMMAND.COM PROMPT $P$G PATH C:\;C:\WINDOWS;C:\WINDOWS\COMMAND SET TEMP=C:\TEMP //一時フォルダ 適当に作る SET TMP=%TEMP% SET TZ=JST-9 MSCDEX.EXE /D:mscd001 /e /k SMARTDRV.EXE DOSKEY.COM
カスタマイズ
_JP.BATとUS.BATの編集
chcpで切り替えるとV-TEXT環境ではフリーズする事があるため、chejを使うようにする。
- ダウンロード:CHEJ(ちぇじぇ) ver 6.10
chejを使うならNSLFUNC.EXEの組み込みは不要。
JP.BAT
単純に「chej jp」で問題ないが、画面モードを判別して処理すると次のようになる。
@echo off chej > nul if errorlevel 9 goto END if errorlevel 8 goto NEXT if errorlevel 1 goto END :NEXT chej jp :END
US.BAT
同様に「chej us」だけでも良い。
@echo off chej > nul if errorlevel 1 goto NEXT goto END :NEXT chej us :END
VT.BAT
V-TEXTに切り替えるバッチ。
@echo off chej > nul if errorlevel 2 goto END chej vt :END
_SVGA以上の解像度で使うには(V-TEXT)
V-TEXT対応ドライバを使うことで、より高解像度の画面表示が可能だが、MS-DOS7の日本語関連ドライバはbiling.sys+jfont.sys+jdisp.sysの組み合わせ以外では問題が出る。
たとえばフォントドライバjfont.sysを$fontx.exeに置き替えると、ディスプレイドライバjdisp.sysはフォントが見つけられず日本語表示が出来なくなる。 また、jdisp.sysをSVGA表示が可能なdispv.exeに置き換えると、DBCSベクターアドレスの取得に失敗、画面モードが判別できず、日本語モードでもメッセージ類が英語で表示される。 biling.sys+jfont.sys+jdisp.sysの組み合わせでないと、biling.sysが正しいDBCSベクターアドレスを返さないのが原因のようだ。
対処方はbiling.sys互換機能を持つフリーのドライバに置き換える。
- bigal.exe(http://hp.vector.co.jp/authors/VA003720/lpproj/)
- biling.com(http://www.vector.co.jp/soft/dos/util/se002740.html)
が使える。 メッセージ類が英語でいいのならbiling.sysを使う必要はない。 $fontx.exe+dispv.exeだけでOK。
_LFNサポート
- DOSLFN(FreeDOSサイト内) 常駐させると、LFN対応済みのDOSプログラムで長いファイル名を使えるようになる(MS-DOS7のコマンド等)。
- VFATアダプタ(Vector) DOSLFNの後に常駐させると、LFN非対応のDOSプログラムでファイルアクセスに(強引に)LFN関係のファンクションを使わせる。 WebBoyではダウンロードしたものを長いファイル名で保存できたり、ローカルのHTMLファイルを閲覧するときに正しくリンクをたどれるようになる。 ただし、LHAはファイルが展開できなくなる等の副作用があるので、アプリに応じて常駐&解除するのが望ましい。
メモ
以前のMS-DOSと比較して、いくつかコマンドが削除されている。 (share.exe, mouse.com, power.exe, defrag, undelete等) 必要ならFreeDOSから流用したり、フリーウェアで代用する。
_FreeDOSのdefragを使うには
前もってsetverでバージョンをごまかしておく。
C:\>setver defrag.exe 6.20
- lockコマンドでHDDをロック
- 英語モードに変更
- defragを実行
- 終了したら日本語モードに戻す
- unlockでHDDのロック解除
lockが必要なのはWindowsの排他制御のなごりと思われる。 一連のコマンドをバッチファイルにしておくと便利。 英語モードにしなくても動くが、表示が正しく行われないので操作が困難。
_マウスドライバ
日本語モードで正しく動く、フリーのマウスドライバはなかなか無い。 DR-DOSのものは表示が異常で、OSごと落ちるのでダメ。 Genious(http://www.geniusnet.com.tw/)のgmouse.comが唯一入手可能。 Windows用マウスドライバファイルに同梱されているので適当にダウンロードして取り出す。 (参考:http://d.hatena.ne.jp/lukewarm/20050426#p2)
_share.exe
ファイルアクセスの排他制御等に必要だが、Windows95OSR2以降ではカーネルに機能が吸収されてしまったため存在せず、代替品もなかなか見つからない。 FreeDOSのものはFreeDOSカーネル依存なため使えず、PC DOSのものはバージョンチェックが厳しくて弾かれる。 MS-DOS6.3かWindows3.1、Datalight ROM-DOSのものが使えるかも?
_fdisk
Windows98/98SEのfdiskはhotfixを適用してもまだ色々と問題があるため、FreeDOSのものや次のツールを使った方がいいかも。
作者のまりもさんのサイト http://hp.vector.co.jp/authors/VA012947/
_必須ソフトウェア
備考
- 2014/03/23 fdiskの修正hotfixのリンクが間違っていたので修正 他
- 2014/03/30 io.sysの修正hotfixのリンクを追加 他
[カテゴリ:DOS]
最終更新時間:2014年03月30日 18時18分50秒