
<!-- This is the dosemu HOWTO, SGML source -- >
<!-- Mike Deisher, deisher@dspsun.eas.asu.edu -->
<!-- Now Uwe Bonnes, bon@elektron.ikp.physik.th-darmstadt.de -->
<!-- Last edited: Time-stamp: <97/04/27 12:03:23 bon> -->

<!-- Changelog -->
<!-- 97/04/27: No .386 with winemu -->
<!-- 97/04/17: Greg's corrections for my typos -->
<!-- 97/04/08: Hans changes to common errors -->
<!--         : tips to restore console -->
<!--         : Tips for Foxpro 2.6 -->
<!-- 97/04/03: Don't use Dos 4.01 -->
<!-- 97/3/07: Msdos.sys settings to boot Dos7 -->
<!-- 97/2/28: Considerations on command.com and different Dos-Versions -->
<!--          Numbering scheme -->
<!-- 97/2/17: Tell about use_sigio -->
<!-- 97/2/16: Section for hints with games, date change -->
<!-- 97/2/15: Tell about present sound efforts -->
<!-- 97/2/13: Installing windows -->
<!-- 97/2/13: Some xdos fonts hints -->
<!-- 97/2/12: Some typos Hans noticed -->
<!--          Hints for configure -->
<!-- 97/2/11: Changes from Hans (diff) and Erik Mouw incorporated -->
<!--          Tell explicit some security issues -->
<!--          Tips for winemu/progman -->

<!doctype linuxdoc system>

<article>

<title>The dosemu HOWTO
<author>by Mike Deisher. 
 Updated by Uwe Bonnes, 
<bf><htmlurl url="mailto:bon@elektron.ikp.physik.th-darmstadt.de"
name="bon@elektron.ikp.physik.th-darmstadt.de"></bf>
<date>For dosemu-0.64.4 (in progress), 15 March 1997

<abstract>
This is the `Frequently Asked Questions' (FAQ) / HOWTO document for
dosemu.  The most up-to-date version of the dosemu-HOWTO may be found
in <bf><htmlurl
url="ftp://ftp.mathematik.th-darmstadt.de:/pub/linux/bonnes/"name="ftp.mathematik.th-darmstadt.de:/pub/linux/bonnes/"></bf>.
</abstract>

<toc>

<sect>The preliminaries

<sect1>What is dosemu, anyway?

<p>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 in what we in the biz call a `DOS box.'  The DOS box, a
combination of hardware and software trickery, has these capabilities:

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

  o 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

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

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

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

<sect1>Names and numbers
<p>
<tscreen>(xx/yy/zz) means day zz in month yy in year xx(97/2/9).</tscreen>
<tscreen>winemu mean WinOS/2 running in dosemu(97/2/10).</tscreen>

<sect1>What version of Dosemu should I use?
<p>Dosemu uses the same numbering scheme as the kernel. Uneven second
numbers are for possible unstable developper releases, even second numbers
are for releases considered stable. At the time of writing, <bf>0.64.4</bf>
is the latest stable release, while <bf>0.65.0.6</bf> ist the latest
developper's release. So if you want to use dosemu, get the latest
<bf>stable</bf> release (97/02/28).

<p>
<tscreen>(xx/yy/zz) means day zz in month yy in year xx(97/2/9).</tscreen>
<tscreen>winemu mean WinOS/2 running in dosemu(97/2/10).</tscreen>

<sect1>What's the newest version of dosemu and where can I get it?

<p>The newest version of dosemu as of (97/2/9) is
<bf>dosemu0.64.4</bf> and can be ftp'ed from:
<tscreen>
     <htmlurl url="ftp://tsx-11.mit.edu:/pub/linux/ALPHA/dosemu/"
     name="tsx-11.mit.edu:/pub/linux/ALPHA/dosemu/">
</tscreen> 
<tscreen>
     <htmlurl url="ftp://ftp.suse.com:/pub/dosemu/"
     name="ftp.suse.com:/pub/dosemu/">
</tscreen> 

However, pre-release versions are also available for developers and
ALPHA testers.  They can be retrieved from:
<tscreen>
      <htmlurl url="http://www.ednet.ns.ca/auto/rddc"
      name="http://www.ednet.ns.ca/auto/rddc">
</tscreen>
Remember that this is ALPHA code, however: there may be serious bugs
and very little documentation for new features. At present, the
development version is known to have bugs. Please use it only if you
like to do active development. Don't report bugs in the development
version, fix them instead.

<sect1>Where can I ask questions?

<p>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
<tscreen>
     <htmlurl url="http://www.dejanews.com"
     name="http://www.dejanews.com">
</tscreen>

to find all newsnet articles containing the keywords of your
question. Helping yourself will probably be faster than asking a well
known question. It too frees up the time of developpers from answering
trivial question and so helps the further development of dosemu(97/2/9) .

<sect1>Where can I report bugs and ask questions?

<p>If you want to ask questions and report bugs regarding dosemu, you
should consider subscribing to the linux-msdos-digest mailing list.
To subscribe, send mail to <bf><htmlurl
url="mailto:Majordomo@vger.rutgers.edu"name="Majordomo@vger.rutgers.edu"></bf>
with the following command in the body of your email message:
<verb>
    subscribe linux-msdos-digest your_username@your.email.address
</verb>
If you ever want to remove yourself from the mailing list, you can
send mail to <bf><htmlurl
url="mailto:Majordomo@vger.rutgers.edu"name="Majordomo@vger.rutgers.edu"></bf>
with the following command in the body of your email message:
<verb>
    unsubscribe linux-msdos-digest your_username@your.email.address
</verb>
(95/8/11). When you are subscribed to linux-msdos, you can send your
report as mail to linux-msdos@vger.rutgers.edu. There is a gate that
send mails to linux-msdos@vger.rutgers.edu as postings to the
newsgroup named <bf>linux.dev.msdos</bf>. If your News provider
doesn't carry that group, ask her(him) to add that group(97/2/10). 

<sect1>Where can I follow the development?

<p>If you want to follow the development of dosemu, there is a mailing
list for developpers.  To subscribe, send mail to <bf><htmlurl
url="mailto:Majordomo@ednet.ns.ca"name="Majordomo@ednet.ns.ca"></bf>
with the following command in the body of your email message:
<verb>
    subscribe msdos-devel your_username@your.email.address
</verb>
If you ever want to remove yourself from the mailing list, you can
send mail to <bf><htmlurl
url="mailto:Majordomo@ednet.ns.ca"name="Majordomo@ednet.ns.ca"></bf>
with the following command in the body of your email message:
<verb>
    unsubscribe dosemu-devel your_username@your.email.address
</verb>
<bf>Please</bf>, don't use this list for the things
linux-dosemu-digest is thought for. Contributions to msdos-devel
should concern the further development of dosemu. Normal installation
problems shouldn't be reported here, and are normally ignored by those
reading that list(97/2/9).

<sect1>What documentation is available for dosemu?

<p>The dosemu manual (<bf>dosemu.texinfo</bf>) written by Robert
Sanders has not been updated in some time but is still a good source
of information.  It is distributed with dosemu.

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 (<bf><htmlurl url="mailto:alistair@slitesys.demon.co.uk"name="alistair@slitesys.demon.co.uk"></bf>) and is
found in the doc-directory of the dosemu source tree.


The EMU failure list (EMUfailure.txt) is a list of all programs known
<bf>not</bf> 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 in
<bf><htmlurl
url="ftp://ftp.mathematik.th-darmstadt.de:/pub/linux/bonnes/"name="ftp.mathematik.th-darmstadt.de:/pub/linux/bonnes/"</bf>(97/2/9).

<sect1>I have a program that fails, not listed in EMUfailure 
<p>First check, if the failure of your program is not caused by some
of the fundamental incapabilities of dosemu, listed in EMUfailure. If
you think you have something new, please report to 
<htmlurl url="mailto:linux-msdos@vger.rutgers.edu"
         name="linux-msdos@vger.rutgers.edu">.
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 xdos to cut and paste the
error message into your report. But keep your report in a readable
form. We know the content of ../etc/config.dist. So only send the
active lines from your dosemu.conf. 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 keeps your logs at hand, if others ask detailed(97/2/10).



<sect1>How do I submit changes or additions to the HOWTO?

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

<tscreen>
               diff -uw original-file new-file
</tscreen>

and send it to <bf><htmlurl
url="mailto:bon@elektron.ikp.physik.th-darmstadt.de"name="bon@elektron.ikp.physik.th-darmstadt.de"</bf>.
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.  :-)(97/2/9)


<sect1>Message from Greg&hellip;

<p>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).

<sect>Compiling and installing dosemu

<sect1>Where are the installation instructions?

<p>The installation instructions are in the file, "QuickStart",
included in the distribution.

<sect1>Top ten problems while compiling and installing dosemu.

<p>

1. Forgetting to read the <bf>QuickStart</bf> Guide.

2. Try to compile some old version of dosemu.

3. Try to compile with a kernel older than 2.0.28 or 2.1.15.

4. Having the wrong linux kernel source sitting in <bf>/usr/src/linux</bf>
   or missing <bf>/usr/src/linux/include/version.h</bf>

5. Use dosemu with a kernel that does not have <bf>IPC</bf> compiled in.

<!-- FIXME-->
6. Compile with gcc older than 2.7.2 or libc older than x.x.x.
<!-- END FIXME-->

7. Forget to edit your <bf>/etc/dosemu.conf</bf> file.

8. Run DOSEMU with partition access while they are already mounted.

9. Don't install dosemu with sufficient privileges (i.e., root).
(97/04/08)

<sect1>How can I use dosemu on an older version of the Linux Kernel.

<p>If you still use 1.2.13 and can't upgarde for some reasons, use
<bf>dosemu-0.60.4</bf>. If you use some version of dosemu below 2.0.28
and 2.1.15, Hans Lermen (<bf><htmlurl
url="mailto:lermen@elserv.ffm.fgan.de"name="lermen@elserv.ffm.fgan.de"</bf>)
reported (97/1/25 and 97/2/11)
<tscreen>
> Is the dosemu-0.64.3.tgz version of dosemulator for the 2.xx.yy versions
> of the linux kernel ??
</tscreen>

<tscreen>
<verb>
Yes, but ...

  if ( ((xx == 0) && (yy >= 28)) || ((xx >= 1) && (yy >= 15)) )
    take_dosemu_0_64_4();
  else {
    if (xx == 1)  exit(1);
    take_dosemu_0_64_2_x();
  }

;-)
</verb>
</tscreen>

<sect1>How do I make aout binaries?

<p> Starting with version 0.64.4 there is no a.out support any more.
If you absolutely need it, you must use version 0.64.3.1.
The configure script then should take care for this, if you setup is a
standard setup(97/2/11). 

<sect1>How do I compile dosemu on a machine with low memory?

<p>Marty Leisner (<bf>leisner@sdsp.mc.xerox.com</bf>) reported (95/4/8)
that

If you have problems with running out of swap space you may want to
add <tt/CFLAGS+=-fno-inline/ after <tt/CFLAGS/ is defined in
<bf>dpmi/Makefile</bf>.  Be careful before you do this and check for
the existence of swap space.  I found Linux crashes a times when it
has no swap space.

<sect1>Compilation fails with some strange error regarding "slang"
<p>You probably have installed your own version of the Slang library.
Hans Lermen <bf>&lt;lermen@elserv.ffm.fgan.de&gt;</bf> writes(97/2/11):
<tscreen>
<verb>
  configure --enable-force-slang
</verb>
</tscreen>

<sect1>What configurabe options are available
<p>Try
<tscreen>
 configure --help
</tscreen>
to get the list of configurable options listed (97/2/12)
<sect1>How can I speed up compilation?

<p>Marty Leisner (<bf>leisner@sdsp.mc.xerox.com</bf>) reported (95/4/8)
that

The default optimization is -O2.  You may want edit the makefile to
use -O (compiled somewhat faster/smaller).

<sect1>More compilation tips from Marty&hellip;

<p>Marty Leisner (<bf>leisner@sdsp.mc.xerox.com</bf>) reported (95/4/8)
that

You need to have build the kernel on your system to get the current
version.  If not, you may want to hand modify KERNEL_VERSION in the
top level Makefile.  The number is of the form, "<tt/nmmmppp/", where
"<tt/n/" is the version, "<tt/mmm/" is the minor version, and
"<tt/ppp/" is the patchlevel.  For example, kernel 1.1.88 corresponds
to "1001088" and kernel 1.2.1 to "1002001".

Addition from (<bf>lermen@elserv.ffm.fgan.de</bf>):

For versions greater 0.64.3 this no longer is true. You need to have
a valid &lt;linux/version.h&gt;, which has to be part off your standard
/usr/include. If you don't have it, you either did a 'make clean' on your
kernel source or your distributor failed to support you with this.
 
<sect1>Do I need to compile dosemu as root?

<p>(95/4/8)

No.  You must install it as root, though.

<p>Marty Leisner (<bf>leisner@sdsp.mc.xerox.com</bf>) adds

In order to access I/O ports (including the console) dosemu needs to
run as root.  Running dosemu on an xterm or in X windows and requiring
now direct hardware access allows you to run dosemu as a user.  The
security/setuid implications will be worked on in development
releases(95/8/11).

Have a look at ..<bf>;/doc/SECURITY.readme</bf> too(97/2/9). 

<sect1>How to I patch dosemu.

<p>If you do patch dosemu from one version to another, do &dquot;make pristine&semi;./configure; make&dquot;. If you don't make pristine, at least the version
of the new executable will be wrong, if the whole thing compiles at
all(97/2/9).


<sect1>What versions of DOS are known to run with dosemu.

<p>Caldera's OpenDos (formerly known as DrDOS) is reported to work with
dosemu (<bf>Nicolas St-Pierre &lt;draggy@kosmic.org&gt;</bf>. As OpenDos can
be used free of charge for non-commercial use, it is preferred. However as
of now, redistribution is not allowed. You must get OpenDos youself from
Caldera's site
<htmlurl url="http://www.caldera.com/dos"
      name="http://www.caldera.com/dos">
Hopefully this will change soon, so dosemu can distribute a bootable
hdimage.
<bf>MsDos-6.22</bf> is known to work with dosemu.
<bf>MsDos-7</bf> aka <bf>Win95</bf> works with dosemu to, supposed you have
the boot logo switched off and you don't start the graphic shell at
bootup. If you make the hdimage bootable with the so called "Rescue Disk"
you are offered to make during the Windows installation, you get the right
settings. If you use your normal Win95 installation to transfer the system
files, have a look at the msdos.sys written on the hdimage and change the
settings under the section [Options] to have entries like
[Options]
Logo=0
BootGUI=0

(97/3/7)

<sect1>Versions known not to run
<p>DOS 4.01 had problems by itself, do it won't work with dosemu either
(Mattias Hembruch &lt;mghembru@ece.uwaterloo.ca&gt; 97/04/03)

<sect>Hard disk setup

<sect1>How do I use my hard disk with dosemu?

<p>First, mount your dos hard disk partition as a Linux subdirectory.
For example, you could create a directory in Linux such as /dos (mkdir
-m 755 /dos) and add a line like
<verb>
   /dev/hda1       /dos     msdos   umask=022
</verb>
to your /etc/fstab.  (In this example, the hard disk is mounted
read-only.  You may want to mount it read/write by replacing "022"
with "000" and using the -m 777 option with mkdir).  Now <bf>mount
/dos</bf>.  Now you can add a line like
<verb>
  lredir d: linux\fs/dos
</verb>
to the AUTOEXEC.BAT file in your hdimage (see the comments on LREDIR
below).  On a multi-user system you may want to use
<verb>
  lredir d: linux\fs\${home}
</verb>
where "home" is the name of an environmental variable that contains
the location of the dos directory (/dos in this example)(95/8/11).

---------------------

<p>Tim Bird (Tim_R_Bird@Novell.COM) states that LREDIR users should
be careful when they use LREDIR in the autoexec, because COMMAND.COM
will continue parsing the autoexec.bat from the redirected drive as
the same file offset where it left off in the autoexec.bat on the
physical drive.  For this reason, it is safest to have the
autoexec.bat on the redirected drive and the physical drive
(diskimage) be the same(95/8/11).

---------------------

<p> Robert D. Warren (<bf>rw11258@xx.acs.appstate.edu</bf>) reported
(94/4/28) that

I boot off a small hdimage file (less than 1 MB - and twice as large
as needs be at that), and the next to last line in my config.sys file
on the hdimage boot image is:
<verb>	
	install=c:\lredir.exe c: LINUX\FS\home/dos
</verb>
This will execute lredir just before the command interpreter runs. And
I have successfully run it with both command.com and 4DOS.  This
eliminates the offset problem using lredir in autoexec.bat.

<p> Uwe Bonnes (<bf>bon@elektron.ikp.physik.th-darmstadt.de</bf>) adds
(95/8/11) that

It is usefull to do:
<verb>	
install=C:\subst.exe g: c:
</verb>	
before that, so you have still access to your hdimage as drive g:
Another useful tip in that circumstance is to configure dosemu to use
"<bf/autoexec.emu/" to keep dos and dosemu apart.


<sect1>How can I access the hdimage from Linux?

<p>Use the recent mtools, version 3.0 at the time of writing. With a
line in <bf>/etc/mtools.conf</bf> like 
<verb>

   drive g:  file="/var/lib/dosemu/hdimage" Offset=8832
</verb>
you can use the mtools on the hdimage, like "mdir g:". "mcopy
g:/config.emu /tmp" copies the config.emu file from the hdimage to
/tmp/config.emu. You can edit it there and copy it back. Use a drive
letter you find sensible. "G:" is only an example(07/2/9).

<sect1>Can I use my stacked/double-spaced/super-stored disk?

<p>At this time, compressed drives cannot be accessed via the
redirector (lredir or emufs) on a standard kernel. There is a patch
for the kernel to mount compressed files under the name "dmsdosfs".
Find it on sunsite.unc.edu and its mirrors
<tscreen>
   <htmlurl url="http://sunsite.unc.edu:/pub/Linux/system/Filesystems/dosfs/"
   name="http://sunsite.unc.edu:/pub/Linux/system/Filesystems/dosfs/">
</tscreen>
A good idea is also to look in <htmlurl
url="http://sunsite.unc.edu:/pub/Linux/Incoming"
name="http://sunsite.unc.edu:/pub/Linux/Incoming"> for
a newer version. 
However, many people have had success by simply uncommenting the
<verb>
   disk { wholedisk "/dev/hda" }        &num; 1st partition on 1st disk
</verb>
line in their dosemu config file.  Others have had success using
<verb>
   disk { partition "/dev/hda1" }
</verb>
Do that on the risk to loose data on a dosemu crash(97/2/9)!

If your dos partition is already mounted with write access and you try
to run dosemu with partition or whole disk access, dosemu will print a
warning message and abort.  This prevents DOS and Linux from making
independent writes to your disk and trashing the data on your dos
partition(95/8/11).

---------------------

If LILO is installed, the above will not work.  However&hellip;

Thomas Mockridge (<bf>thomas@aztec.co.za</bf>) reported (94/8/5) that

To boot dosemu with LILO and Stacker 4.0 I did a little work around&hellip;

1. <bf>dd</bf> the MBR to a file. (or norton utility, etc., first 512 bytes)

2. Boot dos (from full boot not emu), do a fdisk /mbr, make your dos
   partition active with (dos) fdisk.

3. Copy the new MBR to a file.

4. Replace the original MBR

5. Copy the second MBR to /var/lib/dosemu/partition.hda? (Whichever is
   your dos partition)  

6. Set dosemu.conf 
<verb>
               disk {partition "/dev/hda? ?"}
</verb>

7. Start dosemu and and voila!  No LILO.

---------------------

Holger Schemel (<bf>q99492@pbhrzx.uni-paderborn.de</bf>) reported
(94/2/10) that

Works even fine under dosemu with MS-DOS 6.0. If you have problems, then
you have to edit the file 'DBLSPACE.INI' manually and change the disk
letter to the letter your drive gets under dosemu.

---------------------

Darren J Moffat (<bf>moffatd@dcs.gla.ac.uk</bf>) also reported
(94/3/27)

"&hellip;use 6.2 if you can get it!!  Just make sure you have a
LILO boot disk on hand since dos 6{.2} will change the MBR of the boot
HZ."

<sect>Parallel ports, serial ports and mice

<sect1>Port access worked with older version, but doesn't work now!

<p>Read ..<bf>/doc/README.port-io</bf>  and the port-section 
in ..<bf>/etc/config.dist</bf>  

<sect1>Port access was faster with older versions!

<p>To have a chance to log port access, by default every port access
produces an exception out of vm86-mode. This takes some time. If you
don't want to log port access, use the keyword <bf>"fast"</bf> in the
appropriate port statement.

<!-- FIXME I don't get my mouse to work in winemu, so how can I help -->
<!-- FIXME others-->

<sect1>Where are the (microsoft compatible) mouse drivers?

<p>Tom Kimball (<bf>tk@pssparc2.oc.com</bf>) reported (93/11/24) that

Several people said to use a different mouse driver and suggested
some.  I found a couple that seem to work fine.
<verb>
   oak.oakland.edu:/pub/msdos/mouse/mouse701.zip   (mscmouse)
   oak.oakland.edu:/pub/msdos/mouse/gmous102.zip   (gmouse)
</verb>
Normally you can use dosemu's internaldriver, so you don't need any
additional mousedriver in dosemu outside winemu(97/2/10).

<sect1>Why doesn't the mouse driver work?

<p>Mark Rejhon (<bf>mdrejhon@magi.com</bf>) reported (95/4/7) that

If you start the mouse driver and it just hangs (it might actually
take 30-60s), but if you are waiting longer than a minute for the
mouse driver to start, try specifying the COM port that the mouse
is on, at the mouse driver command line.

<sect1>Why does dosemu clobber COM4?

<p>Rob Janssen (<bf>rob@pe1chl.ampr.org</bf>) reported (94/3/24) that

According to <bf>jmorriso@bogomips.ee.ubc.ca</bf>, "dosemu still
clobbers COM4 (0x2e8, IRQ 5). 0x2e8 isn't in ports{} in config.  I
have to run setserial /dev/cua3 irq 5 on it after dosemu exits."

This is caused by your VGA BIOS.  I have found that by enabling the IO
port trace and seeing where it was clobbered.

Disable the "<tt/allowvideoportaccess on/" line in config and it will
work fine.  When you then have problems with the video, try to enable
more selective ranges of IO addresses (e.g., 40-43).
<!-- END FIXME-->

<sect1>How do I use dosemu over the serial ports?

<p>


<sect1>How can I switch between dosemu and a shell over the serial line?

<p>John Taylor (<bf>taylor@pollux.cs.uga.edu</bf>) reported (94/5/25)
that

I am running Linux 1.1.13 and want to point out a great feature that
should be protected and not taken out (IMHO). With the 52 version, I
can run the program, "screen."  From screen, i can invoke dos -D-a.
What is really great (IMHO) is the screen commands (the CTRL-A cmds)
still work. This means I can do a CTRL-A C and add another unix shell,
and switch between the two (DOS / UNIX).  This allows me to use dosemu
over the serial line really well, because switching is made easy.

<sect1>How can I get the parallel ports to work?

<p>The dosemu.conf has lines at the end to redirect printers to either
lpr or a file.  If you want direct access to the bare metal, comment
out these emulation lines, and add the line
<tscreen>
ports { device /dev/lp0 fast range 0x3bc 0x3bf  } &num; lpt0
</tscreen>
for the "monitor card" printer port (corresponds to /dev/lp0), or
<tscreen>
ports { device /dev/lp1 fast range 0x378 0x37f } &num; lpt1
</tscreen>
<tscreen>
ports { device /dev/lp1 fast range 0x278 0x27f } &num; lpt2
</tscreen>
for LPT1 (/dev/lp1) and LPT2 (/dev/lp2) respectively(97/2/9).

<sect>Multiple users and Non-interactive sessions

<sect1>Can I use dosemu on a multi-user system?

<p>Corey Sweeney (<bf>corey@amiganet.xnet.com</bf>) reported (93/12/8)
that

If you are running dosemu on a system in which more then one person may
want to run dosemu, then you may want to change the directory of your
hard drive image.  Currently in the <bf>/etc/dosemu.conf</bf> file
there exists the line saying that the hard drive image is "hdimage".
If you change this to <bf>/var/lib/dosemu/hdimage</bf> then people do
not have to worry about what directory they are in when they run
dosemu, and hdimage does not have to be moved each time you upgrade to
the next patch level.

If you do do this for multi-user dosemu, then you will want to make
the hdimage in <bf>/var/lib/dosemu</bf> read-only for everyone but the
dosemu administrator.

Note that you can use the new emufs.sys thing to mount a "public"
directory and/or a "private" directory (a sub-directory in each
person's home directory).

<p><tt/[/Note: Users may also create a personal configuration file
named <bf>~/.dosrc</bf> (same format as <bf>/etc/dosemu.conf</bf>) to
run their own copy of dos.]

<!-- FIXME There are probably newer informations-->
<sect1>How can I run dos commands non-interactively?
  
<p>I have been meaning to write an article on this for quite some time
but have not gotten around to it.  Here are some hints from others:

<p>Dan Newcombe (<bf>newcombe@aa.csc.peachnet.edu</bf>) reported
(94/1/27) that

Here is an idea (untested) to be able to run a DOS command from the
command line (or menu choice, etc&hellip;) without modifying the actual
emulator.  <tt/[/Your dos partition is assumed to be mounted under
Linux, already.] 

Suppose you wanted to run wp60.exe with the parameter "<bf>wp60
d:&bsol;doc&bsol;paper.txt</bf>".  You would do something like
"<bf>dosrun wp60 d:&bsol;doc&bsol;paper.txt</bf>".  "<bf>dosrun</bf>"
would be a linux shell program that would a) edit/modify/recreate the
dos <bf>autoexec.bat</bf> from your dos partition and b) simply run
dosemu (e.g., "<bf>dos -C >/dev/null</bf>".  Step a) would somehow
keep all the stuff you'd normally want in <bf>autoexec.bat</bf> (e.g.,
mouse.com) and the last line would be "<bf>wp60
d:&bsol;doc&bsol;paper.txt</bf>".
            
On the dosemu side, beforehand, you would have to modify the
<bf>config.sys</bf> file (located in hdimage) so that it 1) uses emufs
to access the dos partition as <bf>D:</bf>, 2) sets
"<bf>COMPSEC=D:&bsol</bf> (I think.  I don't have a DOS manual around.),
and 3) sets "<bf>shell=c:&bsol;command.com /p</bf>".
        
The idea is that for each time that you load the DOS emulator, you
will recreate an autoexec.bat that is specific to that session.  What
makes it specific is that the last line will execute the program you
want.  The modifications on the hdimage are to tell the emulator/DOS
that you want to use (and effectively) boot off of D:, which will be
the actual DOS partition.
    
If you do not use hdimage and access the DOS filesystem directly upon
boot-up of dosemu, then this will work, and you don't have to go
through the hdimage part of this all.
    
---------------------

<p>Daniel T. Schwager (<bf>danny@dragon.s.bawue.de</bf>) reported
(94/7/2) that

You can use different dosemu.conf files (and different hd-boot-images
with different autoexec.bat's) and call dosemu like
<verb>
$ dos -F my_quicken_q_exe_dosemu.conf
</verb>

---------------------

<p>Dietmar Braun (<bf>braun@math20.mathematik.uni-bielefeld.de</bf>)
reported (94/7/4) that

This is no problem at all when you use the redirector of dosemu.  It
is possible to redirect a drive letter to a linux path given by an
environment variable.

So I have a shell script named "<bf>DOS</bf>" which does something like 
<verb>
 mkdir /tmp/dos.&dollar;&dollar;
 DOSTMP=/tmp/dos.&dollar;&dollar;; export DOSTMP
</verb>
and then a little trick to get "<bf>echo &dollar;* >
&dollar;DOSTMP/startup.bat</bf>" really working (actually a small C Program 
which turns '/' in '<bf>&bsol</bf>' and terminates lines correctly for
messy dos with cr/lf pairs and adds <bf>^Z</bf> at the end of the
file), creates startup files, links and so on in this directory, and
then starts dosemu. Within "<bf>autoexec.bat</bf>" drive c: is
redirected from hdimage to this tmp-directory, which has links for
<bf>&dollar;HOME</bf> and <bf>&dollar;PWD</bf>.

So if I want to see my filenames shortened to 8.3 I can type "<bf>DOS
dir</bf>" and I get my current directory listing.  So I have full DOS
multi user (I don't have any DOS partition and redirecting to Linux
preserves user permissions) and multi tasking. (dosemu sessions 
are completely independent).  I did this once to be able to use a dos
driver for my printer. My printcap df is actually a DOS program. So
you can even make DOS executables act as lpr filters. 
<!-- END FIXME-->

<sect>dosemu and Netware

<sect1>How do I get Netware access from dosemu?
  
<p>As always, access through the Linux filesystem is preferred. Mount
your Netware drives with Caldera's Netware utilities or Volker
Lendecke's free ncpfs utility 
(<bf><htmlurl url="ftp://ftp.gwdg.de:/pub/linux/misc/ncpfs"name="ftp://ftp.gwdg.de:/pub/linux/misc/ncpfs"</bf>). If you need real IPX access,
e.g. to run Novell's "syscon", read ..<bf>/doc/NOVELL-HOWTO.txt</bf>.

<sect>dosemu and X-windows(97/2/9).

<sect1>Can I run dosemu in console mode while running X?

<p>Ronald Schalk (<bf>R.Schalk@uci.kun.nl</bf>) reported (94/1/17)
that

Yes, no problem.  Just remember to use ctrl-alt-&lt;Fn<tt/>/ to go to
a Virtual Console (VC), and you can run any Linux application (dosemu
is a linux-application).  I've got almost always WP5.1 in a dos
session.

<tt/[/Note:  Use ctrl-alt-F7 to switch back to X from dosemu, if X
runs on VC7.] 


<sect1>Is it possible to run dosemu in a window in X-windows?
 
<p>If you have X installed and you have successfully compiled dosemu
and run it successfully outside X-windows, you should be able to
run "<tt/xdos/" or "<tt/dos -X/" right away to bring up a dosemu
window.  If this does not work, make sure:

<verb>
  1. Dosemu has X support compiled in. This is default, however
     if you you have configured dosemu with 
     "./configured --without-x", you don't have X support. So make
     "make pristine; ./configure; make; make install" should build 
     you a dosemu-executable with X support, if you have the 
     X-libraries installed in /usr/X11R6.
  2. Set up your X key-mappings.  In an xterm, type

     xmodmap -e "keycode 22 = 0xff08"
     xmodmap -e "keycode 107 = 0xffff"

     These lines fixes the backspace and delete keys respectively.
  3. Configured the X-related configuration options in your 
     /etc/dosemu.conf file.
</verb>

Alternatively, you can run dosemu inside a color xterm,
which is not recommended because many color xterms have buggy
support for the complex text display capabilities of dosemu.
This does not require <tt/X_SUPPORT/ to be compiled into dosemu.
However, if you really want to do this, do the following steps:

<verb>
  1. Install ansi_xterm.  The recommended package is available as:
     tsx-11.mit.edu:/pub/linux/ALPHA/dosemu/Development/ansi-xterm-R6.tar.gz

  2. Set up your X key-mappings.  In an xterm, type

     xmodmap -e "keycode 22 = 0xff08"
     xmodmap -e "keycode 107 = 0xffff"

     These lines fixes the backspace and delete keys, respectively.
  
  3. Configured the terminal-related (not X-related) settings in
     /etc/dosemu.conf
</verb>
(972/9).

<p>Marty Leisner (<bf>leisner@sdsp.mc.xerox.com</bf>) reported (95/3/31)
that

I have xrdb log the following resources
<tscreen>
dosxterm*Font:  vga
dosxterm*geometry:      80x25
dosxterm*saveLines: 25
</tscreen>
or I alias "<tt/dosxterm/" to 
"<tt/term -fn vga -title dosxterm -geometry 80x25 -sl 25/"

If you use the xrdb method, all you have to do is run
"<tt/xterm -name dosxterm/"

<sect1>Xdos dosen't work on a remote X-display!

<p>At present, dosemu is set up to use the MIT shared memory
extensions. This extension only works on a local display. If you want
to run xdos on a remote display, configure dosemu with
<bf>"./configure --enable-nomitshm"</bf> after a 
<bf>"make pristine"</bf> or on the clean source tree(97/2/9).

<sect1>Xdos dosen't find the VGA font
<p>Check that the vga fonts you installed are listed in the font.dir of the
directory you installed the fonts in:
<tscreen>
<verb>
hertz:~> grep misc /usr/X11R6/lib/X11/XF86Config
    FontPath    "/usr/X11R6/lib/X11/fonts/misc/"
hertz:~> grep vga /usr/X11R6/lib/X11/fonts/misc/fonts.dir 
vga.pcf vga
vga11x19.pcf vga11x19
hertz:~> ls /usr/X11R6/lib/X11/fonts/misc/vga*
/usr/X11R6/lib/X11/fonts/misc/vga.pcf
/usr/X11R6/lib/X11/fonts/misc/vga11x19.bdf
/usr/X11R6/lib/X11/fonts/misc/vga11x19.pcf
</verb>
</tscreen>
If you installed some X-fonts, like you did when you installed dosemu with
X-Support for the first time,  "mkfontdir" and then "xset fp rehash" needs
to be run. The dosemu install should take care for "mkfontdir" and tells you
about "xset fp rehash". Tell us if it dosen't work for you.
(97/2/13)

<sect1>The vga font is very smal on my high resolution  Display
<p>Look for the vga11x19 font.
(97/2/13)

<sect1>Dosemu compilation fails with some strange error regarding X!

<p>As stated above, dosemu uses the MIT shared memory extensions by
default. Under XFree86 they are only available with Version 3.1.2 and
above. If you have an older version, consider to upgrade, or configure
dosemu to not use this extension (see last section)(97/2/9).

<sect1>Does ansi emulation work properly?

<p>Marty Leisner (<bf>leisner@sdsp.mc.xerox.com</bf>) reported (95/3/31)
that

Yes.  I use <tt/nnansi.com/ under X windows.  I find 25, 43 and 50
line mode work properly, however 50 line mode is difficult to use on a
1024x768 screen (unless smaller fonts are used are you use a bigger
screen.  43 line mode will resize the <tt/xterm/ window to use 43 lines.


<sect>dosemu and MS-Windows 3.1

<sect1>Is it possible to run MS-Windows 3.1 under dosemu?

<p>The ..<bf>/doc/README.Windows</bf> file says:
<!-- FIXME Should that be only a pointer?-->

<verb>
***************************************************************
*    WARNING!!! WARNING!!! WARNING!!! WARNING!!! WARNING!!!   *
*                                                             *
*  Danger Will Robinson!!!  This is not yet fully supported   *
*  and there are many known bugs!  Large programs will almost *
*  certainly NOT WORK!!!  BE PREPARED FOR SYSTEM CRASHES IF   *
*  YOU TRY THIS!!!                                            *
*                                                             *
*    WARNING!!! WARNING!!! WARNING!!! WARNING!!! WARNING!!!   *
***************************************************************
</verb>

Okay, it is possible to boot WINOS2 (the modified version of Windows 3.1
that OS/2 uses) under DOSEMU.  Many kudos to Lutz &amp; Dong!

However, YOU NEED BOTH LICENSES, for WINDOWS-3.1 as well OS/2 !!!

There are many known problems.  Windows is prone to crash, could take data
with it, large programs will not load, etc. etc. etc.
In other words, it is NOT ready for daily use.  Many video cards are known
to have problems (you may see a nice white screen, however, look below
for win31-in-xdos).  Your program groups are all likely to disappear.
&hellip;  Basically, it's a pain.

On the other hand, if you're dying to see the little Windows screen running
under Linux and you have read this CAREFULLY and PROMISE NOT TO BOMBARD THE
DOSEMU DEVELOPERS WITH "MS Word 6.0 doesn't run!!!" MESSAGES...
 
<verb>
1.  Get DOSEMU & the Linux source distributions.
2.  Unpack DOSEMU.
3.  Configure DOSEMU typing './configure' and do _not_ disable vm86plus.
4.  Compile DOSEMU typing 'make'.
5.  Get the OS2WIN31.ZIP distribution from &hellip; ????
    &hellip; oh well, and now you have the first problem.
    It _was_ on ibm.com sometime ago, but has vanished from that site, and
    as long as it was there, we could mirror it. &hellip; you see the problem?
    However, use 'archie' to find it, it will be around somewhere on the net
    &hellip; for some time ;-)
5.  Unpack the OS2WIN31 files into your WINDOWS\SYSTEM directory.
    (Infact you only need WINDOWS/SYSTEM/os2k386.exe and the mouse driver)
7.  Startup dosemu (make certain that DPMI is set to a value such as 4096)
8.  Copy the file winemu.bat to your c: drive.
9.  Cross your fingers.
</verb>

Good luck!

<verb>
REMEMBER:  THIS IS NOT AT ALL RECOMMENDED!!!  THIS IS NOT RECOMMENDED!!!
           WE DO NOT RECOMMEND YOU TRY THIS!!!
</verb>
---------
<sect1>Can I run 32bit stuff with winemu
<p>
Sorry, no you can't.
Win32s needs stuff running in ring 0. That's a "nono" with linux.
(97/04/27)

<sect1>Errormessage: Cannot find the vdtapi.386 file when starting dosemu
<p>
As explained above, winemu can't handle 32 bit stuff. All drivers ending in
386 are 32bit. So to run winemu, you have to delete all references to .386
drivers in your win.ini.
(97/04/27)

<sect1>Windows 3.x in xdos:
<p>As of version 0.64.3 DOSEMU is able to run Windows in xdos. Of
course, this is not recommended at all, but if you really want to try,
it is safer then starting windows-31 on the console, because _when_ it
crashes, it doesn't block your keyboard or freeze your screen.

Hints:
<verb>
1. Get Dosemu & Linux source.
2. Unpack dosemu.
3. Run "./configure" to configure Dosemu (it will enable vm86plus as a
   default).
4. Type "make" to compile.
5. Get a Trident SVGA drivers for Windows. The files are tvgaw31a.zip
   and/or tvgaw31b.zip. They are available at garbo.uwasa.fi in
   /windows/drivers (any mirrors?).
6. Unpack the Trident drivers.
7. In Windows setup, install the Trident "800x600 256 color for 512K
   boards" driver.
8. Do the things described above to get and install OS2WIN31.
10. Start xdos.
11. In Dosemu, go to windows directory and start winemu.
12. Cross your fingers.
</verb>

<sect1>Can I install windows from within dosemu?

<p>
<bf>No</bf> you cant't. Dos will tell you something like
<tscreen>
	The XMS driver you have on your system is not
	compatible with Windows...
</tscreen>
You need to install windows from Dos. You can copy the windows tree to
somewhere on your Linux Filesystem and use lredir to mount it on the
same place as it is in dos. Example:
<tscreen>
        You have windows in d:&bsol;windows
	You have d:&bsol; mounted as /dosc in Linux
        You copy the windows tree to Linux, 
	         e.g. "cp -a /dosd/windows /usr/share
        Inside dosemu you redirect the copied tree like
                 lredir d: linux&bsol;fs&bsol;dosd
</tscreen>
Now dosemu can't mess around in you windows directory, but changes in the
windows directory aren't seen by dosemu too. If you want to do the
same with windows on drive c:&gt; look in this FAQ how to redirect c:.

But you can use "setup" from inside the windows directory to install drivers
and change some settings.
(97/2/1497)

<sect1>Notes for the mouse under win31-in-xdos:
<p>
1. Use the mouse driver "mouse.drv" from WinOS2

2. In order to let the mouse properly work you need the following in your
   win.ini file:
<verb>
     [windows]
     MouseThreshold1=0
     MouseThreshold2=0
     MouseSpeed=0
</verb> 

3. The mouse cursor gets not painted by X, but by windows itself, so it depends
   on the refresh rate how often it gets updated, though the mouse coordinates
   movement itself will not get delayed.
   ( In fact you have 2 cursors, but the X-cursor is given an 'invisible'
   cursor shape while within the DOS-Box. )
 
4. Because the coordinates passed to windows are interpreted relatively, we
   need to calibrate the cursor. This is done automatically whenever you
   enter the DOS-Box window: The cursor gets forced to 0,0 and then back
   to its right coordinates. Hence, if you want to re-calibrate the cursor,
   just move the cursor outside and then inside the DOS-Box again.
<!-- END FIXME-->
(97/2/10) 

<sect1>Why did my Icon dissapear from the Programmanager?
<p>MS-Windows and WinOS2 handle the program manager group different. While
MS-Win store the setup in progman.ini, WinOS2 what's the conted of
progman.ini in system.ini. Her a tip from <bf>(friest@acm.org (Todd
T. Fries))</bf>:
<tscreen>
cat progman.ini >> system.ini
</tscreen>
Be sure to use >> :-)

<sect>Video and sound

<sect1>Can I run 32-bit video games under dosemu?

<p>Mark Rejhon (<bf>mdrejhon@magi.com</bf>) reported (95/4/8) that

With the recent DPMI improvements that has gone into 0.60, you can now
run some 32-bit video games in dosemu.   If the game is compatible in
an OS/2 DOS box, there are chances that it will work in dosemu.
(Example 32-bit games include Descent, Dark Forces, Mortal Kombat 2, 
Rise of The Triad, which have all successfully been tested in recent 
dosemu releases).

Before you attempt to run a video game, you must have the keyboard
configured in raw keyboard mode and enabled VGA graphics modes, in the
<bf>/etc/dosemu.conf</bf> file.  If you have successfully run graphics
programs in dosemu, and are prepared to take the risk of a possible
system crash (this is because you are letting dosemu run with root
access to the video card, and leaves the possibility of putting the
video card in a bad state that is difficult to recover from) then you
can go ahead and try running the video game.

Note, however, you will have to turn off the sound in the game.
(Someone will have to program in sound board emulation before we can
avoid this).  Note that game timers can be a little bit slow, due to
Linux multitasking and lack of high-frequency timer support.  So the
games may run from anywhere from 5 to 100 percent speed.  Typically,
the speed is approximately 50 percent in recent dosemu releases and is
expected to improve eventually.

Who knows, it might even work. If you can't get it to work, check
EMUfailure if the program is listed there, or falls in a category of
programs that at present don't or probably never work with dosemu. If
you think, it should be listed in EMUfailure, report to
<bf>linux-msdos@vger.rutgers.edu</bf>   

Addition from (<bf>lermen@elserv.ffm.fgan.de</bf>(97/2/11)):

There is a security hole when having enabled DPMI and having dosemu
suid root (especially when using dos4gw-based games), the client is able
to access the whole user space, hence also can modify the dosemu code
itself. Use of the 'secure on' option in /etc/dosemu.conf disables this,
but then you can't run those games.

<sect1>Exiting from dosemu gives me a screen full of garbage.

<p> (95/4/8)

The problem is that the font information for the VGA text screen is
not being saved.  Get a copy of the svgalib package.  The current
source is in
<verb>
sunsite.unc.edu:/pub/Linux/libs/graphics/svgalib125.tar.gz
</verb>
It may also be available as a pre-compiled package in your favorite
Linux distribution (e.g., Slackware, etc.).  Use <tt/savetextmode/ to
save the current text mode and font to a file in <bf>/tmp</bf> before
running dosemu.  Then run <tt/textmode/ upon exiting dosemu to restore
it.

Addition from (<bf>lermen@elserv.ffm.fgan.de</bf>(97/2/11)):

Have a look also at src/arch/linux/debugger/README.recover and
README.dosdebug, dosdebug can aid you recovering.

<sect1>How do I get dosemu to work with my Trident/Actix/other video card?

<p><tt/[/The screen flickers violently, displays the video BIOS startup
message, and hangs.]

Andrew Tridgell (<bf>tridge@nimbus.anu.edu.au</bf>) reported (94/1/29)
that

I found with early versions it would work if I used:
<verb>
   ports { 0x42 }
</verb>
but that sometimes my machine would crash when it was cycling the
video BIOS in dosemu. This is because you're allowing the VGA BIOS to
re-program your clock, which severely stuffs with Linux.

This prompted me to write the read-only and masking patches for dosemu,
which I believe are still in the latest version. I now use:
<verb>
   ports { readonly 0x42 }
</verb>
and it boots dosemu more slowly, but more reliably.

---------------------

Tim Shnaider (<bf>tims@kcbbs.gen.nz</bf>) also reported (94/1/18) that

One way of fixing this is to use the GETROM program to dump your video
BIOS to a file and edit the config file in the <bf>/etc/dosemu</bf>
directory There will be a few video lines.  Here is my video line
<verb>
   video { vga console graphics chipset trident memsize 1024 vbios_file
   /etc/dosemu/vbios }
</verb>
where vbios is the file generated by typing 
<verb>
   getrom > vbios
</verb>

---------------------

<p>Douglas Gleichman (<bf>p86884@tcville.edsg.hac.com</bf>) reported
(94/9/1) that (with the ATI Graphics Ultra)

<!-- FIXME Does this still hold? -->
For dosemu 0.52 you need to add this line to your dosemu.conf file:
<verb>
 ports  { 0x1ce 0x1cf 0x238 0x23b 0x23c 0x23f 0x9ae8 0x9ae9 0x9aee 0x9aef }
</verb>
The board self test will list a failure but graphics programs will
run fine. 
<!-- END FIXME -->


 
<!-- FIXME there have been recent changes to sound, haven't there?-->
<sect1>Why doesn't my soundcard software work with dosemu?

<p>Hannu Savolainen (<bf>hsavolai@cs.Helsinki.FI</bf>) reported
(94/3/21) that

The dosemu and any DOS program with it run under control of a
protected mode operating system. This means that the memory is not
mapped as the program expects. If it somehow manages to start DMA
based recording with SB, the recorded sound doesn't find it's way to
the application. It just destroys some data in the memory.

<p>James B. MacLean (<bf>macleajb@ednet.ns.ca</bf>) reported
(94/6/19) that

Sorry to disappoint, but at this time dosemu does not support directly the 
necessary interception of interrupts or DMA generally required for 
sound card access via dosemu :-(.

It's bound to happen at some future date though :-),

And <bf>Corey Sweeney (orey@d94.nnb.interaccess.com)</bf> reports (97/2/15)
<tscreen>
    Sound code is being currectly being worked on
</tscreen>
<!-- END FIXME-->

<sect>Games

<sect1>Duke3d dosen't work
<p>Hans Lermen <bf>&lt;lermen@elserv.ffm.fgan.de&gt;</bf> said (97/2/16):
duke3d must be 'configured' via a setup, within this setup you have to choose 'keyboard + mouse', else it won't work.


<sect>Other Hardware

<sect1>How do I get my xxxxx device working under dosemu?

<p>Corey Sweeney (<bf>corey@bbs.xnet.com</bf>) reported (94/5/30) that

Here is a log of my adventures trying to get devices working under
dosemu.  So far I've gotten my voice mail system working and my
scanner half working.  Here's how:

1. Look in your manual and find if your card uses any ports.  If your
manual gives you some, put them in your config file at the "ports"
line.  Remember that sometimes you need to have several ports in a
row, and the first one might be the only one documented.

2. Try it out. If it doesn't work, or you don't have a manual (or your
manual is as crappy as my AT<tt/&amp/T manual:) then run dosemu with
"<bf>dos -D+T 2> /tmp/io.debug</bf>".  Run your device software, then
exit dosemu.  Look through <bf>/tmp/io.debug</bf> and find any port
numbers it might give you.  Try adding those to the port lines and try
running dosemu again. Ports below 0x400 with the keyword fast don't
get logged(97/2/9)! 

3. If you still fail then you may need interrupts.

Find out what interrupt the card uses and verify, that the kernel isn't
using the IRQ in question (cat /proc/interrupts).
Hans Lermen wrote (97/2/17):
<tscreen>
<verb>
1. Make sure Linux doesn't use this network card

2. Set 'sillyint { use_sigio 5 }' in /etc/dosemu.conf
</verb>
</tscreen>

(some addittions (97/2/11))
and that's about it&hellip;

Question: What if my card uses DMA?  Answer: Your screwed.

<sect>Problems and fixes

<sect1>Security issues
<p>A full featured Dosemu needs to be suid root, e.g to access ports. Dosemu
runs as suid "root" only where it is needed, and releases this right
thereafter. But with DPMI, the Dos client programm can access the whole user
space, hence also can modify the dosemu code itself. Use of the 'secure on'
option in /etc/dosemu.conf disables this, but then you can't run any more some
applications like 32-bit video games
(<bf>lermen@elserv.ffm.fgan.de</bf>(97/2/11)). E.g. running a well known
compiler with full access might have smaller security implications then some
game, obtained by some obscure source.

<sect1>Dosemu dies when booting. I have Win95 installed.
<p>Dosemu relies that the Dos-Version on the hdimage and the Drive you map
to contain command.com are the same. If not, dosemu will crash sooner or
later. With the dual boot option Win95 offers when pressing the F4,F5 and
F8 Keys with the "Starting Win95" text, versions on the Win95 drive may
swap. Take special care for command.com. Let your shell variable in
config.emu point to the correct static version of command.com, e.g.:
shell=c:&bsol;win95&bsol;command.com c:&bsol; /P /E:1024 (97/02/28)
 

<p>Learn about <bf>dosdebug</bf> and use it to control a dosemu session(97/2/9)

<sect1>Dosemu hangs! How can I kill it?

<p>Learn about <bf>dosdebug</bf> and use it to control a dosemu session(97/2/9)

<sect1>Dosemu crashed and now I can't type anything.

<p>Daniel Barlow(<bf>jo95004@sable.ox.ac.uk</bf>) reported (95/4/8) that

If you have no terminal or network access that you can use to log in,
you may have to press the reset button.  If you can still get a usable
shell somehow, run "<tt/kbd_mode -a/" to switch the keyboard out of
raw mode, and/or "<tt/stty sane/" on the console so that you can see
what you're typing.

A useful thing to do is to use a script to run dosemu, and run
"<tt/kbd_mode -a/" automatically right after dosemu.  When dosemu
crashes, the script usually will resume running, and execute the
"<tt/kbd_mode -a/" command.

<sect1>I've enabled EMS memory in dosemu.conf but it does not help.

<p>Rob Janssen (<bf>rob@pe1chl.ampr.org</bf>) reported (94/7/11)

Don't forget to load the provided ems.sys from the config.sys file.

<sect1>How do I get rid of all those annoying "disk change" messages?

<p>(94/8/11)

Grab and install <tt/klogd/.  Try
<verb>
         sunsite.unc.edu:/pub/Linux/system/Daemons/sysklogd1.2.tgz
</verb>

<sect1>Why won't dosemu run a second time after exiting in console mode?

<p> Aldy Hernandez (<bf>aldy@sauron.cc.andrews.edu</bf>) reported
(94/7/8) that

You should disable your video and/or BIOS caching.

<sect1>Why will dosemu run in a term but not in the console?

<p>JyiJiin Luo (<bf>jjluo@casbah.acns.nwu.edu</bf>) reported (94/4/19)
that

I experienced exactly the same problem before. I figured out all the
video shadow in my AMI BIOS must be disabled. Now dosemu runs fine on
my system. 

<sect1>How can I speed up dosemu?

<p>In some cases it is useful to play with the value of the
<tt/HogThreshold/ variable in your <tt/dosemu.conf/ file.

<p>Daniel Barlow(<bf>jo95004@sable.ox.ac.uk</bf>) reported (95/4/8) that

HogThreshold should now be set to approximately half of the BogoMips
value that the system reports on boot.


<sect1>My CDROM drive has problems reading some files under dosemu.

<p>Vinod G Kulkarni (<bf>vinod@cse.iitb.ernet.in</bf>) reported
(94/4/7) that 

When a CDROM is mounted from linux and used from within dosemu (mapped
drive), there could be some problems. The CD-ROM driver (iso9660) in
the kernel tries to find out the type of the file (i.e. binary or
text).  If it can't find, it tries to guess the type of the file using
a heuristic. This heuristic fails under some circumstances when a
(almost) text file is to be treated as binary.  (I do not know if it
is a bug or feature.)

The result of this is that if you copy such a file from CD-ROM (from
linux itself, and not necessarily dosemu), the resulting file will be
usually bigger than original file. (Blanks get added before
<tt/^J/,<tt/^M/.)  So a program running in dosemu gives an error or
hangs, which may be mistaken as problem of dosemu.

<p>Rob Janssen (<bf>pe1chl@rabo.nl</bf>) reported (94/8/10) that 

The way to solve this is to turn off conversion altogether.  Pass the
option "<bf>-o conv=binary</bf>" to the mount command mounting the
CD-ROM, or use the following in <bf>/etc/fstab</bf>:
<verb>
/dev/cdrom	/cdrom		iso9660	conv=binary,ro
</verb>
No patches to the kernel are necessary.

<sect1>How do I see debugging output?

<p>Daniel Barlow(<bf>jo95004@sable.ox.ac.uk</bf>) reported (95/4/8) that

As of dosemu 0.60, debugging output is redirected to a file specified
on the command line.  Use "<bf>dos -D+a -o /tmp/debug</bf>" to log all
debug output to <bf>/tmp/debug</bf>.  There should no longer be any
need to redirect <tt/stderr/.


<sect1>Why are my keystrokes echoed ttwwiiccee??

<p>Nick Holloway (<bf>alfie@dcs.warwick.ac.uk</bf>) reported (94/2/22)
that

After running dos after playing with some stty settings, I was getting
doubled key presses.  I can now reveal what the reason is!

It only happens when dos is run on the console with 'istrip' set.  This is
(I think) because the raw scancodes are mutilated by the 'istrip',
so that key release events look like key press events.

So, the input processing needs to be turned off when using the scan
codes on a console (it wouldn't be a good idea to do it for tty lines).

<sect1>Dosemu scrambles my screen?
<p> For those graphics cards not fully supported in dosemu, with allowed
console graphics a dosemu crash may leave your console in a scrambles and
nearly unusable way. To prepare for that situation, Spudgun
&lt;spudgun@earthlight.co.nz&gt; posted following solution. First save your
registers when running on the console
&tilde;&gt; cat /usr/bin/savetextmode
&tilde;&gt; restoretextmode -w /etc/textregs
&tilde;&gt; restorefont -w /etc/fontdata
Then, when a crash happened, run following script:
restoretextmode -r /etc/textregs
restorefont -r /etc/fontdata
restorepalette

<bf>If it doesn't fix it nothing will</bf>
I also found having an X server running sometimes put my Vid card's
registers into a strange state where this script made things worse
I think since changing X servers and/or running savetextmode on a vt while X
was running helped. (97/04/08)

<sect1>MS FoxPro 2.6 won't run
<p>FoxPro 2.6 doesn't run on network drives. Alexey Naidyonov
&lt;growler@growler.tsu.tula.ru&gt; states on that problem:
And I guess your FoxPro files are on lredir'ed disk, yeah? The matter is that
FoxPro doesn't run on such disk, but when I said disk { partition ... } in
/etc/dosemu/conf, it runs. 

 
<sect>Contributing to the dosemu project


<sect1>Who is responsible for dosemu?

<p>(97/2/9)

Dosemu is built upon the work of Matthias Lautner and Robert Sanders.
James B. MacLean (<bf>jmaclean@ednet.ns.ca</bf>) is responsible for
organizing the latest releases of dosemu.
<!-- FIXME any more data about releases available?-->
<!-- END FIXME-->
<verb>
                       History of dosemu

          Version    Date                Person           
         -------------------------------------------------
          0.1        September 3, 1992   Matthias Lautner
          0.2        September 13, 1992  Matthias Lautner
          0.3        ???                 Matthias Lautner
          0.4        November 26, 1992   Matthias Lautner
          0.47       January 27, 1993    Robert Sanders
          0.47.7     February 5, 1993    Robert Sanders
          0.48       February 16, 1993   Robert Sanders
          0.48pl1    February 18, 1993   Robert Sanders
          0.49       May 20, 1993        Robert Sanders
          0.49pl2    November 18, 1993   James MacLean
          0.49pl3    November 30, 1993   James MacLean
          0.49pl3.3  December 3, 1993    James MacLean
          0.50       March 4, 1994       James MacLean
          0.50pl1    March 18, 1994      James MacLean
          0.52       June 16, 1994       James MacLean
          0.60       April 9, 1995       James MacLean
          0.64.4     February 9,1997	 Hans Lermen
</verb>

<sect1>I want to help.  Who should I contact?

<p>The dosemu project is a team effort.  If you wish to contribute,
see the DPR (dosemu Project Registry).  A current copy may be found 
in ..<bf>/doc/DANG</bf> (97/2/9).
</article>


