DOSEMU The DOSEMU team Alistair MacDonald alistair@slitesys.demon.co.uk For DOSEMU v1.4 pl0.0 This document is the amalgamation of a series of README files which were created to deal with the lack of DOSEMU documentation. Introduction You can start DOSEMU using $ dosemu If you have never used DOSEMU before, and FreeDOS is present, then DOSEMU will boot, and present you with a welcome screen and a C:\> command prompt. If for some reason it does not start, or DOSEMU crashes somewhere, look at ~/.dosemu/boot.log for details. Remember, that you can't use <Ctrl>-C within DOS to exit from DOS. For this you need to execute exitemu or, when using the 'DOS in a BOX' <Ctrl><Alt><PgDn> . Your DOS drives are set up as follows: A: floppy drive (if it exists) C: points to the Linux directory ~/.dosemu/drive_c. It contains the files config.sys, autoexec.bat and a directory for temporary files. It is available for general DOS use. D: points to your Linux home directory E: points to your CD-ROM drive, if it is mounted at /media/cdrom Z: points to the read-only DOSEMU and FreeDOS commands directory It actually points to ~/mydos/dosemu/drive_z; it appears read-only inside DOSEMU. You can use the LREDIR DOSEMU command to adjust these settings, or edit /etc/dosemu/dosemu.conf, ~/.dosemurc, c:\config.sys, or c:\autoexec.bat, or change the symbolic links in ~/.dosemu/drives. Enter HELP for more information on DOS and DOSEMU commands. Note that FreeDOS COMMAND.COM DIR command shows long file names if you type DIR/LFN. Other useful keys are: <Ctrl><Alt><F> toggle full-screen mode in X <Ctrl><Alt><K> grab the keyboard in X <Ctrl><Alt><Home> grab the mouse in X <Ctrl><Alt><Del> reboot <Ctrl><^> use special keys on terminals (dosemu -t) DOSEMU modes of operation There exist various ways of starting DOSEMU, depending on the environment and certain command line options. By default, in X, it will start using a special 'DOS in a Box' which provides a usual PC setup, using a 80x25 text mode. It also supports graphics. The box can be rescaled by dragging the window borders using the mouse. However, in certain situation you may want to use a different mode. Terminal mode Terminal mode is automatically entered if you do not have X available, for instance when logging in remotely from a Windows system or at the Linux console. You can force it using: $ dosemu -t In this mode the display of graphics is impossible, but you can use full-screen DOS text mode applications. It is advisable to give the terminal window a size of 80 by 25 characters, or use "stty cols 80 rows 25" on the Linux console, before starting it because many DOS applications are confused about other sizes. You can use the $_internal_char_set option in ~/.dosemurc or dosemu.conf to change the code page that DOSEMU thinks that DOS is using. Many terminals do not support various function key combinations. On the Linux console you can work around that by using the raw keyboard mode (-k flag, or $_rawkeyboard). xterm's support many key combinations. In other cases you'll have to work around it using the special Ctrl-^ shortcut (Ctrl-6 on US keyboards). Press Ctrl-^ h for help. Dumb mode For DOS applications that only read from standard input and write to standard output, without any full-screen usage, you can use dumb mode. To use this you must invoke DOSEMU like $ dosemu -dumb this has the advantage that (A) the output of the DOS application stacks up in your scroll buffer and (B) you can redirect it to a file such as $ dosemu -dumb dir > listing Note that editing is often restricted to BACKSPACE'ing. SDL mode You can start dosemu with the "-S" option to use the SDL library. In X it will just look like a regular DOS in a Box but with a different shaped text mode mouse cursor. You can also use this mode on frame buffer consoles. Console graphics mode Console graphics mode is the hardest to setup and may potentially lock up your system, but if it works it gives you direct VGA hardware access which may be quicker and more accurate than the emulation used in X. You need root rights to use it. To enable it, it is recommended to use "sudo": install sudo if you haven't already done so use visudo as root to add entries such as joeuser hostname=(root) PASSWD: /usr/local/bin/dosemu.bin to your /etc/sudoers file, where "joeuser" is the user who is allowed to run privileged DOSEMU and "hostname" is the name of your current host (use "ALL" for any host). if you change PASSWD to NOPASSWD then joeuser does not need to type the user's password (not root's password) when invoking DOSEMU (a little less secure, if somebody hacks into joeuser's account). now invoke DOSEMU using dosemu -s Running a DOS program directly from Linux. You can use something like dosemu "/home/clarence/games/commander keen/keen1.exe" which will automatically cause the DOS in DOSEMU to "cd" to the correct directory, execute the program automagically, and quit DOSEMU when finished. Using a different DOS It is possible to use a different DOS than the supplied FreeDOS in DOSEMU. A straightforward way is to just copy the relevant system files (io.sys, msdos.sys, etc.) to ~/.dosemu/drive_c, and then the next time you run dosemu it will automatically use them. You may need to edit config.sys and autoexec.bat though, if the DOS complains. Another way is to boot directly from a Linux mounted FAT partition, with Windows 9x or any DOS installed. You can change the C: drive to point to that by using dosemu -i. In that case the DOSEMU support commands are available on drive D: instead of drive Z:. You might want to use different config.sys and autoexec.bat files with your DOS. For example, you can try to copy D:\config.emu and D:\autoemu.bat to C:\, adjust them, and use the $_emusys option in ~/.dosemurc or dosemu.conf. Manual adjustment of the C: drive is also possible, by changing the ~/.dosemu/drives/c symbolic link or by specifying it explicitly using the $_hdimage run-time option. About this document The rest of this document goes into more detail about all the different settings and possibilities. This documentation is derived from a number of smaller documents. This makes it easier for individuals to maintain the documentation relevant to their area of expertise. Previous attempts at documenting DOSEMU failed because the documentation on a large project like this quickly becomes too much for one person to handle.