<!-- This is the dosemu HOWTO, SGML source -- >
<!-- Mike Deisher, deisher@dspsun.eas.asu.edu -->

<!doctype linuxdoc system>

<article>

<title>The dosemu HOWTO
<author>edited by Mike Deisher, <tt/deisher@dspsun.eas.asu.edu/ 
<date>v0.52.2, 5 Aug 1994

<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 <tt>dspsun.eas.asu.edu:/pub/dosemu</tt>.
</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>What's the newest version of dosemu and where can I get it?

<p>The newest version of dosemu is <tt>dosemu0.52</tt> and can be
ftp'ed from the following sites:
<verb>
     dspsun.eas.asu.edu:/pub/dosemu/
     tsx-11.mit.edu:/pub/linux/ALPHA/dosemu/
</verb>

<sect1>Where can I follow the development?

<p>If you want to follow the development of dosemu, you should
consider subscribing to the MSDOS channel on Linux-activists.  To
subscribe, send mail to
<tt>linux-activists-request@niksula.hut.fi</tt>.  Your mail HEADER or
FIRST LINE must contain the line:
<verb>
			X-Mn-Admin: join MSDOS
</verb>
To post to the list, send mail to linux-activists@niksula.hut.fi.
Your mail HEADER or FIRST LINE must contain the line:
<verb>
			X-Mn-Key: MSDOS
</verb>

<sect1>What documentation is available for dosemu?

<p>The dosemu manual (<tt>dosemu.texinfo</tt>) 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 (<tt>am20@unix.york.ac.uk</tt>) and is
posted once in a while to the MSDOS channel of Linux Activists.

The EMU success list (EMUsuccess.txt) is a list of all programs that
have been reported to work with dosemu.  It is posted once in a while
to the MSDOS channel of Linux Activists.  The most recent version can
be found on dspsun.eas.asu.edu:/pub/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
MSDOS channel of Linux Activists.  The most recent version can be
found on <tt>dspsun.eas.asu.edu:/pub/dosemu</tt>.

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

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

<verb>
               diff original-file new-file
</verb>

and send it to <tt>deisher@dspsun.eas.asu.edu</tt>.  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.  :-)

<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>Why won't dosemu 0.52 compile?

<p>(7/9/94)

There is a bug in the makefile of dosemu 0.52.  The makefile expects
the source to be located in <tt>/usr/src/dosemu????</tt>.  Either
install the source under <tt>/usr/src</tt> or try <tt>make clean ;
make config ; make dep ; make all</tt>.

Of course, this is not the only possible reason (see below).

<sect1>How can I be a bone-head when installing dosemu?

<p>a.k.a. Top Ten Stupid Mistakes installing dosemu (7/9/94)

<verb>
1. Don't read the QuickStart Guide.
2. Try to compile with a kernel older than 1.0.8.
3. Try to compile with an *unpatched* kernel >= 1.0.8.
4. Try to compile with a kernel older than 1.1.12.
5. Use dosemu with a kernel that does not have IPC compiled in.
6. Compile with gcc older than 2.5.8 or libc older than 4.5.21.
7. Forget to edit your /etc/dosemu.conf file.
8. Forget to run "FDISK /mbr" on your hdimage.
9. Forget to run "mkpartition" when using partition access.
10. Don't compile dosemu with sufficient priveledges (i.e., root).
</verb>

<tt/[/Please send me your stupid mistakes for inclusion in this list.
I promise you will remain anonymous.  ;-)]

<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 <tt>mount
/dos</tt>.  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).

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

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

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

<p> Robert D. Warren (<tt>rw11258@xx.acs.appstate.edu</tt>) reported
(4/28/94) 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 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.

<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).  However, many people have had success
by simply uncommenting the
<verb>
   disk { wholedisk "/dev/hda" }        # 1st partition on 1st disk
</verb>
line in their dosemu config file.  Others have had success using
<verb>
   disk { partition "/dev/hda1" 1 }
</verb>
and running the <tt>mkpartition</tt> utility (included in the dosemu
distribution).

<tt/[/WARNING:  Make sure your dos partitions are not mounted and writeable
from Linux while you are using dosemu with wholedisk or partition
access.  This is an easy way to destroy the data on your dos partition.]

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

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

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

To boot dosemu with LILO and Stacker 4.0 I did a little work around...

1. <tt>dd</tt> 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 (<tt>q99492@pbhrzx.uni-paderborn.de</tt>) reported
(2/10/94) 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 (<tt>moffatd@dcs.gla.ac.uk</tt>) also reported
(3/27/94)

"...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
HD."

<sect1>I get an error message about my config.sys file but it looks fine.

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

Sometimes when loading config.sys you will get a error message
saying something like "error in line 6 of config.sys".  The problem
will go away if you add several carriage returns at the end of your
config.sys.

<sect>Serial ports and mice

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

<p>Tom Kimball (tk@pssparc2.oc.com) reported (11/24/93) 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>

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

<p>Scott D. Heavner (<tt>sdh@fishmonger.nouucp</tt>) reported
(11/27/93) 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, remove any "timer" lines in your config
file.

<sect1>Why does dosemu clobber COM4?

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

According to <tt>jmorriso@bogomips.ee.ubc.ca</tt>, "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).

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

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

If you plan to be using dosemu over a serial line, telnet session, or
just don't want to use raw console mode, then you will probably want
to get to know the termcap file.  For those who don't know, the
termcap file is usually located in the <tt>/etc</tt> directory.  It
contains the information on what sequences of characters to send to
your terminal, and what sequences of characters from your terminal
represent what keystrokes.  If when you hit F5, and it does not work,
it will usually be the fault of a incorrect termcap entry.  (To learn
more about termcaps look up the termcap man page.)

Now the information in the termcap relates to entries in the dosemu
code.  So after you put <tt>k5=&bsol;E[[E</tt> in your termcap,
whenever your terminal sends <tt>&bsol;E[[E</tt>, dosemu translates
that and says "he hit the k5 key!"  Then it is up to dosemu to figure
out what the proper scancode for the k5 key is, and push that into the
buffer in some magical way.  To determine the scancode, it looks up in
a little table in termio.c.  In termio.c under the line which
(currently) says
<verb>
   #define FUNKEYS 20
</verb>
There exist several lines following the form
<verb>
   {NULL, "termcap code", scancode} /* name of key */
</verb>
so when it says
<verb>
   {NULL, "k5", 0x3f00} /* F5 */
</verb>
it's saying that <tt>0x3f00</tt> is the scancode for F5, and that when
the person activates the k5 sequence (defined in the termcap) to stuff
the F5 scancode into the buffer.

Now that's all fine and dandy for analyzing how dosemu does this,  but
you probably want to be able to do something with this new
information.  Well you can add functionality for the F11 and F12 keys
(and any other keys that you can find the scancode for).

All you have to do is add a line to the termio.c table that says:
<verb>
   {NULL, "ka", 0x8500} /* F11 */
</verb>
Then to actually get it to read the line you just put in, add one to
the FUNKEYS number.
<verb>
   #define FUNKEYS = 21
</verb>
Then add a "ka" entry to your termcap.  After that, every time you hit
the sequence stored in your termcap for ka, your dos program
recognizes an "F11."

Warning:  Make sure that ka is not in use in your termcap.  If it is
you are headed for trouble.

Note:  The scancode for F12 is <tt>0x8600</tt>.

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

<p>John Taylor (<tt>taylor@pollux.cs.uga.edu</tt>) reported (5/25/94)
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.

<sect>Dosemu with multiple users

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

<p>Corey Sweeney (<tt>corey@amiganet.xnet.com</tt>) reported (12/8/93)
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 <tt>/etc/dosemu.conf</tt> file
there exists the line saying that the hard drive image is "hdimage".
If you change this to <tt>/var/lib/dosemu/hdimage</tt> 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 <tt>/var/lib/dosemu</tt> 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 <tt>~/.dosrc</tt> (same format as <tt>/etc/dosemu.conf</tt>) to
run their own copy of dos.]

<sect1>How do I get Netware access from dosemu?
  
<p>James B. MacLean (jmaclean@fox.nstn.ns.ca) reported (6/13/94) that
  
Dosemu now supports  pdipx  (an IPX over pktdrvr)  and  pdether  (uses 
Novell's  MLID spec)  to  access  Novell LAN's via the built in packet
driver.   The  packet  driver sits at interrupt 0x60, and abids by the 
normal paket driver rules.  That said, beware of trying any DOS TCP/IP
just yet. To use Netware, simply:
<verb>   
   1) Compile support for your NIC into the kernel.
   2) Boot dosemu.
   3) Run ./commands/pdipx.
   4) Run netx or whatever you use.
</verb>
If you  need  special  access  to  your  NIC,  read  on.   By  default
dosemu  will  not  get interrupts from the kernel. That said, if you'd
like to give your NIC to dosemu for it to control, maybe for access to
Netware  on  the  network  through  a  NETX client, I do have a driver
(Silly Interrupt Generator) to put in the  kernel  that  any  program,
like dosemu can use to get at the interrupt for your NIC.  I use it in
DOSEMU to access a Novell Lite network in the  past  until  the packet
driver existed.
  
Any interested parties should E-mail me
(<tt>jmaclean@fox.nstn.ns.ca</tt>) and I'll pass along some
directions.

<sect>dosemu and X-windows

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

<p>Ronald Schalk (<tt>R.Schalk@uci.kun.nl</tt>) reported (1/17/94)
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.] 

<tt/[/Note: Some people have reported problems when dosemu is started
before X]

<sect1>Is it possible to run dosemu in an xterm?

<p>Evmorfopoulos Dimitris (<tt>devmorfo@mtu.edu</tt>) reported
(12/10/93) that

It is possible to run dosemu under an xterm, but without any
graphics, and with no more than 128 characters.

H. Peter Anvin (<tt>hpa@hook.eecs.nwu.edu</tt>) adds (2/6/94)

no more than 128 characters... unless you use a special font.
Someone has an IBM PC (CP 437) X font for use with ANSI-graphics on
BBS's, as well as a patch for Xterm that *might* include character
translation (for letters like <tt>&bsol;305</tt>, <tt>&bsol;304</tt>,
<tt>&bsol;326</tt> for example.

<sect>Video and sound

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

<p>Keith A Grider (<tt>kgrider@magnus.acs.ohio-state.edu</tt>)
reported (12/5/93) that

I have seen many postings concerning this with exit from X as well as
exiting from a graphic dos screen.  it seems to be prevalent among ATI
graphic card users as well as a few others.  The problem is that the
font information for the vga text screen is not being saved.  The only
way I have been able to fix it is to download the
<tt>vgalib-090.tar.gz</tt> file from sunsite.unc.edu.  It is (I
believe) in the <tt>pub/Linux/GCC directory</tt>.  You get a lot of
stuff that is not directly used to solve this problem, but in the
fonts directory that is created when you untar the file, there are 2
files of interest, runx and restorefont.  Read the README file in this
directory.  Copy runx and restorefont to a directory in your path.
when runx is used, for example, it saves the font information in
tmp/fontdata.  I use a file called fix which consists of the line:
<verb>
   restorefont -r /tmp/fontdata
</verb>
so that it is easy to 'fix' a vt when I go there from X
(i.e. <tt>ctrl-alt-f2</tt>).  This should also work for dosemu.  I
think the XFree86 people know about the problem and are working on a
solution as this is a bit of a kluge.

<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 (<tt>tridge@nimbus.anu.edu.au</tt>) reported (1/29/94)
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 readonly 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 (<tt>tims@kcbbs.gen.nz</tt>) also reported (1/18/94) 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 <tt>/etc/dosemu</tt>
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>

<sect1>Why doesn't my soundcard software work with dosemu?

<p>Hannu Savolainen (<tt>hsavolai@cs.Helsinki.FI</tt>) reported
(3/21/94) 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 (<tt>jmaclean@fox.nstn.ns.ca</tt>) reported
(6/19/94) 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 :-),

<sect>Other Hardware

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

<p>Corey Sweeney (<tt>corey@bbs.xnet.com</tt>) reported (5/30/94) 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
"<tt>dos -D+i 2> /tmp/io.debug</tt>".  Run your device software, then
exit dosemu.  Look through <tt>/tmp/io.debug</tt> and find any port
numbers it might give you.  Try adding those to the port lines and try
running dosemu again.

3. If you still fail then you may need interrupts.  Find out what
interrupt the card uses and get the SIG.tgz (silly interrupt generator)
from somewhere on tsx-11.mit.edu.  Install it as specified in the
instructions.

and that's about it...

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

<sect>Problems and fixes

<sect1>Why is the cursor position wrong?

<p>(7/9/94)

This is a known bug in dosemu 0.52.  It will be fixed in dosemu 0.53.


<sect1>Why does my busmouse act funny under dosemu 0.52?

<p>James B. MacLean (<tt>jmaclean@fox.nstn.ns.ca</tt>) reported
(7/8/94) that

Busmouse support is quite ALPHA at this time (as is DOSEMU :-)), and
will be continually refined for a while :-).  Look for better support
in the upcoming releases.

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

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

You should disable your video and/or bios caching.

<sect1> Some dos applications still do not detect DPMI under dosemu0.52.

<p>James B. MacLean (<tt>jmaclean@fox.nstn.ns.ca</tt>) reported
(6/19/94) that

  At this time (as of 0.52 release) DOSEMU is still growing with
respect to DPMI.  It will run certain DPMI programs, but has a ways to
go yet.  As suggested there needs to be more of the calls implemented,
etc.  Please be patient :-), as it's bound to come in time.

<sect1>Why does dosemu give "divide overflow" errors after running for more than 24-hours? 

<p>(1/17/94)

This is a known bug.  It will (hopefully) be fixed in an upcoming
release.  For now, you can simply exit dosemu and start it again.

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

<p>JyiJiin Luo (<tt>jjluo@casbah.acns.nwu.edu</tt>) reported (4/19/94)
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>Mark Rejhon (<tt>mdrejhon@undergrad.math.uwaterloo.ca</tt>)
reported (4/7/94) that

TIP: Speed up your DOS "dir" listings by about 25%-50% or so by typing 
<tt/break off/ at the DOS prompt or including it in autoexec.bat.

TIP: Use the nnansi.com ANSI driver to speed up the "dir" output
even more at roughly 50%-100% more.  It works properly in non-graphics 
mode, unlike turbo.com.  

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

<p>Joel M. Hoffman (<tt>joel@rac1.wam.umd.edu</tt>)
reported (4/23/94) that

Ironically, I've found that it's sometimes faster to run dosemu in an
Emacs terminal emulator rather than directly to the console.  Emacs's
output optimization is what makes the difference here.  

Put the following in your .emacs:

<verb>
	(defun do-dos ()
	  (interactive)
	  (terminal-emulator "dos" "/usr/local/bin/dos" ()))
</verb>
and then "emacs -f do-dos" will run the dosemu inside the buffer.
Make sure you emacs window is 25x80, of course.

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

<p>Pete Heist (<tt>heistp@rpi.edu</tt>) reported (5/13/94) that

If you compile it with the "<tt>-funroll-all-loops</tt>" option you
will get MUCH faster screen output.  Some other parts of the emulator
will run much faster as well.  Realize that the consequence of this is
a larger executable which eats a little more memory, even though it's
demand loaded.

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

<p>Georg Wiegand (<tt>gw@gwcomp.e.open.de</tt>) reported (5/16/94)
that

You also can use the keyword <tt>HogThreshold</tt> in
<tt>/etc/dosemu.conf</tt>.  The greater the following number the more
calculating-time dosemu gets.  For example, I use "<tt>HogThreshold
60000</tt>" on my 386/87-20 laptop.

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

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

When a CDROM is mounted from linux and used from within DOSEMU (mapped
drive), there could be some problems. The cdrom 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 cdrom (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 error or
hangs, which you may mistaken as problem of dosemu.

I could verify that this kind of heuristic is not used when the cdrom is 
used from DEC ALPHA system. (I nfs mounted the exported cdrom drive and
used under dosemu as a drive.)

To correct the behavior, you can force the iso9660 file system not
to use heuristic at all.  Make the following change and then recompile
your kernel.

<verb>
File: /usr/src/linux/fs/isofs/file.c
In Function: static int isofs_file_read ()
  ...
           if (inode->u.isofs_i.i_file_format == ISOFS_FILE_UNKNOWN) {
		inode->u.isofs_i.i_file_format = ISOFS_FILE_BINARY ;
                /* ORIGINAL: isofs_determine_filetype(inode);  */
           }	
  ...
</verb>

<sect1>Where did the debugging output go?

<p>As of dosemu0.49pl4, stderr is automatically redirected to
/dev/null.  Try "dos -D+a 2>debug" to turn on debugging information
and redirect it to the file "debug".

<sect1>Why does dosemu lock up after one keystroke?

<p>(12/17/93)

You need to turn on the keyboard interrupt in the dosemu config file.
Add a line to the config file:

<verb>
   keybint on
</verb>

Shouldn't be a problem in dosemu0.52.

<sect1>Why are my keystrokes echoed ttwwiiccee??

<p>Nick Holloway (<tt>alfie@dcs.warwick.ac.uk</tt>) reported (2/22/94)
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>Why are characters <tt/</ 128 highlighted and blinking?

<p>Chris Kuehnke
(<tt>Christian.Kuehnke@Informatik.Uni-Oldenburg.DE</tt>) reported
(3/21/94) that

I think I've found a bug in dosemu0.50pl1; with a MDA card displayed
characters <tt/>/ 128 automagically appeared as highlighted and
blinking. 

This patch fixed the problem for me <tt/[/but on the other hand, maybe
I'm totally wrong ;-)]:
<verb>
--- video.c~	Sat Mar 19 00:50:25 1994
+++ video.c	Sat Mar 19 20:36:10 1994
@@ -721,7 +721,7 @@
   int x, y, i, tmp;
   unsigned int s;
   static int gfx_flag = 0;
-  char c;
+  u_char c;
   us *sm;
 
   if (d.video >= 3)
</verb>

<sect>Contributing to the dosemu project

<sect1>Who is responsible for dosemu?

<p>(3/18/94)

Dosemu is built upon the work of Matthias Lautner and Robert Sanders.
James B. MacLean (<tt>jmaclean@fox.nstn.ns.ca</tt>) is responsible for
organizing the latest releases of dosemu.
<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
</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
<tt>dspsun.eas.asu.edu:/pub/dosemu</tt>.

</article>

