home *** CD-ROM | disk | FTP | other *** search
/ Amiga Special: Spiele Hits / Hits-CD.iso / aminet / spiele / ammud1_1.lha / AmigaMUD / Doc / SMUD.txt < prev    next >
Text File  |  1997-06-21  |  5KB  |  114 lines

  1. AmigaMUD, Copyright 1997 by Chris Gray
  2.  
  3.  
  4.             The 'SMUD' Client Program
  5.  
  6. The SMUD program is a simple text-only client for use with an AmigaMUD
  7. server running on the same machine. It can be run only from a shell
  8. since it relies on standard input and output working. SMUD is good for
  9. quick runs since it is much smaller than the full 'MUD' client
  10. program. SMUD can also be valuable on a system with limited memory. I
  11. typically use SMUD for compiling the standard scenario, with
  12.  
  13.     SMUD <AmigaMUD:Src/go
  14.  
  15. where 'AmigaMUD:' is an assign to the directory containing the
  16. AmigaMUD stuff including the scenario sources, and 'go' is a small
  17. source file there that mainly just sources all the rest of the files
  18. in the correct order. I also use SMUD for quick SysAdmin runs.
  19.  
  20. SMUD accepts a few flags on the command line:
  21.  
  22.     -a - tells SMUD that the device it is talking to is not an Amiga
  23.     console device or other device that accepts ANSI control
  24.     sequences. SMUD will then not try to blank passwords.
  25.  
  26.     -r - tells SMUD that it is running remotely. This disables its
  27.     ability to run an editor. If a BBS system uses SMUD to allow
  28.     text-only connections through some kind of pipe device, it
  29.     should specify this flag.
  30.  
  31.     -T - tells SMUD to use 'MUD test port' as the name of the port to
  32.     connect to the AmigaMUD server on.
  33.  
  34.     -N <name> - use <name> as the name of the character for the first
  35.     playing session, rather than prompting for a name.
  36.  
  37.     -W <word> - use <word> as the password for the first playing
  38.     session. If it is incorrect, it counts as the first attempt,
  39.     and only two attempts remain. This is normally used in
  40.     conjunction with -N, but can be used without it.
  41.  
  42.     -t<value> - use value as an inactivity timeout. If no user input
  43.     occurs after the given interval (which is given in minutes),
  44.     then the client will be disconnected from the server.
  45.     Unfortunately, since there is no way to abort a Dos read
  46.     request, SMUD itself cannot exit until its pending read
  47.     request returns. Using the -p flag allows the timeouts to work
  48.     correctly, but at the expense of continual extra system load.
  49.  
  50.     -f<value> - the given decimal number is passed to "mud.library"
  51.     to control some client caching. There must be no spaces
  52.     between the 'f' and the value. The value is the sum of the
  53.     following:
  54.  
  55.         1 - cache procs. SMUD will cache the definitions (but not
  56.         the bodies) of builtin and user procs in the AmigaMUD
  57.         language. This saves refetching them when parsing
  58.         procs (such as after editing one).
  59.  
  60.         2 - cache symbols. SMUD will cache the values of symbols
  61.         that it has fetched from the server. Again, this cuts
  62.         down on communications when parsing AmigaMUD procs.
  63.  
  64.     Note that both of these flags increase the amount of memory
  65.     consumed by SMUD. This memory is not freed until SMUD exits.
  66.     The default value of 'FLAGS' is 3, i.e. both caches on. Note
  67.     that this is the opposite of the default for the full MUD
  68.     client program.
  69.  
  70.     -p - this flag puts SMUD into a polling mode. Normally SMUD uses
  71.     the standard Amiga asychronous I/O using DOS packets. This
  72.     is the proper way to do asynchronous I/O on the Amiga.
  73.     Unfortunately, the console.device does not respond to a
  74.     request to abort an outstanding read request. This means that
  75.     when the server uses "NukeClient" to shut down a client that
  76.     is connected via SMUD, SMUD itself cannot exit until that read
  77.     request is satisfied (typically by the user hitting RETURN).
  78.     In polling mode, there is no outstanding read request - SMUD
  79.     continually (every 1/10 second) checks for available
  80.     characters, and will only issue a read if characters are
  81.     available. This way, "NukeClient" can cause SMUD to exit, and
  82.     thus return back to a BBS which can drop the line. Note,
  83.     however, that this mode continually uses extra CPU time on the
  84.     host machine, whether the player is doing anything or not.
  85.  
  86.     -s<value> - this flag specifies the size of stack to use when SMUD
  87.     calls out to an external editor. The default size is 9996
  88.     bytes, and the minimum size is 4096 bytes.
  89.  
  90.  
  91. SMUD is able to start up an external editor for editing strings and
  92. AmigaMUD procedures, just like the full MUD program. It also does this
  93. based on the "MUDEDITOR"/"EDITOR" environment variables and will
  94. default the editor name to be "Ed". As with MUD, the editor must not
  95. "auto detach". If a scenario uses the enquiry routines to ask about
  96. the nature of the effects available on a SMUD client, it will reply
  97. with all empty and zero values.
  98.  
  99. SMUD uses the Amiga OS packet interface to do asynchronous I/O with
  100. its standard input and output connection. It does not use "RAW" mode
  101. on a console screen. It is possible to call up SMUD from a BBS system
  102. which is not capable of calling up the full MUDAgent program. This
  103. will allow users of that BBS to access AmigaMUD, but they will not get
  104. the graphics/audio/mouse capabilities. Some BBS operators will want to
  105. use the -p option when doing this, so that they can boot players out
  106. of the SMUD program. This also allows the inactivity timeout to
  107. operate.
  108.  
  109. SMUD requires a stack of at least 10000 bytes. It will exit right away
  110. if the stack is less than that size. Use the shell 'Stack' command to
  111. setup a larger stack. When parsing extremely deeply nested AmigaMUD
  112. code, an even larger stack might be needed, but I have not needed one
  113. for parsing all of the standard scenario.
  114.