home *** CD-ROM | disk | FTP | other *** search
- /* @(#)README.DOS 1.4 Mike O'Carroll 05 Jan 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), though it uses the DOS box
- (or a dedicated DOS mail-server on a network) to handle the actual data
- transfer.
-
- 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 6.5 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 :-)
-
- The first thing was to cut the number of messages from 1000 to 500.
- Sorry all you people with bulging folders [but can you really handle 1000
- in one packet?].
-
- This still left only 3 or 4 bytes [he exaggerates] for other things, so
- I have made Mush 6.5 run by the use of overlays (refer to your local
- science museum, folks). This in itself leads to a number of problems:
-
- i) It runs rather slowly, especially when the overlays are being
- pulled off an already overloaded file-server on a network.
-
- ii) Control-C's and other things causing longjump()s are tricky and if
- they happen into a non-resident overlay, often fatal. [OK, always
- fatal.] The supplied code appears to work, and does handle
- interrupt signals OK as long as the user is patient and allows
- things to settle down between each one. I tried to put all the
- "dangerous" code in the root area, but it didn't save enough room.
- Any experts out there? ...
-
- I have retained a working version 5.7 which is mush [sic] 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 6.5 under
- OS/2.
-
- 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; 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 availabled which runs in either mode. For completeness,
- "uuio.exe" (the MTA) is also available, but is Dos only at present.
-
- 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=lena.uucp
- 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 usable if you allow direct
- uucp [sic] commands from your host; our uupc has no uucp command at present.
-
- 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. Mush6 is an
- overlayed Dos version, mushn is not overlayed. Mushp is the OS/2
- protected mode version, and mushpg is a simple pager. Mailer is
- the uupc front-end, suitably modified for mush (and dual-mode), while
- uuio is the Dos MTA.
-
- 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
- =======
-
- 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
-
- There is a debug flag, "-xN" which may help debug your "systems" file.
- Try an N between 3 and 10 - 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.
-
-
-
-
-
- VERSION 7.1 UPDATE
- ==================
-
- Most of the above remarks apply equally to 7.1. It is slightly larger,
- and the Dos overlay scheme needs reorganising as some changes from 6.5
- have caused an incredible amount of disk activity during initialisation.
- I'll get round to it one day (but now there's 7.1.2! - woe :-)
-
- Once running, it isn't too bad.
-
- 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.
-