DOS EMULATOR for LINUX 0.97 pl5 or later versions

If you use LINUX 0.97 pl5 you need to fix the bug in emulation code of the 
kernel:

in the function "mark_screen_rdonly" (kernel/sys.c) you need to change 
the screen start address from 0xA00000 to 0xA0000.

This is a pre alpha version. This means there are some bugs and lots of things
aren't implemented such as
- some video interrupts
- some other bios calls
- any port io
- ...

But MS DOS is running and programms using direct screen io are working if
you use the periodic screen update option (eg. TURBO PASCAL).
This version needs no further patches to the kernel.

INSTALLATION

1. unpack the tar arcive 
2. adapt the Makefile to your system and run make
3. move libemu to /lib or make a symbolic link
4. create the directory /usr/dos
5. insert a DOS boot disk into drive A: (/dev/fd0) without config.sys and
   autoexec.bat
6. run: dos > [debug msg file]
   where [debug msg file] can be either a file, /dev/null, or the device
   of another (console) window
   Beware: dos output gets to stderr, debug to stdout 

The file hdimage is mounted as drive C:

On drive C: is a file LINUX.EXE. Run this with parameter D. Now you should
have access to drive d: which is linked to the linux file system /usr/dos.
LINUX.EXE has been tested with DOS 3.3 and DOS 5.0. It isn't totaly implemented
(file attributes cann't be set) and there is a bug that running .EXE files 
will crash the emulator.
This program LINUX.EXE is derived from a version in the book 'undocumented
dos' chapter 4. Due to unknown copyrights I don't post the sources.

Now you can install DOS on C:, but don't format C: use sys.
Use then 'dos c' to boot direct from C:

To stop the DOS emulator kill it from another window or run a command that
crashes the emulator (-:.

Things crashing the emulator:
- running any .EXE file from the LINUX drive (loading of .EXE files does not work)
- dir /p (jumps to an invalide address after the keypress)
- cls (using not implemented video interrupt)
- ...

Using programms wich accesses the screen directly:

This implemention of the VM86 system call  supports the 'DIRTY PAGE'
testing of the vm86 system call. It will test the screen 3 times a second
and will update the screen only if needed.

Please mail any suggestions, bugs or fixes to me.

Matthias	(lautner@informatik.uni-wuerzburg.de)
