***** Eternity 2.00/0 Released

1)    Added an option to the "Withdraw Credit" command in the file editor to
      add a particular file to the file trashcan.

2)    Added an option "Allow MCI codes in messages."  This is a global toggle,
      and should probably be left off unless otherwise necessary.

3)    OUTBOUND.NOW will now be created when an echomail or netmail message is
      posted.

4)    When using the OF cmdkeys, the status line will now be updated to show
      the new AR flag status.

5)    A minimum logon rate has added to the system configuration.  Set it to
      0 to let anyone on.

6)    Eternity will no longer subtract file points if the file point system
      is not enabled.

7)    Eternity will no longer crash when a user attempts to flag a file number
      that is out of range.

8)    Added database support.  These can be used for BBS lists, request
      lists, and the like.  The command keys for this system are:

        WA - add to database
        WC - close database
        WD - delete from database
        WL - list database entries
        WO - open database
        WV - view database entry

      You can use the W command from the WFC menu, or the *W command keys
      from the SysOp menu to edit the database definitions.

***** Eternity 2.00/1 Released

9)    Added door MCI codes.  They are as follows:

        %A - actual BPS rate (ie 14400)
        %B - com port BPS rate (ie 19200)
        %N - node number
        %P - com port (0=local)

10)   When a user cleared their batch queue or removed files from their batch
      queue, ratios and time limits were not calculated correctly.  Fixed.

11)   Added an ansi chat function.  Press Shift-F10 to enter the ansi chat,
      Ctrl-F10 to enter line chat, or F10 to invoke either chatter depending
      on whether the user supports ansi.

***** Eternity 2.00/2 Released

12)   Added the BPS rate to the line that is printed before executing a
      protocol.  It now looks like this:

        "Wildfire is batch downloading at 14400 BPS."

13)   The ZVAR command keys have been changed from "OZ" to "-Z", which is
      what they should have started out as in the first place.  Although "OZ"
      will continue to work for a little while, it would be a good idea to
      change it to "-Z" as soon as possible.

14)   Fixed a bug in the ansichat module where things wouldn't wrap correctly
      sometimes.

15)   Eternity will no longer prompt users for the upload area to put a file
      into IF there is only one upload area availible.

16)   Fixed a bug in the ansichat module where garbage would sometims be
      printed on the screen.

17)   The console no longer beeps when a remote user is on.  It does beep when
      logged on locally, however.

18)   Eternity no longer times out if it takes longer than 5 minutes to
      process all of the incoming files without any user input.

19)   Fixed a bug where having an EOF marker (^Z, ASCII 26) would act as if
      the user had pressed the space bar.

20)   Fixed a bug where door MCI codes did not work properly.

21)   The %N door MCI code was not working correctly.  Fixed.

***** Eternity 2.00/3 Released

22)   The NUV log has been moved from the main Eternity directory to the LOGS
      directory.

23)   Eternity will now clear the "Tried Chatting" flag when going into the
      ansi chat.

24)   Added two new ACS codes: EA and EV.  EA returns true if the user can
      support ansi, and EV returns true if the user can support avatar OR
      ansi.

25)   Added upload time refunds.  Check option F under the file system
      configuration.

26)   When a new user finishes applying, their time is now set to the level
      defined in the security profiles.

27)   Fixed duplicate checking in the databases.

28)   Users can now upload a message using a protocol.  This allows them to
      post ANSI's, etc.

29)   Eternity will not list the uploader of a file if the user number of the
      uploader has been set to 0.

30)   Eternity will now print MENUCMD.* when you press '?' from the cmdkey
      prompt in the menu editor.

31)   If a user was in the last file base, and you delete the file base, they
      will now be dumped in the first availible file area.

32)   Eternity now has a "hangup after transfer" option when batch uploading
      and downloading.

33)   Added a time bank.  The cmdkeys are $D to deposit and $W to withdraw.
      You can impose limits on user's accounts by providing the following
      parameters to the $D command: "<accountmax>;<daymax>" where accountmax
      is the maximum amount of minutes a user can have in their time bank
      account, and daymax is the maximum amount of minutes a user can deposit
      in one day.

34)   The last few callers display now aborts properly.

35)   Added an MCI code, @!!@ which stops a user from aborting the current
      file that is being displayed.

36)   You can now abort when scanning for new files, searching for wildcards,
      searching for descriptions, sorting files, and locally uploading.

37)   When replying to a message, Eternity will now ensure that the receiver
      field is not blank.  Previously, if you set the "To:" field to "", it
      would accept that input.

38)   When replying to a message, if you set the title to blank, it will keep
      the original title and print it.

39)   Added a '?' to the file list command.  Eternity will print the file
      'flsthelp'.

40)   Eternity now has more stringent time limit checking; instead of checking
      when it executes a menu command, it also checks before it displays a
      menu prompt.

41)   Eternity will no longer ask "Post on this message base? " if a user
      doesn't have access to post on that base.

42)   When a user is paging you, you can now press Enter to make the chat page
      silent for the duration of the call.

43)   When a user is restricted from chatting, Eternity will look like it is
      paging you, but it won't actually make any noise.  Please remember that
      not all AC flags currently work.

44)   Added a QWK offline mail system.  It was partially in before, but it has
      been completed.  Use the "QD" cmdkeys to download a QWK packet, or the
      "QU" cmdkeys to upload a QWK packet.

45)   Eternity no longer gets a critical error when a user downloads a QWK
      packet.

46)   Eternity no longer pauses when processing uploads.

47)   Eternity now has an informative message when a FOSSIL driver is not
      loaded.  Previously, this message would only appear if the -D (debug)
      parameter was specified.

48)   Pressing "A" from the message editor prompt will no longer bring you
      back to the main message edit command prompt.  If you don't understand
      what I'm talking about, just ignore it.

49)   If you edit a user while they are applying (and you're using the
      matrix), Eternity will now save the changes when they finish applying.

***** Eternity 2.00/4 Released

50)   Previously, Eternity would crash if the temporary sysop log file did not
      exist.  Fixed.

51)   Added an ACS code 'X', which tests for miscellaneous things:

          XC   Tests to see whether the user has color enabled.
          XL   Tests to see whether the user has lightbars enabled.
          XP   Tests to see whether the user has a good PCR.

52)   When using the -B parameter, Eternity now clears the screen and shows
      a blue bar "Someone has connected at x bps" instead of just sitting at
      the DOS screen.

53)   When a user is edited by pressing F1, or you edit yourself in the
      regular user editor, your security profile is automatically updated.

54)   Added a new logon option, #17, which shows the user whether or not the
      SysOp is availible for chat.

55)   You can now edit files from the file list prompt by pressing 'E'.  This
      is availible to anyone with file sysop access.

56)   When a user is paging you, you can now turn off the chat call (without
      being obvious) by pressing Enter while they are paging you.  If the user
      pages you any more during the call, Eternity will not actually make any
      noise.

57)   Fixed a bug with clearing temp directories which could crash your
      system.

58)   Added an option to the node configuration for multiple drop paths.  This
      is optional; if you do not set it, it will simply be the same for each
      node.

59)   Eternity will now hang up when users log off.  It lowers the DTR for
      one tenth of a second, and then sends a hangup string (if one is
      defined).  It will try to hangup up to three times.

      NOTE: Normally, your hangup string should either be set to NULL or it
            should be set to something like ATH0.

60)   When generating a QWK packet, the process can be aborted by pressing
      the spacebar.

61)   Eternity now checks how much time a user has left when they are reading
      messages and listing files.

62)   When a new USER.LST is created, NAMES.LST is automatically generated to
      prevent discrepencies.

63)   You can now allow certain blocks of text to be seen only by users with
      a certain ACS.  This is called output restriction, and is similar to
      the undocumented &xxx feature in Telegard 2.5.  The best way to
      illustrate its use is by an example.

      Text: You are @RE:fx@really @RE@cool.

      To someone with flag X, it'd say: "You are really cool."
      To someone without flag X, it'd say: "You are cool."

      This feature only works when printing files or in the MID file of a
      repeat ansi.

64)   The QWK mail generator only scans bases that the user has selected.
      Previously, it would scan all message bases that the user had access
      to.

65)   The QWK mail generator will no longer time a user out if it takes more
      than five minutes to process the mail.

66)   The QWK mail generator will no longer send mail from areas that a user
      doesn't have access to.

67)   Fixed the (I)nsert command in the line editor.

68)   Fixed some bugs in the infoform system where the system would crash if
      you specified a path or extension with an infoform name.  Ouch.

69)   Fixed a bug in the message newscan command where it would not scan all
      bases if you had a lot of message bases and they were divided into
      conferences.

70)   Previously, Eternity would only mark a message with the status flag
      "originated locally" if it was posted in the line editor.  This lead
      to problems with FidoMail not exporting those messages.  Fixed.

71)   Added the -T cmdkeys, so you can now play tunes via menu commands.

72)   Fixed a bug in the message base editor where the permanent index would
      screw up if you inserted a message base.

***** Eternity 2.00/5 Released

73)   Added a length limit for FILE_ID's into the system configuration (file
      section.)  Make sure you change this because FILE_ID's are disabled by
      default.

74)   Fixed a bug where Eternity would crash if a user attempted to view files
      (by number) in a file base without any files.

75)   Added a File Info command to Eternity's file system.  The command is
      accessible by pressing 'I' when listing files, or by using the FI
      cmdkeys (we suggest adding an 'I' command to your file menu.)

      Eternity will print a file called FILEINFO.* with the following @OT@
      commands availible:

      OT - Filename
      O1 - Date Uploaded
      O2 - File Points
      O3 - Times Downloaded
      O4 - Size (in K)
      O5 - Name of Uploader
      O6 - First Line of File Description (relatively useless)
      O7 - File Status (Unvalidated, Offline)
      O8 - Estimated Download Time

      You might consider using output restriction to show only certain pieces
      of information (such as uploader name) to certain users.

76)   When leaving chat, the current prompt (and any input) is redisplayed.
      This makes it easier for users to figure out where they were before they
      began chatting.

77)   The QWK packet generator now collects messages from all conferences, not
      just the current one.

78)   Duplicate checking in databases now WORKS.

79)   Added a help function into Eternity.  When a user is online, you can
      press Alt-F to display the available function keys.  This only works if
      you have SYSFUNC.BIN in your main Eternity directory.

80)   When a user pages you for chat and you press the spacebar, the ansichat
      module will automatically load up if the user has ansi.

81)   Time refunds now work.  Finally.

82)   Added the 'nx' acs parameter.  This means that if you put 'n1' in an
      acs string, it will return true if the current node is 1, otherwise
      false.

***** Eternity 2.00/6 Released

83)   Added new cmdkeys, '-B', which allows you to generate new compression
      tables.  The only time this will ever be useful is if you are accessing
      file or message bases from the matrix.

84)   Eternity now empties out the buffer before hanging up.

85)   Added a new acs parameter: 'xf'.  It will return true only if the user
      is currently performing a fast (or turbo) login.

86)   Fixed a ridiculous bug where Eternity could crash if the user's last
      file base was set to 0 and the user tried doing something without
      switching to a real file base.

87)   Added the @CL@ MCI code, which was present in Eternity 1.00.  It is a
      list of availible commands at a menu, and is generated immediately
      before the menu prompt is displayed.

88)   Added a (S)tats command to NUV, which shows the stat screen again.
 
89)   Added a zlog (history) viewer.  Eternity 2.00 has kept the zlog up to
      date, but you couldn't view it up until now.  Press 'Z' from the WFC
      menu or use the cmdkeys '*Z'.  I suggest you add a 'Z' command to your
      SysOp menu with the cmdkeys '*Z'.

90)   Eternity now saves the user record directly before running a door, and
      rereads it upon reentry.

91)   When clearing the download batch queue, the totals will also be cleared.

92)   All AC flags (restrictions and priviledges) now work with the exception
      of anonymous restrictions, voting restrictions, and forced mail deletion.

93)   The delete command in the user editor will now prompt before taking any
      action and will not delete users that are protected from deletion.

94)   The 'V' command in the user editor which adds a user to NUV will now
      delete their current NUV status first, so a user can only be in NUV
      once.

95)   Basic multinode interaction has been added.  This means that users can
      now see who else is online at the same time.

      The command keys that are currently availible for multinode are:

        =A  Set activity to Options.  This can be used to replace the internal
            activity strings.
        =W  List the users online.

      The who's online list uses the MULT set of repeat ansi's.  The following
      optext codes are availible:

        OT  Node number
        O1  User name
        O2  User number
        O3  User location
        O4  User note
        O5  Current activity

      More multinode commands will be coming in the near future.

***** Eternity 2.00/7 Released

96)   The 'board activity' indicator on the WFC menu now works.  It shows the
      number of calls for the day as well as the number of minutes active.

      The number of calls includes ALL calls, so it may be higher than
      expected.

97)   Previously, if an unvalidated user logged on and had access to zero
      file bases -- which is pretty common -- the board would lock up.  This
      is no longer the case.

98)   Added a new option in the system configuration under miscellaneous
      options: number of last callers to show.  You can now configure how
      many last callers you want to appear.  If it's set to zero (default)
      then it shows eight.

99)   The automessage is now fully functional.  Cmdkeys:

      UR - Read automessage.
      UW - Write automessage.

      The automessage uses a repeat ansi to display.  (AUTOTOP, AUTOMID,
      AUTOBOT.)

      OT = Line of automessage.
      O1 = Author of message.

      Don't forget that an automessage can be about 78 characters wide, so
      be careful with any borders you put on the repeat ansi.

100)  Eternity is now usable only by registered users.  Registration is free;
      but in order to even load Eternity, you must register.

      Keys are no longer stored in files -- a single registration key number
      has replaced them.  People that have registered previously are entitled
      to a free key.
      
      If you would like a key, you can contact me at the following places:

      email: wildfire@darkness.metronj.org
      irc: #eternity or #blade

***** Eternity 2.10 Released

101)  Registration is no longer required; Eternity is free!  This is not
      because I'm giving up on Eternity... it's because only a handful of
      people bother registering anyway.

      This is the only feature in this release.

***** Eternity 2.11 Released

102)  You can now use the =P cmdkeys to page a user on another node.

           This command has zero, one, or two parameters.

           With zero parameters, it asks the user to select a node and asks
           for the text to send.  It then sends the node a private message.

           With one parameter, you can specify which node to page, whether
           you want a broadcast message, and whether you want the message
           to be encapsulated.

           With two parameters (either of which can be excluded as long as
           the semicolon is in the right place), you can specify certain
           types of information.  In the first parameter, you can specify
           which node to page, whether it is to be a broadcast message, and
           whether the message should be encapsulated.  The second parameter
           is the message text to use.

           Examples of usage:

           =P (no parameters)

           Asks which node to page and what text to use and then pages that
           node.

           =P B

           Broadcasts a message (which is requested from the user.)

           =P B;The system is going down in five minutes.

           Broadcasts "The system is going down in five minutes." to all
           users with standard encapsulation.

           =P 1

           Pages node 1 with text which is requested from the user.

           =P ;Please logoff as soon as possible.

           Asks the user which node to page, then sends the text "Please
           logoff as soon as possible."

           =P BN;>>> %U has just logged onto node %N!

           Broadcasts the text ">>> Wildfire has just logged onto node 1!" if
           it was Wildfire's node that was just logged into.  There is no
           encapsulation.


           What is encapsulation?

           Encapsulation is when a message is surrounded by predefined text
           (set up in the string configuration.)  It is necessary to
           differentiate normal system text from paging text.  It is also
           useful because it tells the receiving user who sent them the page.

           Encapsulation can be turned off with the 'N' option for purposes
           such as logon/logoff notification messages.


           What about MCI codes?

           Because of the way Eternity works, MCI codes are always interpreted
           as they are displayed.  Therefore, if Wildfire sends a page to
           Abdul with the MCI code @UN@ in it, @UN@ would be replaced with
           Abdul.  However, there are several special codes that are used in
           message encapsulation strings:

           %U - the user name of the sender.
           %N - the node number of the sender.
           %T - the message text.


           How do I use message encapsulation:

           You specify the format, and the system interprets it before the
           message is sent.  If you use the following format:

           From %U (%N): %T

           Then it might look like:

           From Wildfire (1): Hello there!

           There are many possibilities.  For example, a @BP@ code can be
           used to make a user's terminal beep before the message is
           displayed.  Here is a more complex example:

           ***@LF@Message from %U (node %N):@LF@%T@LF@***@LF@

           This comes out as:

           ***
           Message from Wildfire (node 1):
           This is my message text.
           ***

           This can be very effective.

           NOTE: If you thought this explanation was too long, sorry.  Just
           wanted to show some of the possibilities.

103)  Other new multinode commands:

      =H - disconnect another node.
      =D - drop another node.

      Both of these act on another node (and should be restricted to system
      operators.)  =H allows you to hang up on a user, and =D allows you to
      exit a node into DOS.  It is generally a good idea to notify a user
      that you are doing this before you do it, because the system does not
      say anything when these commands are used -- it simply disconnects.


      Here is an example of a multinode menu:

      [B] Broadcast Message (s50 req'd)
        =P (Option: "B")
      [D] Drop User (s250 req'd)
        =D
      [H] Hangup User (s250 req'd)
        =H
      [P] Page Another User
        =P
      [W] See Who's Online
        =W

      An interesting thing to do:

        You can automatically notify users when another user logs on.  Put
        a command such as this on your TOP menu.

        Key:     FIRSTCMD
        CmdKey:  =P
        Options: BN;@LF@*** %U just logged onto node %N!@LF@

        This will show the message

        *** Wildfire just logged onto node 1!

        When appropriate.  Pretty handy.

104)  Added a new MCI code: @NN@ - represents the node number of the current
      node.  Good for prompts, etc.

***** Eternity 2.20 Released
