The dosemu HOWTO

Mike Deisher. Updated by Uwe Bonnes for dosemu-0.64.4, 15 March 1997. Updated by David Hodges, davidhodges@altavista.iname.com

For dosemu-1.2, 27 September 2003

This is the `Frequently Asked Questions' (FAQ) / HOWTO document for dosemu. The most up-to-date version of the dosemu-HOWTO may be found at http://www.dosemu.org.


Table of Contents
1. The preliminaries
1.1. What is dosemu, anyway?
1.2. What operating systems does dosemu work under?
1.3. What processors does dosemu work on?
1.4. What if I have an Alpha/Sparc/Motorola/other non-Intel CPU?
1.5. Do I need MS-DOS to use dosemu?
1.6. Can I run Microsoft Windows programs under dosemu?
1.7. I want to run something that won't run under DOSemu or Wine
1.8. Names and numbers
1.9. What version of Dosemu should I use?
1.10. What's the newest version of dosemu and where can I get it?
1.11. Where can I ask questions?
1.12. Where can I report bugs and ask questions?
1.13. What documentation is available for dosemu?
1.14. I have a program that fails, not listed in EMUfailure.txt
1.15. How do I submit changes or additions to the HOWTO?
1.16. Message from Greg...
2. Compiling and installing dosemu
2.1. Where are the installation instructions?
2.2. Top problems while compiling and installing dosemu.
2.3. How do I make a.out binaries?
2.4. How do I compile dosemu on a machine with low memory?
2.5. Compilation fails with some strange error regarding "slang"
2.6. What configurable options are available?
2.7. Do I need to run dosemu as root?
2.8. How do I patch dosemu?
2.9. What versions of DOS are known to run with dosemu?
3. Hard disk setup
3.1. How do I use my hard disk with dosemu?
3.2. How can I access the hdimage from Linux?
3.3. Can I use my stacked/double-spaced/super-stored disk?
3.4. Creating your own hdimage file.
4. Parallel ports, serial ports and mice
4.1. Port access worked with older version, but doesn't work now!
4.2. Port access was faster with older versions!
4.3. Where are the (microsoft compatible) mouse drivers?
4.4. Why doesn't the mouse driver work?
4.5. Why does dosemu clobber COM4?
4.6. How do I use dosemu over the serial ports?
4.7. How can I switch between dosemu and a shell over the serial line?
4.8. How can I get the parallel ports to work?
5. Multiple users and Non-interactive sessions
5.1. Can I use dosemu on a multi-user system?
5.2. How can I run dos commands non-interactively?
6. dosemu and Netware
6.1. How do I get Netware access from dosemu?
7. dosemu and X-windows(97/2/9).
7.1. How do I obtain fullscreen mode in xdosemu?
7.2. Can I run dosemu in console mode while running X?
7.3. Is it possible to run dosemu in a window in X-windows?
7.4. Xdosemu does not work on a remote X-display!
7.5. Xdosemu does not find the VGA font
7.6. The vga font is very small on my high resolution display
7.7. Dosemu compilation fails with some strange error regarding X!
7.8. Does ansi emulation work properly?
8. dosemu and MS-Windows 3.x
8.1. Is it possible to run MS-Windows 3.x under dosemu?
8.2. Can I run 32bit stuff in Windows?
8.3. Can I run Windows 3.x in xdosemu
8.4. Can I install windows from within dosemu?
8.5. Notes for the mouse under win3.x-in-xdosemu:
9. Video and sound
9.1. Can I run 32-bit video games under dosemu?
9.2. Exiting from dosemu on the console gives me a screen full of garbage.
9.3. Why doesn't my soundcard software work with dosemu?
10. Problems and fixes
10.1. Security issues
10.2. dosemu says "ERROR: general protection" and terminates when I run some program
10.3. Dosemu dies when booting. I have Win95 installed.
10.4. Dosemu hangs! How can I kill it?
10.5. Dosemu crashed and now I can't type anything.
10.6. I've enabled EMS memory in dosemu.conf but it does not help.
10.7. How do I get rid of all those annoying "disk change" messages?
10.8. Why won't dosemu run a second time after exiting in console mode?
10.9. Why will dosemu run in a term but not in the console?
10.10. How can I speed up dosemu?
10.11. How do I see debugging output?
10.12. Why are my keystrokes echoed ttwwiiccee??
10.13. Dosemu scrambles my screen?
10.14. MS FoxPro 2.6 won't run
11. Contributing to the dosemu project
11.1. Who is responsible for dosemu?
11.2. I want to help. Who should I contact?

1. The preliminaries

1.1. What is dosemu, anyway?

To quote the manual, "dosemu" is a user-level program which uses certain special features of the Linux kernel and the 80386 processor to run MS-DOS/FreeDOS/DR-DOS in what we in the biz call a `DOS box.' The DOS box, a combination of hardware and software trickery, has these capabilities:

  • the ability to virtualize all input/output and processor control instructions

  • the ability to support the word size and addressing modes of the iAPX86 processor family's "real mode," while still running within the full protected mode environment

  • the ability to trap all DOS and BIOS system calls and emulate such calls as are necessary for proper operation and good performance

  • the ability to simulate a hardware environment over which DOS programs are accustomed to having control.

  • the ability to provide DOS services through native Linux services; for example, dosemu can provide a virtual hard disk drive which is actually a Linux directory hierarchy.

1.2. What operating systems does dosemu work under?

Dosemu is primarily written for Linux. At one time it also worked on NetBSD and possibly FreeBSD, however the graphics emulation was unlikely to work on NetBSD, which means that all DOS programs that use graphics mode (most DOS programs) did not work under NetBSD.

1.3. What processors does dosemu work on?

Dosemu only works on Intel 80x86 processors, e.g. 80386, 80486, Pentium etc.

1.4. What if I have an Alpha/Sparc/Motorola/other non-Intel CPU?

Dosemu only works on Intel 80x86 processors but there are alternatives: Bochs (http://bochs.sourceforge.net) is an open source PC emulator that runs on most Unixes (as well as MS-Windows). DOSBox (http://dosbox.sourceforge.net) also emulates the CPU but specializes in DOS games. QEMU (http://fabrice.bellard.free.fr/qemu/index.org.html) can launch Linux processes compiled for one CPU on another CPU. Wine and DOSEMU are the main targets for QEMU. There are other (non-free) alternatives - see the comp.emulators.misc FAQ, available via usenet or http://www.faqs.org/faqs/emulators-faq/

1.5. Do I need MS-DOS to use dosemu?

No. You need some version of DOS but not necessarily MS-DOS. The supplied FreeDOS will do for almost all DOS programs. One notable exception is Windows 3.x. See also Section 2.9.

1.6. Can I run Microsoft Windows programs under dosemu?

Yes, but it would be better to use the Windows emulator Wine (http://www.winehq.com). If you insist on running Windows under dosemu, see section 8 - dosemu and MS-Windows 3.1.

1.8. Names and numbers

(xx/yy/zz)

means day zz in month yy in year xx.

winemu

winemu mean WinOS/2 running in dosemu.

1.9. What version of Dosemu should I use?

Dosemu uses the same numbering scheme as the kernel used. Uneven second numbers are for possible unstable developer releases, even second numbers are for releases considered stable. At the time of writing, 1.4.0 is the latest stable release, while 1.3.5 is the latest developer's release. So if you just want to use dosemu, get the latest stable release.

1.10. What's the newest version of dosemu and where can I get it?

The newest stable version of dosemu as of 2007/05/05 is dosemu-1.4.0 and can be obtained at http://www.dosemu.org/.

We just decided to leave BETA stage, however: there may be serious bugs and very little documentation for new features. The development version is particularly likely to have bugs. Please use it only if you like to do active development. Preferably fix bugs in the development version instead of reporting them.

1.11. Where can I ask questions?

If you have problems regarding installing and running dosemu after reading the documentation, first try to help yourself: Your question has probably been asked and perhaps answered before. Try some search engine on the internet to retrieve that information. E.g. you can ask http://groups.google.com to find all newsnet articles containing the keywords of your question. Helping yourself will probably be faster than asking a well known question. It also frees up the time of developers from answering trivial questions and so helps the further development of dosemu.

1.12. Where can I report bugs and ask questions?

If you want to ask questions and report bugs regarding dosemu, you should consider subscribing to the linux-msdos mailing list. To subscribe, send mail to Majordomo@vger.kernel.org with the following command in the body of your email message:

    subscribe linux-msdos your_username@your.email.address

If you ever want to remove yourself from the mailing list, you can send mail to Majordomo@vger.kernel.org with the following command in the body of your email message:

    unsubscribe linux-msdos your_username@your.email.address

(95/8/11). When you are subscribed to linux-msdos, you can send your report as mail to linux-msdos@vger.kernel.org. There is a gate that send mails to linux-msdos@vger.kernel.org as postings to the newsgroup named linux.dev.msdos. If your News provider doesn't carry that group, ask her(him) to add that group. Before you ask a question, you should carefully read all of the documentation, including this HOWTO and check one of the mailing list archives listed at http://www.dosemu.org/mailinglist.html to see whether your question has already been asked and answered.

Alternatively, use the SourceForge Bug Tracking System for DOSEMU at http://sourceforge.net/tracker/?atid=457447&group_id=49784&func=browse. The advantage of this system is that your bug is less likely forgotten.

1.13. What documentation is available for dosemu?

Dosemu comes with documentation. The main documentation files README.txt and README-tech.txt cover virtually all aspects of dosemu and may be more up-to-date than this HOWTO.

The "dosemu Novice's Altering Guide" or DANG is a road map to the inner workings of dosemu. It is designed for the adventurous, those who wish to modify the source code themselves. The DANG is maintained by Alistair MacDonald (alistair@slitesys.demon.co.uk) and is found in the doc directory of the dosemu source tree.

The EMU failure list (EMUfailure.txt) is a partial list of programs known not to work under dosemu.

And then, of course, there is the dosemu FAQ/HOWTO. But you already know about that, don't you. It is also posted once in a while to the mailing list and found in the doc-directory. The most recent version can be found at http://www.dosemu.org.

1.14. I have a program that fails, not listed in EMUfailure.txt

First check, if the failure of your program is not caused by some of the fundamental incapabilities of dosemu, listed in EMUfailure.txt. If you think you have something new, please report to linux-msdos@vger.kernel.org. Perhaps it can be made going with the help others. Give detailed information about your setup, tell the version of kernel, dosemu etc and name the observed errors. You can use xdosemu to cut and paste the error message into your report. But keep your report in a readable form. We know the content of the commented out options. So only send the active lines from your dosemu.conf and ~/.dosemurc. Try running dosemu with some or all debug output turned on and scan through your debug output and at first only send those parts you think are relevant. Few people are willing to decode some long attachment to a mail, to do debugging for others. But keep your logs at hand, in case others ask detailed questions.

1.15. How do I submit changes or additions to the HOWTO?

The preferred method is to edit the file dosemu-HOWTO-xx.x.sgml to incorporate the changes, create a diff file by typing something like:

    diff -uw original-file new-file

and send it to linux-msdos@vger.kernel.org. If you do not know SGML, that's ok. Changes or new information in any form will be accepted. Creating the diff file just makes it easier on the HOWTO maintainer. :-)

1.16. Message from Greg...

Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions.

All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO coordinator at the address given below.

In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would like to be notified of any plans to redistribute the HOWTOs.

If you have questions, please contact Greg Hankins, the Linux HOWTO coordinator, at gregh@cc.gatech.edu(95/8/11).