dosemu とは、 Linux 上で動作する DOSエミュレータです。 ここでは、Windows 95/98 (= MS-DOS 7) を用いて、 Linux コンソール上で dosemu を日本語化する方法について説明します。 X Window System上での xdos 日本語化については、こちらを参照してください。
この日本語化した dosemu (以後``日本語 dosemu''と呼ぶことにします)上で、私は VZ(エディタ), FILMTN(ファイル管理ツール), MJL(グラフィックローダ) 等を動かし、 MSIME で漢字変換しています(^^;
日本語化は、Linux 2.0.36 上の dosemu-1.0.0 を対象として説明します。
なお dosemu から見て、ドライブ名と各ファイルシステムは、 次のように設定するように仮定して説明します。
C: dosemu filesystem (/var/lib/dosemu/hdimage) D: Windows 9X filesystem /dev/hda1 (\windows に Windows 95/98 install) E: Linux filesystem /dev/hda2 (/)
(参考までに、しょうちゃんの /etc/dosemu.confを見てみる)
以下に``日本語dosemu''の設定方法を説明します。
% tar zxvf /tmp/dosemu-1.0.0.tgz % cd dosemu-1.0.0 % make You choose not to run ./default-configure, doing it now ./default-configure . ./base-configure --enable-force-slang --enable-monoton-timing --enable-new-intcode --enable-aspi creating cache ./config.cache checking host system type... i686-unknown-linux ... ... ... creating ./config.status creating Makefile.conf creating src/include/config.h Configure finished. Do 'make' to compile Dosemu. Now resuming make make[1]: Entering directory `/home/naka/dosemu-1.0.0j' make[2]: Entering directory `/home/naka/dosemu-1.0.0j/src' Starting DOSEMU VERSION.0 compile... -> IMPORTANT! - Please read 'QuickStart' file before compiling DOSEMU! - Location and format of DOSEMU files have changed since 0.50pl1! -> REQUIREMENTS for DOSEMU: - gcc 2.7.2 - libc 5.4.7 - Linux >= 2.0.28, 2.1.x >= 2.1.15 - 16 megabytes total memory+swap ====> Press Enter to continue, or hit Ctrl-C to abort <==== make[3]: Entering directory `/home/naka/dosemu-1.0.0j/src/tools' gcc -O2 tools86.c -o tools86 make[3]: Leaving directory `/home/naka/dosemu-1.0.0j/src/tools' make[3]: Entering directory `/home/naka/dosemu-1.0.0j/src/commands' gcc -E -D__AS86__ --traditional -I../include exitemu.S > exitemu.s ... ... ... -Wl,-b,a.out-i386-linux base/bios/bios.o env/video/vesabios.o \ -Wl,-b,elf32-i386 \ -Wl,-rpath,/usr/X11R6/lib -L/usr/X11R6/lib -lXext -lX11 -lXmu -larch_linux_slang-elf -lm -lc lib/libbase_misc.a(disks.o): In function `read_sectors': disks.o(.text+0x415): the `llseek' function may be dangerous; use `lseek64' instead. ---------------------------------DONE compiling------------------------------- Now you must install DOSEMU. Make sure you are root and: make install make[2]: Leaving directory `/home/naka/dosemu-1.0.0j/src' make[1]: Leaving directory `/home/naka/dosemu-1.0.0j' % su Password: bash# which mkfontdir which: no mkfontdir in (/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin) bash# export PATH=$PATH:/usr/X11R6/bin bash# which mkfontdir /usr/X11R6/bin/mkfontdir bash# make install make[1]: Entering directory `/home/naka/dosemu-1.0.0j/src' -> Main DOSEMU files installation done. Installing the Xwindows PC-8 font... make -C ../man install make[2]: Entering directory `/home/naka/dosemu-1.0.0j/man' make[2]: Leaving directory `/home/naka/dosemu-1.0.0j/man' ---------------------------------DONE Installing------------------------------- - You need to configure DOSEMU. Read './doc/README.txt' and update your - configuration by copying/editing dosemu.conf from './etc' to '/etc' - After configuring DOSEMU, you can type 'dos' to run DOSEMU. - Use 'dosexec' instead of 'dos' to cause DOSEMU execute a DEXE. - Use 'xdos' instead of 'dos' to cause DOSEMU to open its own Xwindow. - Type 'xset fp rehash' before running 'xdos' for the first time ever. - To make your backspace and delete key work properly in 'xdos', type: xmodmap -e "keycode 107 = 0xffff" xmodmap -e "keycode 22 = 0xff08" xmodmap -e "key 108 = 0xff0d" [Return = 0xff0d] - Try ./commands/emumouse.exe -r if your INTERNAL mouse won't work - Try ./commands/unix.exe to run a Unix command under DOSEMU make[1]: Leaving directory `/home/naka/dosemu-1.0.0j/src'
% su bash# cp ./etc/dosemu.users.easy /etc/dosemu.users bash# ./first_test
Allocation completed: top at 0x12c8:0x0400 CONFIG.SYS not found KERNEL: Boot drive = C DOS-C compatibility 3.31 (C) Copyright 1995, 1996, 1997, 1998 Pasquale J. Villani All Rights Reserved DOS-C version 1.0 Beta 2 [FreeDOS Release] (Build 1937). DOS-C is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. For technical information and description of the DOS-C operating system consult "FreeDOS Kernel" by Pat Villani, published by Miller Freeman Publishing, Lawrence KS, USA (ISBN 0-87930-436-7). Running dosemu-1.0.0.0 compatibility, DosC patch 1 Process 0 starting: command.com "Welcome to dosemu 1.0!" C:\>dosemu が立ちあがることを確認したら、 c:\exitemu で終了します。
... mail::12:mail news::13:news uucp::14:uucp man::15:man dosemu::20:root,naka users::100:games nogroup::-2:
DEVICE=BILING.SYS DEVICE=JFONT.SYS /MSG=OFF DEVICE=JDISP.SYS /HS=LC rem DEVICE=JKEYB.SYS rem DEVICE=HIMEM.SYS
bash# vi /etc/dosemu.conf
$_video = "vga" # one of: plainvga, vga, ega, mda, mga, cga $_console = (1) # use 'console' video $_graphics = (1) # use the cards BIOS to set graphics $_vmemsize = (2048) # size of regen buffer $_chipset = "trident" # one of: plainvga, trident, et4000, diamond, avance
$_video = "vga" # one of: plainvga, vga, ega, mda, mga, cga $_console = (1) # use 'console' video $_graphics = (1) # use the cards BIOS to set graphics $_vmemsize = (1024) # size of regen buffer $_chipset = "plainvga" # one of: plainvga, trident, et4000, diamond, avance
$_rawkeyboard = (1) # bypass normal keyboard input, maybe dangerousLinux コンソール上で日本語 106キー配列を使う場合、 auto でもいいのですが、jp106 と指定した方が調子が良いように思えます。
$_layout = "jp106" # one of: finnish(-latin1), de(-latin1), be, it, us # uk, dk(-latin1), keyb-no, no-latin1, dvorak, po # sg(-latin1), fr(-latin1), sf(-latin1), es(-latin1) # sw, hu(-latin2), hu-cwi, keyb-user # hr-cp852, hr-latin2, cz-qwerty, cz-qwertz. # Or 'auto' (which tries to generate the table from # the current Linux console settings)xdos 上で "\" キーを X Window System 上で入力できるように、 「dosemu のキーテーブルを経由して変換しない」に設定。
$_X_keycode = (off) # on == translate keybord via dosemu keytables # or 'off' or 'auto'
(参考までに、しょうちゃんの /etc/dosemu.confを見てみる)
% su bash# df Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda2 365471 330722 15245 96% / /dev/hda1 122688 64024 58664 52% /dos bash# umount /dos bash# df Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda2 365471 330722 15245 96% / bash# ./setup-hdimage checking you partitions, wait... ...done I've seen the following bootable DOS partitions: /dev/hda1 If none of them are valid, you can continue any way using a bootable floppy as input. Which one do you want to use as input? Type in the full device name or ENTER to cancel /dev/hda1 A normal MSDOS system has command.com as shell. If you have a different one, please enter the name, else just type ENTER We now try to generate a bootable hdimage into /var/lib/dosemu/hdimage.first and are calling ./dexe/mkdexe for this. You will be prompted to edit the configuration files (config.sys, autoexec.bat e.t.c). Enter the name of your favorite editor, if you type just ENTER, the editor given via the EDITOR enviroment variable will be used. mule ←(改行コードを変更せず、そのまま扱えるエディタが良い) Starting ... System type is WIN95. sysfiles: io.sys, msdos.sys, windows/command.com 1+0 records in 1+0 records out Copying io.sys Copying msdos.sys Copying command.com Copying aspi.sys Copying autoexec.bat ... ... ... Copying xmode.exe ------------ MSDOS.SYS の編集 WIN9X の MSDOS.SYS は以下のように修正すること。 修正しない場合は、起動時にセーフモードのメニューが出てしまうので、注意 ↓↓↓↓↓↓↓↓ [Options] Logo=0 BootGUI=0 ;FORMAT ↑↑↑↑↑↑↑↑ ------------ config.sys はそのまま ------------ autoexec.bat はそのまま ... done bash# ls -l /var/lib/dosemu/hdimage.first -rwxrwxr-x 1 root dosemu 1253376 Jun 17 19:36 /var/lib/dosemu/hdimage.first bash# cp -p /var/lib/dosemu/hdimage.first /var/lib/dosemu/hdimage
% su bash# dos -Aこれでフロッピベースによる``日本語dosemu''が Linux コンソール上で 動くと思います。 なお、dosemu の終了は c:\exitemu もしくは、c: でドライブC に移ってから exitemu を入力します。
A:> sys c:※ hdimage を作る時に転送済のはずですが念のため
rem this sets up the redirector to look at the Linux root directory. rem this is probably not a good idea once you have dosemu installed device=c:\emufs.sys / device=c:\ems.sys FILES=30 STACKS=9,256 DOS=HIGH,UMB devicehigh=d:\windows\setver.exe devicehigh=d:\windows\biling.sys REM MS-DOS/V 日本語表示ドライバ devicehigh=d:\windows\jfont.sys /MSG=OFF devicehigh=d:\windows\jdisp.sys /HS=LC REM xdos 日本語表示ドライバ REM devicehigh=c:\emudisp.sys REM devicehigh=d:\windows\jkeyb.sys /106 d:\windows\jkeybrd.sys REM Windows 95 の場合 devicehigh=d:\windows\ansi.sys REM Windows 98 の場合 REM devicehigh=d:\windows\command\ansi.sys devicehigh=d:\windows\kkcfunc.sys REM MS IME用の設定です. devicehigh=d:\windows\command\msimek.sys /A1 devicehigh=d:\windows\command\msime.sys /D*d:\windows\command\msimer.dic /Dd:\windows\command\msime.dic /C1 /N /A1
@echo off echo "Welcome to dosemu 1.0!" PROMPT $p$g PATH d:\windows\command;d:\uty;c:\ set temp=d:\tmp set path=%PATH%;d:\air set air=d:\air set tmp=d:\windows\dos set tz=jst-9 LH d:\windows\nlsfunc.exe d:\windows\country.sys JP
このような設定を行なって dosemu を dos コマンドで起動すると、
``日本語dosemu''のプロンプトを見ることができるでしょう。
なお、もし Windows 95/98 起動画面(青空に田が出ている絵)が表示されるのであれば
以下のように起動ドライブにある msdos.sys で Logo=0 を設定してください。
[Options] Logo=0 BootGUI=0 ;FORMAT
それから、exitemu で dosemu を終了したとき、 画面が消えてしまうマシン(winbook pro 100C)もあるようです。 そのような時には、us コマンドで英語モードにしてから exitemu コマンドで終了すると良いようです。
上記の設定(jfont.sys,jdisp.sys)で、 X11 上においても日本語dosemu (xdos) が一応動きますが、 非常に遅く動作も少し変なので、あまり実用的ではありません。 遅い原因は、日本語フォントを``X11 でエミュレーションされた VGA ウィンドウ''上に ちまちま と描画しているためですが、 まだ VGA 16色モードのエミュレーションが良くないようです。
そこで日本語フォント展開を X11 自体で行なうように変更して、 dosemu 1.0.0 をX環境上で日本語化するパッチ があります、1.0.0 でトライしたい方は試してみてください。 これを使えば xdos を実用的な速度で日本語化できます。