                 _____________________________________
                |                                     |
                |       Dosemu Project Registry       |
                |                                     |
                |               4/08/95               |
                |_____________________________________|


        The DOSEMU Project register is a list of the dosemu projects
that are being, and need to be done, allong with who is doing them.
The purpose of the DOSEMU project register is to prevent redundant
work on DOSEMU, as well as to give developers ideas for new things to
do.

        If you are currently working on something and I do not have
you in the register, or if you see something here and would like to
start working on it please send me mail to corey@amiganet.chi.il.us
(often mail must be sent several times because of flakey servers),
stating who you are, and what you are working on.  I'll incorperate
you into the register right away.

***********************************************************************
*       Remember that we need your help on all the projects in the    *
*"todo" section.  Please consider helping.  If you would like to help,*
*send me mail so i can register you with the project.                 *
***********************************************************************

-----------------------------------------------------------
A special welcome to all the new members of the dosemu team!

        The following projects are activly being worked on by their
respective participants:

Keeping the MFS redirector alive :-): - Andrew.Tridgell

	Andrew has been around DOSEMU for the long haul, and even
in this release he has managed to look away from SAMBA long enough
to add name mangling support to mfs.c

Adding structure to the direct access methods :- Rod May

	Rod has made partition access under DOSEMU that much easier
by allowing DOSEMU to properly access the specified partitions and
not allow concurrent access to file systems via partition access
and Linux mounts.

Kernel related stuff, bios tools: - Hans Lermen


General fix up and updating of dos executables: - Kang-Jin Lee

	Kang-Jin has helped clean up for the latest release by 
not only submitting cleanup code, but by also working on getting
all the executables up to a recent level.

General architecture, building,  debugging: - Marty Leisner

	Marty has many goals with DOSEMU. He currently has totally
restructured the Makefile setup, sent in numerous patches, and is
constantly testing new ideas.

General architecture, building, debugging: - Scott Buchholz

	Scott occasionally wanders through the DOSEMU code, wreaking
mischief and mayhem.  He is often working to clean up code, clarify
functionality, fix bugs, and make improvements.  It is rumored that he
is in charge of the init directory and the PIT code (among other things)
since he wrote them.

General cleansing, updating, and new ideas :- Jochen Hein

	Always a good person to discuss DOSEMU issues with and 
also there to provide background to bugs discovered. Jochen even
finds time to submit cleaned up code and other enhancements. Too
bad we still don't have his subdir problem fixed :-(.

Beyond Linux, above the I86 :- Kevin P. Lawton, John Kohl

	Kevin is very busy in his own project (BOCHS), but has 
helped to start removing the I86 dependancies that DOSEMU is
peppered with. On top of that, John has ported DOSEMU to 
the NetBSD OS. Two men with some very crazy dreams :-).

Bug fix collection & distribution: - Hans Lermen

        Hans assembles various bug fixes & other patches into a
distribution for all to use.  If you have a bug fix or a patch, send
it to Hans and it will probably get into the next version of DOSEMU
(assuming it's a usefull patch :)

Networking made powerfull :- Rob Jenneson, Vinod G Kulkarni

	Now DOSEMU can talk to those Netware boxes out there. We
can also do TCP under DOS and have multiple IPX sessions if we
use Vinod's network (v-net). :-)

DOSEMU FAQ: - Michael E. Deisher

        The dosemu FAQ is a list of Frequently asked questions for
DOSEMU that is posted every blue moon to the DOSEMU mailing list.

Ability to detach dosemu from the current VC :- WAYNE P MEISSNER

	Now you can call dosemu to start on an alternate VC thanks
to this detach code.

Redirector maintaince: - (formerly Tim Bird(& hopefully again)) & James 

        This is mainly bug fixing the DOSEMU disk recdirector.

[Quote from tim]
{I have a couple more fixes for LREDIR.EXE which I would like to publish.  
{Also, I wish to continue refining the current redirector.  The hot area 
{right now looks like FCB support.  I am also very interested in 
{non-Microsoft DOS support (ie support for DRDOS and Novell DOS).  
{Finally, I noticed that the locking calls (translation of DOS file locks 
{into Linux file locks) are currently just stubs.


Speed.com 	Tim Van der Linden	- timvdl@innet.be
	Program to change HogThreshold value on the fly

EMS & XMS maintaince: - James MacLean

        This is mainly bug fixing the DOSEMU EMS driver & XMS memory
system.


Keyboard maintaince: - James MacLean

        This is mainly bug fixing the DOSEMU keyboard routines.


Video maintaince: - James MacLean (again, dosen't he ever rest :)

        This is mainly bug fixing the DOSEMU video routines.


Xwindows color/graphics support: - Jason E Gorden, marky

        Xwindows support needs to be added.  Ideally dosemu, when run
would open a color xterm, then run color text dos programs.  When a
graphics application was run, the video card should be emulated & a
translation of the graphics should be sent to the window.  While this
is a huge task,  the first part should be fairly simple (compared to
implementing graphics).

Graphics in a xwindow is just a dream right now...

[Quote from Savio Lam]
{       For the xwindow support part, I see one problem with color xterm
{is that it doesn't support highlighting (extra bright). I've made a
{patch to it a while back that will make it support this. You might want
{to take a look at the file
{sunsite.unc.edu:/pub/Linux/X11/xutils/terms/ansi_xterm-src.tgz.


Text output/Keyboard input: - John Davis, Mark Rejhon, JES

	DOSEMU supports two keyboard methods, raw access to scan
codes at the Linux consoles (and X), and interpretation of standard
char I/O using SLANG. Also due to the functionality of SLANG, 
text I/O is also (when not using console mode) delivered via
SLANG.
Right now, SLANG is being used.  

Serial maintaince: - Mark Rejhon (formerly Ronnie)

        This is the code for modems and mice.  It has a big performance
increase over previous serial code.  Currently, serial performance 
ranges from 9600bps to 38400bps in DOSEMU, with an excellent emulation
of a 16550 UART, even on serial ports that does not have a 16550.
Also, 4 simultaneous serial ports are now supported.  The biggest problem 
is that many mouse drivers still do not work properly.  Hopefully upcoming 
new timer code will help this problem, since mice drivers seem to be very
timing sensitive.

Initial Serial tty locking code: - Matthew Grant

	Finally DOSEMU can be a bit UNIX wise when it tries to grab
those serial tty's :-)

Internal Mouse Driver: - Alan Hourihane, David Etherton

	Here in is created code to emulate a built in PS/2 mouse by
properly emulating all int33 mouse interupts and some more invloved
PS/2 bios services. Alan's work has allowed almost any mouse to be
used at the console under DOSEMU. The biggest exception at this
time seeme to be MKJ's psaux :-).

Printer support: - David Hansen

	Now DOSEMU can also have port configurable lpt's

EMUsuccess.txt: - Michael E. Deisher

        EMUsuccess.txt is a list of all the programs that have been
reported to work with dosemu.


[Quote from tim]
{"Shadow DOS" - (ooh, spooky :>)
{I am also working right now on an interface to allow an external process 
{(some other Linux process) to call a running DOSEMU process to access DOS 
{or BIOS services.  This may seem like kind of a funny thing, but I think 
{that it will be useful for the WINE folks.  The reason I call this the 
{"Shadow DOS" system, is that DOSEMU would not be running in the 
{foreground, with some useful DOS application, but rather in a background 
{role just to provide DOS services.  Also, the DOSEMU process would be 
{running continually as kind of a daemon.  (Maybe "Daemon DOS" would be a 
{better name, as it more appropriately reflects the Internet community's 
{opinion of DOS anyway).  Finally, in a related topic, I would like to use 
{the shadow DOS to be able to execute DOS applications directly from the 
{command line, without having to re-run through CONFIG.SYS and 
{AUTOEXEC.BAT every time.


DANG: - Alistair Macdonald

        -* the dang has pretty much been finished
                        the DANG now updates it'self *-
        For those of you who don't remember the DANG is a document
that provides information on the differn't sections of dosemu.  It's
soposto be a helpfull guide for C programmers who wish to make a
better world for dosemu.  It gets posted to the dosemu channel every
once in a while, and can be found in the dosemu distribution.

UNIX under DOSEMU :- Marty, Alistair

	Gaining usefullness has been the increased capability of DOSEMU
to also run UNIX commands from the DOS prompt.

The DOSEMU manual: - Lawrence Mao

        This was originally written by bob.
The manual was written in TeX, and contains information
on how to configure dosemu, how to install dosemu, a list and
description of dosemu's features, a list of dosemu's bugs, and much
more.  The manual is already quite comprehensive and very few sections
need to be added.  Mostly what is needed is to change the information
in the manual, to be updated every time james releases a new version.

        The manual is located in the "doc" directory, of the standard
dosemu source distribution (this does not imply that there is a binary
distribution).  

        Note: The manual has fallen behind since Rob stopped
maintaining it, but should be up to speed soon.

****************************************************************
We need YOUR help on this.  Please send in any ideas or improvements
to the manual that you can come up with.  Send them to
                        lkmao@quark.SFSU.EDU
****************************************************************


Timers: - Scott Buchholz, Larry Stephan

This started out as just timer routines, but it has kind of expanded
to include the programmable interrupt controller, programmable interval timer,
real-time clock, a dos clock, and an interval timer for use by dosemu itself.
Which makes it a little bigger than I can handle quickly.


*DPMI support: - Lutz, Dong

Lutz (molgedey@solid.theo-physik.uni-kiel.de) is the champion of the DPMI
code propegating into DOSEMU.
Now Dong has come on stream and finally we have to DPMI gurus that can
understand each other :-).
Specs for DPMI 0.9 are available from ftp.qdeck.com in /pub/memory or
for DPMI 1.0 from ftp.intel.com:/pub/???????. You may have a look too in
http://summa.physik.hu-berlin.de/~lutz/projects/computing/linux/dosemu.

*Performance improvements:  Linus & Lutz - (Tim played with this, but
had to do IPX) 

After accepting preliminary code from Lutz, Linus took 30 seconds to
write a kernel patch to add one feature that dosemu needs to the
kernel.  Lutz got it working and then Linus graciously expanded on the
code. Lutz is  in charge of debugging it now.  This has helped speed 
considerably.

--------------------
Earlier method-
        From messages to the msdos mailing list i believe that this is 
already being worked on by someone.  And from the little i saw, it seemed 
like they were taking the right approach to doing it.  It goes something 
as follows:

        The first step is to determine where in dosemu all the time is
being spent.  To determine this a program/patch could be written to
provide timing information.  This would in essence act like a huge
debug system that recorded how many instructions it took to do each
function, how many cycles it took, etc.  Then from that information it
could be determined where dosemu was spending it's time.

        Once it was determined where dosemu is spending it's time,
procedures must be rewritten to work in a more efficent way.  One way
of doing this would be to redirect certain interupts so that rather
then doing the calculations for the interupt in "dos mode" the system
would call out to the posix equivalant, run the calculations in the
32-bit posix mode, then return the result to the program.  To decrease
programmer efforts & development time, the interupt redirection might
be able to be stolen from the wine (wabi clone) project.

{Charlie Brady <charlieb@tplrd.tpl.oz.au> says:
{Linux should already have profiling capabilities - check  for  profil(2),
{monitor(3), and prof(1)


*Debian distribution: - Michael E. Deisher

        Write installation scripts & make sure that the dosemu system
comforms to the debian instalation standard.  It would probably be a
good idea for him to make james start following the FFSSTTD.



dynamic setup: - mike

        this should allow you to change the dosemu configureation
while it is running. (example turn off the speaker after it gets
annoying). I have no idea how this is going along.



Name: LEXEC - Amit Margalt & Oren Tirosh

Description: 

LEXEC enables the user to run Linux programs from within DOSEMU, piping the
I/O through DOSEMU itself between the Linux program and the DOS "console"...
Our idea is to memory pools of every dosemu session running at the same time.

I checked the way that this works right now.  And it appears that the
memory is allocated at run time, but when the dos program gives it up,
dosemu hoards it.


Standard memory footprint: (dosemu has gone back to one process which
helps this considerably.  I think we might be done here)

The memory requirements to run the basic 640K dosemu session needs to
be shrunk down.  I currently have no idea now to accomplish this one.
(Would threads help this one?)


Terminal input:

The extended keys (ex: F12, Shift-F5, Controll-Pageup, Alt-Shift) must
be recognized by dosemu.  Some keys like the F11 & F12 must be added
as specified in the TNT (which is now becoming integrated into the dos
FAQ (which is now the dosemu HOWTO)).
Pageup, and tilda (that little squigle) fall into this catagory
too.  However to get things like Shift-F5 to work, a special kind of
process must be made.  This process must be rigged so that when the 
correct sequence to represent the shift key being pressed, is passed
to the dosemu system,  dosemu sets a "sticky" shift bit.  This bit
should cause ALL keys pressed after it to work like the shift key is
being pressed.  Then there needs to be a sequence to turn off the
sticky shift bit, so that people can "let go" of the shift key.

After that a sticky alt, unalt, ctrl, and un-ctrl need to be created.

The next project after that is to find which of the keys like pageup,
pagedown, end, home, insert, Tab, and Delete have entries in the
terminfo, And for any keys that don't have entries, create new
"standards" of where to add them, and add them in.




Networking:
        I've seen some people say that they wanted novel networking to
work under dosemu, and i just wanted to say that I believe that novel 
networking belongs in the kernel, not in dosemu.  This would allow you
to hook your linux machine to a novel network, mount the novel drive, 
then run dosemu and mount the directory as a drive.

This can be more easily
accomplished by running an NFS NLM on the NetWare server and mounting
the volumes on your linux box and then using the redirector.
However, this is not acceptable to many users.  Some software
systems are built arround drive mappings using Novell commands like
map to dynamically change drive mappings etc.

[Quote from tim]
{IPX emulation -
{I am writing an emulator module for DOSEMU which translates the DOS IPX 
{API calls into Linux IPX socket calls. Since the release of patch level 
{14 of Linux, there is a kernel driver for the IPX protocol.  Although it 
{has some bugs, I am confident that they will be worked out soon, and I 
{have also heard of another, independent eot from memory image (this would
decrase the delay before you run
        your program.

automatic dos program execution
        1. write a shell script to do it.
                (possibly write a "dcopy" command that when copying a
                        XXX.exe file, creates a XXX shell script to
                        run that program automatically.
        2. automatic binaray execution by moddifiying the exec() process
                in the kernel

virtual dos integration.

------------------------------------------------------------------------
The following is a list of the projects that have been completed:

Debugging:
[Quote from ted]
{One request --- it would be really, really nice if *nothing* were sent
{to STDERR if all debugging options are turned off; debugging output
{should only show up if the user requests it.  Better yet, it should be
{written to a file like /tmp/dosemu-debug.<pid>, so the user doesn't need
{to mess with redirecting STDERR to a file. 
{
{                                               - Ted

------------------------------------------------------------------------
dosemu historical information:

dosemu .4 - ran dos shell & practically no programs.  had no features
to run most programs & emulator was broken. Performance: unbearable.

dosemu .49 - ran dos shell & had features to run many programs.
emulator was broken. Performance: miserable.

dosemu .50 - should be able to run many programs and
will actually work!  :)  Performance: still miserable.

dosemu .52+ - should be able to run many programs, actually work, and 
performace should go off the scale!  (Let's see... 'fair'...or just 
maybe even 'good' is more like it)

dosemu .60 - (when released in April 1995) Current hopeful plans to make 
it support Microsoft Windows 3.1 and real games like DOOM, SimCity 2000, 
Xwing, and Flight Simulator at satisfactory speed!  We need your HELP
to make them work well - if you know how VCPI works, please contact us!

Performance standards:

(best)  awful           
        horibble        
        god awful       
        terrible        (486dx-33 = 386dx-33?)(note diff of floating point)
        miserable       (486dx-50 = 386dx-33?)(note diff of floating point)
(worst) unbearable      


------------------------------------------------------------------------
Current dosemu information:

Latest release: 0.60
Development version: 0.60.0

Note:  Don't look for the development version unless you are planning
on doing development work, because often certain features can be
totally screwed on a development version because they have not been
tested.  Bleeding-edge Linuxxers are welcome to try the development
version out, as long as they claim responsibility for using it :-)

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

List of dosemu contributors addresses(in no paticular order):

Andrew.Tridgell		- tridge@arvidsjaur.anu.edu.au
Jochen Hein		- Hein@Informatik.TU-Clausthal.de
Jason E Gorden          - gorden@jegnixa.hsc.missouri.edu
Lam Lai Yin, Savio      - lam836@cs.cuhk.hk
Tim Bird                - ??????
Alistair MacDonald      - am20@unix.york.ac.uk
Lawrence K Mao          - lkmao@quark.SFSU.EDU
Ronnie                  - ronnie@epact.se
Mark Rejhon             - marky@magmacom.com
Michael E. Deisher      - deisher@enws99.EAS.ASU.EDU
James Maclean           - macleajb@ednet.ns.ca
Hans Lermen		- lermen@elserv.ffm.fgan.de
Larry Stephan           - jlarry@ssnet.com
Lutz Molgedey           - lutz@summa.physik.hu-berlin.de
Amit Margalt            - amit@tavis.enet.dec.com
Marty Leisner		- leisner@sdsp.mc.xerox.com
Dong Liu		- dliu@faraday-gw.njit.edu
Scott Buchholz          - scottb@eecs.nwu.edu
Tim Van der Linden	- timvdl@innet.be
John Davis		- davis@space.mit.edu
Kang-Jin Lee		- lee@tengu.in-berlin.de
Matthew Grant		- grantma@ritz.equinox.gen.nz
David Hansen		- dhansen@networksnw.com
John Kohl		- jtk@atria.com
Kevin P Lawton		- bochs@world.std.com
Rod May			- stoke@melbourne.DIALix.oz.au
WAYNE P MEISSNER	- n1046128@student.fit.qut.edu.au
David Etherton		- etherton@megatek.com
Vinod G Kulkarni
Steffen Winterfeld	- wfeldt@itp.uni-leipzig.de
Corey Sweeney		- corey@bbs.xnet.com
Rainer Zimmermann	- zimmerm@Informatik.Uni-Marburg.de
Alberto Vignani		- alberto.vignani@torino.alpcom.it
Erik Mouw		- (currently no net connection)
