home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 2 BBS
/
02-BBS.zip
/
MUSHP71.ZIP
/
README.DOS
< prev
next >
Wrap
Text File
|
1991-01-09
|
11KB
|
307 lines
/* @(#)README.DOS 7.1.1 Mike O'Carroll 20 Dec 90 */
INTRO
=====
The DOS (tm) patches for the Mail User's Shell were intended to allow Mush
to be used as a font-end to UUPC, a PD implementation of UUCP for IBM PCs
and compatibles. Mush also runs under OS/2(tm).
The above notwithstanding, Mush should be usable with any MTA, given minor
modifications, so long as the latter can be run with a command of the
form:
<mta> [flags] addressee
This may exclude some PC products with an integrated menu system on the
front-end.
Needless to say, there are problems moving any significant body of
software from Unix(tm) to DOS. There now follows a brief discussion of
some of these and their solutions (if any).
PROBLEMS
========
1) Size! These days, mini (and many micro) users tend to assume infinite
memory. DOS restricts one to 640K, barring a whole range of extensions,
sidesteps and general kludges. In its "straight" form, Mush 7.1 occupies
about 240K, plus dynamically assigned memory. While this in itself is no
problem, remember that, to be useful, Mush needs to execute other programs
such as an editor, pager, the MTA and so on. Add to this all your
favourite TSR programs, a decent shell (I prefer sh to command.com) and
life soon becomes claustrophobic.
As an example, the full Dos version allows use of the MKS port of vi,
but not my port of e2 (the Rand editor - I like to use the same editor
under Dos & Unix too :-)
This leaves only 3 or 4 bytes [he exaggerates] for other things, so
I have made Mush 7.1 run by the use of a swapper (refer to your local
science museum, folks). This in itself leads to a number of problems:
i) It slows things down a bit, but with a decent disk, I believe
it to be acceptable.
ii) Control-C's and other things causing longjump()s can cause problems.
iii) For some reason, the MS free() function seems to screw up memory
so that subsequent swapping hangs. So mush currently expands
continually with use. Of course, you get the memory back when
you exit, and I haven't hit the limit on any "reasonable" session
with several hundred commands. I hope this problem will go away
with MS C v6, or perhaps a new swapper.
I have retained a working version 5.7 which is mush [sorry] smaller, if anyone
wants. Of course, you lose some nice features. There is no problem with
OS/2. I'll rephrase that. There is plenty of room to run Mush 7.1 under
OS/2. NOTE THAT THE DOS VERSION WILL NOT RUN IN THE DOS BOX. But with
all that space in OS/2, who needs it?
OK, I exaggerate.
2) Filenames are more restricted. Things like '&' are acceptable to DOS,
but when they appear in a system() call to OS/2, they are interpreted as
separators. I settled for things like "m_xxxxx.tmp" which are at least
identifiable as temporaries by the suffix.
3) DOS and OS/2 lack "standards" in the sense of PATHs, HOMEs and library
directories. Of course you can still use "/usr/lib/...", but is it on
drive A:, or C:, or ...? These systems do have environments, but they
can rapidly become clogged and unmanageable when you have to specify HOME,
MAILDIR, MAILBOX, HELPDIR, LIBDIR, SPOOLDIR, TEMPDIR, LOGNAME, REALNAME,
..., enuff said?
The procedure used by UUPC is to make the environment point to 2
configuration files, a "system" config and a "user" config. These have
been adopted and adapted for Mush.
4) Again, on the subject of paths. Most DOS calls allow the use of '/' in
place of the usual '\'. However, some operations invoke a system() which
calls up COMMAND.COM (or CMD.EXE for OS/2); unless you have discovered the
secret operation which makes DOS flip its '/' and '\' and recognise '-' for
flags, you are stuck with path\names\like\this. Some experimentation with
your mush.rc setup may be necessary here.
Don't be alarmed by messages like
... saving msg 1 in c:\usr\foo/junkmail
i.e. with mixed slashes. However, if you get *error* messages saying
things like "can't open \mixed/slashes", this *might* be the problem if it
comes from an externally exec()ed program such as a pager. A typical
example is given in the next section.
5) Pipes. COMMAND.COM users may be fooled by their ability to do things
like:
C> verbose_prog | pg
However, this is just a cover-up for
C> verbose_prog >temp
pg <temp
del temp
I have written a simple DOS piper which works so long as you don't expect
the two ends really to play concurrently. [What? It cheats just like
COMMAND.COM, of course.]
The "pipes" are created in a temporary directory. This may be defined as
set tmpdir=c:\tmp
in your environment, or in the mush.rc file. If it is not defined, mush
will use the Home parameter in your usr.rc file (see below). Since
the "pipe" files are picked up by another command, this is one case
where the slashes must\go\this\way.
6) Unix users tend to be blase' about things like
fopen("zork", "w");
...
unlink("zork"); /* i.e. no fclose */
This can upset DOS and/or OS/2 in strange ways. [And I now know yet another
way to bring your network down, but I ain't telling ;-) ]
7) The standard distribution of the uupc front-end is (i) Dos only and
(ii) inserts its own headers as well as mush's. A slightly modified
"mailer.exe" is supplied which runs in either mode. For completeness,
"uuio.exe" (the MTA) is also available in versions for both systems.
There is now a UUPC Extended which should interface with mush (I haven't
tried it at the time of writing). It is available from pd2:<msdos2.uucp>
on simtel20.
CONFIGS
=======
1) The following are something like the author's UUPC config files.
They are defined to the environment by
set UUPCSYSRC=[<drive>:]<path>\sys.rc
set UUPCUSRRC=[<drive>:]<path>\usr.rc
sys.rc
Domain=ee.leeds.ac.uk
NodeName=mocpc
Mailserv=lena
MailDir=e:/usr/mail
MushDir=c:/usr/lib/mush
NewsDir=c:/u/usr1/moc/news
ConfDir=c:/usr/lib/uucp
SpoolDir=e:/usr/spool/uucp
PubDir=e:/usr/spool/uupublic
TempDir=e:/tmp
TZOffset=0000
TZName=GMT
usr.rc
Mailbox=moc
Name=Mike O'Carroll
Home=c:\u\usr1\moc
Folders=folders
Editor=e2 %s
Pager=pg %s
Signature=Signatur.e
Only MushDir, MailDir, Mailbox and Home are required by Mush itself. The
slashes are not guarranteed to be right for all uses.
The NodeName and Domain may be the same. On our system, they are different
as there are various nodes hanging off a central host. The latter
is defined as the Domain, and is the only name to appear to the outside
world (except that the NodeName is used in generating message IDs, to
facilitate tracing).
The NewsDir is currently unused. PubDir is currently unused. If you allow
direct uucp [sic] commands from your host, the only access allowed is to
SpoolDir; an extremely basic family mode uucp is supplied, though it only
handles single hops - e.g. PC to local Unix host.
2) A sample "mush.rc" file is included in this distribution. As with
the Unix version, the local version (in Home) overrides the default in
MushDir.
INSTALLATION
============
1) Put the .EXEs in a suitable directory in your PATH. Mushn7 is the
swapping Dos version and mushp is the OS/2 protected mode version. Mailer is
the uupc front-end, suitably modified for mush (and dual-mode), while
uuio is the Dos MTA. For OS/2, uuiof is a family mode equivalent of uucico
(the MTA). However, it will only run in the Dos coffin, not on raw Dos.
Uucpf is a dual mode version of the uucp command.
2) Put the .rc files in a suitable library directory. Set UUPCSYSRC
and UUPCUSRRC to point to the correct locations of sys.rc and usr.rc.
This might be done in your autoexec.bat.
3) Create the directories defined in your sys.rc and usr.rc files.
4) Put "cmd_help" and "mush.rc" in the directory defined as MushDir.
5) Put the "systems" and "commands" file (if any) in the directory defined
as ConfDir.
6) Put your own "mush.rc" (if required) in your Home directory.
RUNNING
=======
[Substitute mushn7 or mushp as appropriate, or rename the .EXEs]
To read mail, type
mush
To send mail, type
mush user@address
or
mush address!user
if your mail host is pure uucp!
There is a "-S" flag which leaves you in mush, even if there is no mail.
The curses mode "-C" is not implemented.
Periodically, connect to your host using
uuio [-n] [-xN]
The -n flag suppresses the name mangling for uucp commands, iff the Unix
name is acceptable to Dos. There is a debug flag, "-xN" which may help sort
out your "systems" file. Try an N between 2 and 5 - it gets very verbose
very quickly.
DOCUMENTATION
=============
Apart from these READMEs, there is a Unix style "man" and a built-in
online "help". If you've used another mailer, you should pick things
up quickly enough.
THAT'S IT
=========
All trademarks recognised. Unless I failed to recognise any.
I am not the author of mush, nor uupc, nor the editor e2. However, I
am prepared to collate bug reports and provide fixes from time to time.
I am in touch with the authors of mush, and will upgrade the Dos/OS-2
versions some time after I receive fixes to the Unix one.
One day, there may be a PM front-end, and an OS/2 version of the MTA.
One day.
DISCLAIMER
==========
I use mushp daily under OS/2 1.2 extended edition. The Dos version,
mushn7, is in daily use by others, but only under Dos 3.3.
Neither program has caused any serious problems to the best of my knowledge.
The above notwithstanding, these programs are offered in good faith, but
no reponsibility can be accepted for any crashes, loss of data, waste
of time or any other problems caused by, or suspected to have been caused
by, running of these and associated programs.
VERSION 7.1 UPDATE
==================
Most of the above remarks were written for v6.5, modified where appropriate
for 7.1. The latter is slightly larger, and the Dos overlay scheme used
in 6.5 has been replaced by the swapper. This has speeded up initialisation
dramatically.
I have checked this version for compatibility with **ix by uploading to
our SCO system. The same code compiles and runs, with only the appropriate
-D defines to the compiler. Just 1 source to maintain - bliss :-)))
There are some small deviations from the "standard" **ix mush (sorry
Dan & Bart), mainly to make maintenance under the 2 (3?) operating
systems easier, but these mainly have to do with locating things like
the help file. I have added a UK date format for those of our users
who get confused by 6/5/90 ( == 6th of May to me). The cmd_help file
should be amended accordingly for %pick%. [ Many, many years ago, I
was nearly refused admission to a bar in SF. My ID gave my birthday
as 12/6, and this was August. Think about it. As it happens, I wish I
had been refused entry, but that's another story :-) ]
I am still prepared to collect bug reports and provide occasional fixes.
This version is fairly well hammered locally, but of course people tend
to use only a small subset of all the features.