home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / uucp / mush71.zip / README.DOS < prev   
Text File  |  1990-09-24  |  10KB  |  291 lines

  1. /* @(#)README.DOS 1.4   Mike O'Carroll 05 Jan 90 */
  2.  
  3. INTRO
  4. =====
  5.  
  6. The DOS (tm) patches for the Mail User's Shell were intended to allow Mush
  7. to be used as a font-end to UUPC, a PD implementation of UUCP for IBM PCs
  8. and compatibles.  Mush also runs under OS/2(tm), though it uses the DOS box
  9. (or a dedicated DOS mail-server on a network) to handle the actual data
  10. transfer.
  11.  
  12. The above notwithstanding, Mush should be usable with any MTA, given minor
  13. modifications, so long as the latter can be run with a command of the
  14. form:
  15.  
  16.     <mta> [flags] addressee
  17.  
  18. This may exclude some PC products with an integrated menu system on the
  19. front-end.
  20.  
  21. Needless to say, there are problems moving any significant body of
  22. software from Unix(tm) to DOS.  There now follows a brief discussion of
  23. some of these and their solutions (if any).
  24.  
  25.  
  26.  
  27. PROBLEMS
  28. ========
  29.  
  30. 1) Size!  These days, mini (and many micro) users tend to assume infinite
  31. memory.  DOS restricts one to 640K, barring a whole range of extensions,
  32. sidesteps and general kludges.  In its "straight" form, Mush 6.5 occupies
  33. about 240K, plus dynamically assigned memory.  While this in itself is no
  34. problem, remember that, to be useful, Mush needs to execute other programs
  35. such as an editor, pager, the MTA and so on.  Add to this all your
  36. favourite TSR programs, a decent shell (I prefer sh to command.com) and
  37. life soon becomes claustrophobic.
  38.  
  39.     As an example, the full Dos version allows use of the MKS port of vi,
  40. but not my port of e2 (the Rand editor - I like to use the same editor
  41. under Dos & Unix too :-)
  42.  
  43.    The first thing was to cut the number of messages from 1000 to 500.
  44. Sorry all you people with bulging folders [but can you really handle 1000
  45. in one packet?].
  46.  
  47.    This still left only 3 or 4 bytes [he exaggerates] for other things, so
  48. I have made Mush 6.5 run by the use of overlays (refer to your local
  49. science museum, folks).  This in itself leads to a number of problems:
  50.  
  51.      i) It runs rather slowly, especially when the overlays are being
  52.         pulled off an already overloaded file-server on a network.
  53.  
  54.     ii) Control-C's and other things causing longjump()s are tricky and if
  55.         they happen into a non-resident overlay, often fatal. [OK, always
  56.         fatal.] The supplied code appears to work, and does handle
  57.         interrupt signals OK as long as the user is patient and allows
  58.         things to settle down between each one.  I tried to put all the
  59.         "dangerous" code in the root area, but it didn't save enough room.
  60.     Any experts out there? ...
  61.  
  62. I have retained a working version 5.7 which is mush [sic] smaller, if anyone
  63. wants.  Of course, you lose some nice features.  There is no problem with
  64. OS/2.  I'll rephrase that.  There is plenty of room to run Mush 6.5 under
  65. OS/2.
  66.  
  67. OK, I exaggerate.
  68.  
  69. 2) Filenames are more restricted.  Things like '&' are acceptable to DOS,
  70. but when they appear in a system() call to OS/2, they are interpreted as
  71. separators.  I settled for things like "m_xxxxx.tmp" which are at least
  72. identifiable as temporaries by the suffix.
  73.  
  74. 3) DOS and OS/2 lack "standards" in the sense of PATHs, HOMEs and library
  75. directories.  Of course you can still use "/usr/lib/...", but is it on
  76. drive A:, or C:, or ...?  These systems do have environments, but they
  77. can rapidly become clogged and unmanageable when you have to specify HOME,
  78. MAILDIR, MAILBOX, HELPDIR, LIBDIR, SPOOLDIR, TEMPDIR, LOGNAME, REALNAME,
  79. ..., enuff said?
  80.  
  81. The procedure used by UUPC is to make the environment point to 2
  82. configuration files, a "system" config and a "user" config.  These have
  83. been adopted and adapted for Mush.
  84.  
  85. 4) Again, on the subject of paths.  Most DOS calls allow the use of '/' in
  86. place of the usual '\'.  However, some operations invoke a system() which
  87. calls up COMMAND.COM; unless you have discovered the secret operation which
  88. makes DOS flip its '/' and '\' and recognise '-' for flags, you are stuck
  89. with path\names\like\this.  Some experimentation with your mush.rc setup
  90. may be necessary here.
  91.  
  92. Don't be alarmed by messages like
  93.  
  94.         ... saving msg 1 in c:\usr\foo/junkmail
  95.  
  96. i.e. with mixed slashes.  However, if you get *error* messages saying
  97. things like "can't open \mixed/slashes", this *might* be the problem if it
  98. comes from an externally exec()ed program such as a pager.  A typical
  99. example is given in the next section.
  100.  
  101. 5) Pipes.  COMMAND.COM users may be fooled by their ability to do things
  102. like:
  103.  
  104.         C> verbose_prog | pg
  105.  
  106. However, this is just a cover-up for
  107.  
  108.        C> verbose_prog >temp
  109.       pg <temp
  110.       del temp
  111.  
  112. I have written a simple DOS piper which works so long as you don't expect
  113. the two ends really to play concurrently. [What?  It cheats just like
  114. COMMAND.COM, of course.]
  115.  
  116. The "pipes" are created in a temporary directory.  This may be defined as
  117.  
  118.     set tmpdir=c:\tmp
  119.  
  120. in your environment, or in the mush.rc file.  If it is not defined, mush
  121. will use the Home parameter in your usr.rc file (see below).  Since
  122. the "pipe" files are picked up by another command, this is one case
  123. where the slashes must\go\this\way.
  124.  
  125. 6) Unix users tend to be blase' about things like
  126.  
  127.     fopen("zork", "w");
  128.     ...
  129.     unlink("zork"); /* i.e. no fclose */
  130.  
  131. This can upset DOS and/or OS/2 in strange ways.  [And I now know yet another
  132. way to bring your network down, but I ain't telling ;-) ]
  133.  
  134. 7) The standard distribution of the uupc front-end is (i) Dos only and
  135. (ii) inserts its own headers as well as mush's.  A slightly modified
  136. "mailer.exe" is availabled which runs in either mode.  For completeness,
  137. "uuio.exe" (the MTA) is also available, but is Dos only at present.
  138.  
  139. CONFIGS
  140. =======
  141.  
  142. 1) The following are something like the author's UUPC config files.
  143. They are defined to the environment by
  144.  
  145.     set UUPCSYSRC=[<drive>:]<path>\sys.rc
  146.     set UUPCUSRRC=[<drive>:]<path>\usr.rc
  147.  
  148.    sys.rc
  149.  
  150.     Domain=lena.uucp
  151.     NodeName=mocpc
  152.     Mailserv=lena
  153.     MailDir=e:/usr/mail
  154.     MushDir=c:/usr/lib/mush
  155.     NewsDir=c:/u/usr1/moc/news
  156.     ConfDir=c:/usr/lib/uucp
  157.     SpoolDir=e:/usr/spool/uucp
  158.     PubDir=e:/usr/spool/uupublic
  159.     TempDir=e:/tmp
  160.     TZOffset=0000
  161.     TZName=GMT
  162.  
  163.    usr.rc
  164.     Mailbox=moc
  165.     Name=Mike O'Carroll
  166.     Home=c:\u\usr1\moc
  167.     Folders=folders
  168.     Editor=e2 %s
  169.     Pager=pg %s
  170.     Signature=Signatur.e
  171.  
  172. Only MushDir, MailDir, Mailbox and Home are required by Mush itself.  The
  173. slashes are not guarranteed to be right for all uses.
  174.  
  175. The NodeName and Domain may be the same.  On our system, they are different
  176. as there are various nodes hanging off a central host.  The latter
  177. is defined as the Domain, and is the only name to appear to the outside
  178. world (except that the NodeName is used in generating message IDs, to
  179. facilitate tracing).
  180.  
  181. The NewsDir is currently unused.  PubDir is usable if you allow direct
  182. uucp [sic] commands from your host;  our uupc has no uucp command at present.
  183.  
  184. 2) A sample "mush.rc" file is included in this distribution. As with
  185. the Unix version, the local version (in Home) overrides the default in
  186. MushDir.
  187.  
  188.  
  189. INSTALLATION
  190. ============
  191.  
  192. 1) Put the .EXEs in a suitable directory in your PATH.  Mush6 is an
  193. overlayed Dos version, mushn is not overlayed.  Mushp is the OS/2
  194. protected mode version, and mushpg is a simple pager.  Mailer is
  195. the uupc front-end, suitably modified for mush (and dual-mode), while
  196. uuio is the Dos MTA.
  197.  
  198. 2) Put the .rc files in a suitable library directory.  Set UUPCSYSRC
  199. and UUPCUSRRC to point to the correct locations of sys.rc and usr.rc.
  200. This might be done in your autoexec.bat.
  201.  
  202. 3) Create the directories defined in your sys.rc and usr.rc files.
  203.  
  204. 4) Put "cmd_help" and "mush.rc" in the directory defined as MushDir.
  205.  
  206. 5) Put the "systems" and "commands" file (if any) in the directory defined
  207. as ConfDir.
  208.  
  209. 6) Put your own "mush.rc" (if required) in your Home directory.
  210.  
  211.  
  212. RUNNING
  213. =======
  214.  
  215. To read mail, type
  216.  
  217.     mush
  218.  
  219. To send mail, type
  220.  
  221.     mush user@address
  222. or
  223.     mush address!user
  224.  
  225. if your mail host is pure uucp!
  226.  
  227. There is a "-S" flag which leaves you in mush, even if there is no mail.
  228. The curses mode "-C" is not implemented.
  229.  
  230. Periodically, connect to your host using
  231.  
  232.     uuio
  233.  
  234. There is a debug flag, "-xN" which may help debug your "systems" file.
  235. Try an N between 3 and 10 - it gets very verbose very quickly.
  236.  
  237.  
  238.  
  239. DOCUMENTATION
  240. =============
  241.  
  242. Apart from these READMEs, there is a Unix style "man" and a built-in
  243. online "help".  If you've used another mailer, you should pick things
  244. up quickly enough.
  245.  
  246.  
  247. THAT'S IT
  248. =========
  249.  
  250. All trademarks recognised.  Unless I failed to recognise any.
  251.  
  252. I am not the author of mush, nor uupc, nor the editor e2.  However, I
  253. am prepared to collate bug reports and provide fixes from time to time.
  254. I am in touch with the authors of mush, and will upgrade the Dos/OS-2
  255. versions some time after I receive fixes to the Unix one.
  256.  
  257. One day, there may be a PM front-end, and an OS/2 version of the MTA.
  258. One day.
  259.  
  260.  
  261.  
  262.  
  263.  
  264. VERSION 7.1 UPDATE
  265. ==================
  266.  
  267. Most of the above remarks apply equally to 7.1.  It is slightly larger,
  268. and the Dos overlay scheme needs reorganising as some changes from 6.5
  269. have caused an incredible amount of disk activity during initialisation.
  270. I'll get round to it one day (but now there's 7.1.2! - woe :-)
  271.  
  272. Once running, it isn't too bad.
  273.  
  274. I have checked this version for compatibility with **ix by uploading to
  275. our SCO system.  The same code compiles and runs, with only the appropriate
  276. -D defines to the compiler.  Just 1 source to maintain - bliss :-)))
  277.  
  278. There are some small deviations from the "standard" **ix mush (sorry
  279. Dan & Bart), mainly to make maintenance under the 2 (3?) operating
  280. systems easier, but these mainly have to do with locating things like
  281. the help file.  I have added a UK date format for those of our users
  282. who get confused by 6/5/90 ( == 6th of May to me).  The cmd_help file
  283. should be amended accordingly for %pick%. [ Many, many years ago, I
  284. was nearly refused admission to a bar in SF.  My ID gave my birthday
  285. as 12/6, and this was August.  Think about it. As it happens, I wish I
  286. had been refused entry, but that's another story :-) ]
  287.  
  288. I am still prepared to collect bug reports and provide occasional fixes.
  289. This version is fairly well hammered locally, but of course people tend
  290. to use only a small subset of all the features.
  291.