This is a brief description of how to install LPmud 3.2(.1) on an Amiga.
See also README.Amiga for details.

Compiling the driver
--------------------
  Unpack the driver source into a directory, keeping the subdirectory
  structure.
  Copy the files 'machine.h', 'config.h', and 'Makefile' from hosts/amiga
  to the top directory.

  Edit the Makefile, defining where the lib and bin is, and selecting
  your compiler and your type of net communication.

  Check definitions in config.h, most are probably good as they are.
  The ones that are important wrt. which mudlibs can be run are COMPAT_MODE,
  NATIVE_MODE, OLD_PREVIOUS_OBJECT_BEHAVIOUR, OLD_EXPLODE_BEHAVIOUR,
  INITIALIZATION_BY___INIT You get the most 2.4.5 compatibility if you define
  all of these but NATIVE_MODE . Likewise, you get the most 3.0 compatibility
  when you define all but COMPAT_MODE. The most interesting and versatile
  configuration is not to set any of these ('cross-compat mode').

  Do 'dmake'. This leaves you after some time with the executable 'driver'
  in the directory.
  Do also 'dmake playmud' if you want the client program for local access.

Installing the driver
---------------------
  Copy the driver executable and a client program (like PlayMud) into your
  command search path.

  The driver expects the assign MUDLIB: point to the top directory of the
  mudlib, and SWAP: to a non-RAM-directory to put it's swap file there.
  If erq is used, the assign MUDBIN: has to point to the directory with
  the erq executables.
  The driver needs at least 50k stack.

  Make a directory 'mud', which contains a dir named 'src', 'bin' and 'lib'.
  Move the game driver source (this code) to the src directory.

Running the driver
------------------
  Given that all assigns and stacksize are set, the driver can be run
  with 'driver' (see README.3.2 for command options).

  If you see the message 'Setting up ipc', then you are up and running.
  Test with 'letnet localhost 8888' (if you're running AmiTCP) or
  with 'PlayMud' (if you're not running AmiTCP); that is, when you change
  the port number in config.h , the changed number does apply.

  When used for actual mud runs, the driver's output should be redirected
  to a mudlib readable file, e.g. 'driver >>MUDLIB:parse.log'.
  The '>>' are necessary to make the file both read- and writeable.

  You might experience 'stack panic's if your mudlib uses large
  savefiles. Reason is that restore_object() needs lots of local stack
  for large savefiles. In such cases, truncate the savefile and/or
  give the driver more stack.

Installing the Mudlib
---------------------
  Mudlibs are available for anonymous ftp, e.g. from ftp.imaginary.com,
  ftp.cd.chalmers.se or ftp.cs.tu-berlin.de . Most mudlibs are from actual
  Muds and should be used for evaluation purposes only (Copyright issues
  can hardly be enforced, but nevertheless are taken seriously -
  infringements will give the offender a bad stand in the (mud) community).

  To install a mudlib, simply unpack it. To use it, assign MUDLIB: to it's
  top directory and start the driver. However, small modifications might
  need to be done before.

  If a mudlib is not written for use with Amylaar 3.2.1, modifications have
  to be made: the include files erq.h and mudlib/sys/#?.h must be copied
  into the mudlib's include directory, and the master and the simul_efun
  object must be merged with the corresponding objects in the driver's
  mudlib/ directory.


  LPMud 2.4.5
  -----------
    This very traditional (read: old) mudlib is still popular as it's free
    and very simple. Amylaar 3.2.1 supports it fully, one just has to copy
    all the include files as described above, and to replace obj/master.c
    and obj/simul_efun.c with the corresponding objects from the driver.
    Compat mode driver required.


  Nightfall
  ---------
    Nightfall was written for Amylaar, thus only the driver include files
    in a given mudlib release (located in secure/) might need update.
    Nightfall uses a slightly patched driver which allows logins on multiple
    ports, but provides compability code on its own.
    Cross-compat mode plus (e)uids driver required.


  One Step Beyond
  ---------------
    One Step Beyond was written for Amylaar, thus only the driver include
    files in a given mudlib release (located in sys/driver/) might need
    update. One Step Beyond uses a slightly patched driver which allows
    logins on multiple ports, but provides compability code on its own.
    Cross-compat mode plus (e)uids driver required.


  Morgengrauen
  ------------
    Morgengrauen was written for Amylaar, thus only the driver include files
    in a given mudlib release (located in secure/) might need update.
    Some Mudlib releases come without ACCESS.ALLOW in the top directory, in
    this case copy that file from mudlib/ACCESS.ALLOW or
    hosts/amiga/ACCESS.ALLOW.
    Morgengrauen uses a patched driver which allows logins on multiple ports
    and offers an additional efun. If necessary, extend it's simul_efun.c
    with:

      #if !__EFUN_DEFINED__(query_comm_stat)
      public int * query_comm_stat()
      {
        return ({ 0, 0 });
      }
      #endif

      // The following only when using a single-ported driver.
      public varargs int query_mud_port(mixed arg)
      {
        if (arg && !intp(arg) && !objectp(arg))
          raise_error("* Illegal argument 1 to sefun query_mud_port\n");
        if (!arg || !intp(arg) || arg == 1)
          return efun::query_mud_port();
        if (arg == -1)
          return 1;
        return 0;
      }

    Cross-compat mode plus (e)uids driver required.


  TubMud
  ------
    TubMud was over the time adapted for Amylaar, thus only the driver
    include files in a given mudlib release (located in sys/) might need
    update. Due to its complexity, a stack of at least 200k is necessary.
    The master object is /kernel/master.c, to be specified on the driver
    commandline with the -M-option.
    Using the mudlib on Amiga will result in several errors which cause
    is still unknown (sorry).
    Compat mode driver required, start with option -M/Kernel/master.c .


Final Advice
------------
  One does not need to be a hardcore mudder to install ones own mudlib, but
  doing so is also not for the squeamish.
  Persistance and a certain willingness to experiment are very recommended.

