Welcome to TNOS release 1.10b

Please remember that this is beta code. You probably will find bugs, just
make sure to report them. Also, DO NOT give out any copies of beta-test
code to ANYONE without the authors permission. Doing so will cause us BOTH
a lot of grief (mine from them, yours from ME).

One of the new things here is the VIEW command, which you are in now.
This table shows how to move about in the VIEWER. Try these keys out, now!

     keys         actions
     ===========  ==============================
     h,H,<        move to the top of file (HOME)
     e,>          move to the end of file
     ^D           move down the file 1/2 screen
     ^U           move up the file 1/2 screen
     d,^N,j       move down the file one line
     D,^V         move down the file one page
     u,^P,k       move up the file one line
     U,v          move up the file one page
     ^C,q,Q,ESC   exit VIEWER
     other keys   redisplay screen

This is the new features file, named 'features.new'. If you rename this
file (or move it to another directory, you will not be prompted for viewing
this on each startup.

*** NOTE: CDROMs can be used in all areas of TNOS the same as any other
    disk with one exception. DOS (or the CDROM drivers) seems to return a
    'file or directory not found' error when checking for the existence of
    the root directory of a CDROM. When trying to 'cd' to the root directory
    of a CDROM you will encounter this error. You can read files from the root
    and you can change to a directory on the CDROM, you just can't 'cd' to
    the root.


NEW TO 1.1.0......

- Changed the BBS SID to properly reflect the version number

- Added an FTPMAXCLIENTS command to limit number of active clients

- Fixed the BBS FWDing bug

- Fixed the groupcommand() function to create the groups file if it
  doesn't already exist

- Fixed problem with Conference Bridge 'smiley' command not closing the
  'smiley' file.

- Added some pwait() calls to try to make the smtp server a little more
  CPU-time-friendly during expansion of mailing list messages

- Made many minor changes to the Conference Bridge to make it more compatible
  with the PingPong conversd code. While this is GOOD to PP code, it CAN be
  bad to TNOS v1.0.0 code. If you are linked to other TNOS v1.0.0 converse
  servers, you MAY experience unknown problems with the linked sessions.
  I strongly suggest that all TNOS systems using the Conference Bridge
  upgrade to v1.1.0.

- Fixed a few minor Conference Bridge bugs relating to groups (thanks
  Ron/N8FOW)

- Made changes to the Quote-of-the-Day server's data file, to make it easier to
  manage. If you are using the Quote server with v1.0.0, you must make minor
  changes to it for v1.1.0. The format now is:

  [d] %file
  .......
  .......
  [d+1]

  where 'd' is the day of the month ([1], [2], etc.). The "%file" is optional.
  If you use it, the data for the quote is read INSTEAD from "file". The
  entire "file" (as much as 4K) is returned as the quote. If "file" is NOT
  included on the "[d]" line, all following lines (until the next "[d]" line)
  is returned as the quote.

- Added change to alloc.c (from Andrew Benham) to handle an obscure bug if
  "mem minheap" is set to > 32767.

- Added code to allow receiving ip type=4 for encap interfaces.

- Added a "ip encapnew [on | off]" command that allows transmission on an
  encap interface using ip type=4.

- Added a "ax25 rosecall <call>" command to set an entry Rose switch callsign.
  Also added syntax to the connect and split commands to allow rose connects
  like "c 2m ko4ks @ 813105". This has also been added to the BBS connect
  command.

- Added FBB-style forwarding. This includes the "5 at a time, back & forth"
  style of protocol, but does NOT add FBB message compression (at least, not
  yet). Thanks Jack!

- Added a bunch of code and code changes to allow TNOS to be compiled under
  Linux. Several long standing bugs were found due to the GNU compiler.

- Revamped the code in version.c (again) to make it easier to maintain.

- Fixed a few assorted bugs in expire.c dealing with bid and wpages
  processing. Also made a sysop WPAGES command addition force a WPAGES KICK
  for the users (WPAGES) file, but not the BBS (WPAGEBBS) file.

- Then later reverted, temporarily, the bid and wpages lookup/expire code
  to non-sorted mode while I look into a better way to handle LARGE files.
  Even though only minimal info is kept in memory while the file is being
  sorted, it can take up most/all of available memory, which CAN cause
  lockups if other "stuff" is going on at the same time. The sort code will
  be re-addressed in v1.11.

- Cleaned up the config.h and makefiles for readability.

- Added a DELEGATION SERVER. The idea is this, a user who is going to be
  away for a period of time can set the system up to selectively (1) hold
  their mail, (2) forward their mail to another email address, (3) notify
  the sender that they are away (with an optional personal message), and
  (4) set the beginning and ending dates for forwarding DELEGATION to be
  in effect. Neat stuff!

- Added a "CONVERS ALIAS <call>" command, to allow 2 diffferent calls/aliases
  to the Conference Bridge.

- Added to the Mailbox "WP user @BBS" command the ability to set the WPAGEBBS
  heirarchial address also, by giving a complete heir address for "BBS".

- Was totally blown away when I realized that there was not a SINGLE pwait()
  call in all of the Conference Bridge code. What this means is that if the
  converse code had more to do, it did it, and didn't give the other processes
  any CPU time, including the process that would deliver the data!

  A few have been added in the appropriate places and performance of the
  entire system has improved. Previously, a system would sometimes MYSTERIOUSLY
  become unstable, with plenty of memory, if the Conference Bridge became
  highly active. The mystery has been solved!

- Added a "convers console callsign" command to provide more flexibility. It
  is initialized to the first section of the hostname. This is what the user
  from the console gets identified with if he issues a "conference" call.

- Changed defaults to "conv umaxq" to 3K and "conv hmaxq" to 6K.

- Fixed a long standing bug in finger (actually any command calling the
  pathname function) when the default location of a file begins with "./" or
  "../", as they ALL do in the Linux version.

- Added the "forward fbbstyle" output to the "forward status" command.

- Added code to allow a remote sysop to view the output of the "start ?"
  command.

- Changed the home bbs setting routine to use the AX MYCALL as default,
  rather than the HOSTNAME.

- Added a "tcp connections" command that is basically the same thing as the
  "tcp status" command, except that the TCP MIB values (those variables and
  numbers at the top of the status command output) are not displayed. This
  is good for quick peeks at the connections. The syntax is the same, only
  the name was changed to protect the innocent ;-) The "tcp status" command
  remains intact.

- Added to the Information Server a "~sp num" command, which seeks the current
  data file to the position saved in integer variable 'num'. Also changed
  the integer variables from 16-bit values to 32-bit values for this reason.
  And added an additional text control sequence of "~p", which is replaced
  with the offset position of the current data file.

  For example,

           ~i2=~p               (save current position)
           .......              (do something)
           ~sp 2                (later, return to beginning position)
  

  Also now the following attributes of a parent script get inherited by
  a child script when using the "~$" command:
         user I/O socket     (this was previously the only inherited attribute)
         whether it was an IP connect or AX25
         call sign of user, if AX25
         all integer variables, and string variables
         all open connection sockets (they should NOT be closed by the child)
                                     (you WERE warned!)
         the current data file is NOT inherited, allowing the child to
             have a separate data file, without closing the parent's file

- Additions to Information Server:
	A new text control sequence "~l" which is replaced with the elapsed
		time of the current script.
	A new feature to the "~$" command to allow executing a child script
		in the background. To do this, make the command
		"~$$ scriptname".
	A child script inherits all 10 of the string variables (if they are
		defined) from the parent script, but the first five (0-4)
		remain local (private) to the child, while the last five (5-9)
		are shared with the parent, allowing global string variables.
		All 10 integer variables are inherited, and the last 5 (5-9)
		are also shared with the parent, allowing global integer
		variables.

- Added a "mbox maxtimer <timeinseconds>" command, to permit the BBS to
  gracefully "bump" off a user that is on for an excessive time. This is
  added to allow a maximum BBS forwarding session length, but can also be
  used with "human" users that monopolize the host's resources.

- Added a "server" function that I call ProxyMail. It goes like this:
  At a specified time (probably middle of the evening), ProxyMail kick off
  and for it's subscribed users is obtains listings of new messages that
  have been received in the last day. The setup contains the desired areas
  that each user wants. These listings are sent to the user in a single
  mail message. If the user has a TNC on, this can be received and waiting
  for him/her when they awake.

  This cuts down on bandwidth for listings at peak times.

  ProxyMail has been implimented as a Script, partly as an example, mostly
  because it is a simple task that can be handled WELL in a script, and it
  allows easy customization.

  Other parts to the ProxyMail Trilogy (coming soon to a theater near you)
  are the parts to allow the user to set this information without SYSOP
  intervention (probably a script, also) and a part to allow a user to
  send a single message to the BBS giving areaname-messagenumber combinations
  which will generate a SINGLE message in reply, for easy "fetching".

- Added a BBS "cmd" command, which allows SYSOP-customizable commands, via
  Scripts. They are script files, kept in the "spool/cmds" directory, that
  have an extension of ".cmd". There is a user-displayable help/summary
  file for this named "spool/help/usercmds.hlp", which the user can get
  with just "cmd".

  The syntax is "CMD cmdname arg0 arg1 arg2 ... arg9". All parameters are
  optional. If any arguments are given, they are passed to the script as
  string variables ~0-~9, and the number of user arguments passed to the
  script can be found in integer register ~i0.

- Fixed a newly discovered, long standing bug with the Information Server
  script language in properly handling scripted telnet connections with the
  "~$" command. The telnet negotiations were not being handled, causing
  a inability to connect to telnet port 23 (the BBS of a TNOS system),
  as well as some other ports. This is now fixed

- The third part of the ProxyMail trilogy is complete (yes I've skipped
  number 2) and it also is handled in a script (mainly). In fact, it is the
  SAME script used in the first part. There was an additional smtp server
  added for mail to "PROXY" (or rewritten to that name). This server copies
  the data to a temp file, and spawns off "spool/cmds/proxy.cmd". A PROXY
  request can contain any BBS commands that the user can normally do from
  the command line.

- Added a new function to the game named mbscripthook(). This allows a
  script file to be called (if it exists) at certain times in the BBS.
  These scripts must be located in the spool/cmds directory. They each
  are passed in one parameter, though in some cases the data given isn't
  much help. In all hook scripts, the callsign (available with "~c") is
  valid. Initially, I have only 4 hooks in the BBS code:

	dosend.sys	called in the dosend() function if this is NOT
			a BBS. This is called early in the process, but
			after the rewrite has been run. The parameter in
			"~0" is the originalname, a dash, and the rewritten
			name. For example, "sp ko4ks@ko4ks.ampr.org" on
			my system sends "ko4ks@ko4ks.ampr.org - ko4ks".

	newuser.sys	called when a non-BBS user logs in for the first time,
			after sending the "spool/newuser" file. The "~0"
			parameter is "newuser callsign".

	login.sys	called right before first prompt is sent, if this is
			a non-BBS user. The "~0" parameter is "login callsign"

	logout.sys	called at the beginning of the logout process, after
			the user selects the "bye", "exit", or "quit" command,
			if this is a non-BBS user. The "~0" parameter is
			"logout callsign"

- Fixed a bug in beta 13 that crept in between b8 and b12 with rlogin. The
  problems was caused by checking in the mbxrecvline() function for the
  link type being TELNET_LINK, and only then analyzing for telnet
  negotiations in the data stream. This protection is good for keeping
  binary color files from possibly being interpreted as telnet sequences.
  The problem was, I should have been checking for RLOGIN_LINK, as well.

- Added a fix to what seemingly WOULD be a common problem with the DELEGATION
  server. The "new" DELEGATION user seems to want to TEST that it is doing
  its job by sending a message to him/her self. Well, IF he has the DELEGATE
  option on of notifying the sender of the absence, then we now have an
  INFINITE LOOP. Think about it, ME sends a message, BBS now notifies ME,
  which in turn notifies ME, etc....

  Now, if a user has DELEGATION on and tries to send a message to him/her
  self, the dosend(() function says, "nope!", tells the user why, and aborts
  the message. It is also logged in the log file.

- Fixed the BBS "operator" command, which DID do a disconnect from the BBS
  if the user used the escape key to terminate the chat session on his end.
  Now, he is PROPERLY returned to the BBS, no matter who terminated the
  session.

- Fixed a bug with dosend.sys and the SR command.

- Fixed a long standing bug with the HOSTNAME command. It now will properly
  remove a trailing "." on the hostname.

- Added a new script command, "~ap to from", which appends a string variable
  (from) to the end of another existing variable (to). For example, to make
  a filename of the form "/nos/scripts/~9.cnf", with string variable 9 as a
  basename, use something like:

	~a 1 /nos/scripts/		# directory name in 1
	~a 2 .cnf			# file extension in 2
	~ap 1 9				# add the basename to 1
	~ap 1 2				# and add the extension to 1

  This is necessary since the ~f and ~o commands either take a hardcoded
  string, or a single variable (i.e., "~o ~1", in this example).

- A few misc cosmetic fixes.

- Linux fixes:
	* fixed a bug in the directory code that DIDN'T add a <CR> before
	  the disk-space line, if there were an odd number of directory
	  entries.
	* fixed a bug in the finger daemon found if fingering "@host".
	  The filespec being used was a DOS one, "*." for finding all
	  filenames without an extension, which in Linux finds all files
	  ending in ".".

- Added a "nlist" command to the ftp client, in addition to the "nlst"
  command, for those who are used to the other name.

- Added a line to the FTP banner, which tells how many FTP users are
  currently on the system.

- Fixed a quirk in dosend() which caused a DNS lookup if sending to a user
  without a "@host" or "@BBS" in the address.

- Added code in the Conference Bridge to flush a socket if 2400 bytes are
  queued and it has not been flushed. A JNOS user earlier reported that
  data loss occurred at 2560 bytes if flushing had not occurred. Whether
  or not this has been a problem in TNOS, I don't know, but it was easy
  enough to put in the protection.

- Reviving the sorted searches of history, wpages, and wpagebbs files. These
  were "tabled" earlier, since sorting a large file stole all of memory. Now
  it used my Virtual Memory System, which has been used for storing screen
  memory. The VMS code used XMS (if available) or disk. While it is not
  very easy to replace normal code with accesses to the VMS, this localized
  usage was easy to convert. Now when sorting, you either use XMS or disk, so
  if there is no available XMS, you will have an additional file open during
  expiration of bids and wpages. ONLY ONE file can be sorted at a time. This
  is paced by the VMS code, making any SECOND process simply wait until the
  first is complete.

- Added a new form of memory allocation, pooled memory. There has long been
  a problem with memory fragmentation, caused by several tables (mbox user
  list, ax25 heard list, ip heard list, etc.) which are linked lists that
  are NEVER freed. Under low usage conditions these are not a problem, but
  when the system is stressed and a new entry needs to be created, it is
  created "high" in memory. Then when the load is reduced, there is no
  way to move this SMALL piece of memory. The memory will remain fragmented.

  And so enters POOLED memory. The idea is this, instead of allocating
  dozens of little allocations, we will allocate a smaller number of LARGER
  allocations, in pools. Initially all pools will be allocated in multiples
  of 50, though this might become configurable at a later date. While this
  may sound large, the size of these individual components are about 20-30
  bytes each, making a pool of 50 only 1K to 1.5K. There is no
  penalty, for example, for ax25 heard if you do not set up "ax25 hport"s,
  since the pool memory is not allocated until the first request comes in,
  or until the current pool is exhausted.

  While this is not perfect, it SHOULD reduce memory fragmentation
  dramatically for these routines for most systems, without noticable
  overhead.

- Fixed 2 bugs in TNOS/Linux that was inherited from previous unix coders.
  When completing a shell command, there WAS a "zombie" process that would
  hang around until tnos died. Also, the Command Session screen was NOT
  being restored when coming back from the shell command. Both of these
  are fixed as of beta 20.

- Added a line to the mailbox stats (BBS 'ms' command, Command Session
  'mbox mailstats' command) that tells the number of queued SMTP messages
  waiting to be processed, if there are any. This info is also displayed
  when fingering "bbs" or "stat".

- Made an "adjustment" to the dialer code. Up until now, the filename that
  you pass it to use as the dialer script got ran through the rootdircat()
  function, that pre-pended the xNOS root directory. This made the script
  name RELATIVE, and if you passed in a complete pathname, it STILL added
  the root directory to the front. Now the code only calls rootdircat() if
  the first character is NOT "/" or "\".

- Fixed a recently discovered TNOS bug that has existed since 1.00. When I
  added the separate callsign for each interface for IP traffic, I seem to
  have missed the ARP code, which was still sending ARP requests out with
  the AX25 call, NOT the IP call. This caused some occasional auto-routing
  woes. Now the ARP code sends from the IP call sign.

- Added a new smtp feature for rewriting "from" addresses. This uses a
  spool/translat file, which is similar to the rewrite file, except that
  the original senders address is changed. The format of the translat file
  is "fromname newfromname". If the file doesn't exist, then the address
  remains unchanged.

  You might already be asking "WHY!" (or be dialing 1-800-KILL-KO4KS). Let
  me give you two different VALID uses to rewrite the from, especially at
  a gateway.

  1) I run a Linux system, with TNOS/Linux running on the same machine. For
  some DUMB reason, I prefer using a REAL mail program than the BBS mailer.
  On the Linux system, I am "brian@lantz.com". I want to respond to mail,
  sent from regular PBBS, which has been forwarded to my "brian" account.
  BUT I want it to be FROM "ko4ks@ko4ks.ampr.org". This addresses that need.

  2) A gateway can provide Internet addresses now, and the mail can even
  be forwarded to other non-IP BBSs, if that is desired. BUT if the user
  sends mail, it MUST be sent from an IP BBS that is known from the Internet.
  With translate, the user can send from a non-IP home BBS (if arrangments
  have been made with the IP sysop), and have that mail TRANSLATED to look
  like it was coming from the Internet-known IP BBS. That sysop COULD set
  up a forward.bbs entry for that user that rewrites the TO address to the
  one expected by the non-IP BBS, and voila! Two way Internet traffic with
  a non-IP endpoint.

  A warped mind, you say! You don't know the half of it ;-)

- Added code in main.c to automatically create the spool/mail/control and
  spool/mail/users directories, to make JNOS->TNOS upgrading a little less
  painful.

- Changed the expire code for bids and white pages to only expire if new
  entries were added. This MAY cause some entries to remain longer than
  desired, but will remove the performance penalty if frequent passes are
  made.


NEW TO 1.0b43......

- fixed a bug with the mailfor "# of messages" line, with the number in
  conference being displayed wrong.

- fixed the command session "rdate" help message.

- added a 'ping' command to the BBS and fixed ping for remote sysop usage

- added 'domain query' and 'domain ?' commands

- fixed FTPUSERS permission bug

- cleaned up minor bugs in REQSVR and GROUPS

- added code to make nntp-style area names work transparently, including
  support for control files.

- changed the VERSION command to read a text file (created by a new command,
  MKVERS.EXE) instead of reading the data from program memory.

- added a "quick kludge" to give subscription information to the REQSVR
  group subscription. Will come back and re-do this later.

- added original message in body of a REQSVR GROUP INFORM message

- fixed bug in BBS that required IHEard instead of IHeard

- added a BBS "version" command, which yeilds the same results as the Command
  Session "version" command

- fixed a bug which made public BBS areas "sometimes" remember an incorrect
  last message number. This was caused by parsing for the "idAAxxx" string
  but not taking ONLY the first one.

- Added code to the BBS "list" command to parse off leading spaces in the
  Subject field

- Added logging of each FTP connect request to a SPOOL/ftp.log file

- Added a "mbox logging on|off" Command Session function to allow/deny
  logging of each MBOX connect request to a SPOOL/mbox.log file

- Modified finger "@host" to also tell of built-in finger names

- Modified to eliminate telnet permission check for QUOTE, CALLBOOK and
  FINGER service from the BBS

- Many assorted bugs squashed

- Added a confirmation prompt when you give the "exit" command from the
  Command Session.


NEW TO 1.0b42......

- fixed a long-standing bug where a received BBS BID was being converted to
  lower case (along with the rest of the command line. It seems that the
  BBS spec converts the command line to upper case, including the BID.
  BIDs are now kept in uppercase.

- changed the POP3 client to pass to SMTP one message at a time. Previously
  all messages were received, deleted, and THEN passed to SMTP. If an error
  occurred, it was too late... The messages were already deleted.

- modified the display for the command session "mbox mailstats" (which is
  the same as the BBS "MS" command. Now includes heapsize, available, etc.
  for the memory section.

- modified BUILDCTL.EXE to delete any '.ctl' files that do not have a
  coresponding '.txt' file. This is primarily for use with PCELM.

- added to the Conference Bridge a "/join groupname" command, which changes
  to channel of group 'groupname', or creates a new 'group' channel. Added
  to the Conference Bridge entry messages the count of how many are in the
  conference bridge and how many groups are active. Also added a "/groups"
  command, which lists all named groups and nets.

- changed grammer of "for a total is" to "for a total of" in Conference
  Bridge "ROLL" command.

- converted the internal representation of the MID to upper case for less
  confusion to the AX25 BBSer at two places.

- changed the lookup of bids and white pages to use a binary file search
  algorithm. Much faster. Now the "HISTORY", "WPAGES", and "WPAGEBBS" files
  are kept in sorted order. This sorting is done when the "OLDBID/OLDWPAGES"
  command is executed.

  All new entries for either of these three files are kept in a file with
  the same name and a suffix of ".new". These new entries are merged as a
  part of the "OLDBID/OLDWPAGES" command.

- changed the algorithm to fix the 'disappearing USERS.DAT file' bug in
  case of a file open error.

- changed the time base of the OLDBID and OLDWPAGES commands. The second
  parameter, which WAS the number of hours between clean-ups, is NOW the
  number of MINUTES between clean-ups.

- and also changed the OLDBID/OLDWPAGES commands to have sub-commands and
  operate more consistantly with other TNOS commands. OLDBID is now BID.
  OLDWPAGES is now WPAGES. Each of these has three sub-commands: AGE, KICK,
  and TIMER.

- added to the mailfor "# of messages" line, the number in conference


NEW TO 1.0b41......

- fixed a bug when using the SF BBS command. Dup bid was being wrongly
  found.

- modified BUILDCTL.EXE to allow easy usage of PCELM 3.1 with TNOS's message
  control files. If you are using PCELM, use the enclosed MAIL.BAT to
  execute PCELM, and your control files will always be in sync. Change the
  directory on the BUILDCTL line to reflect your TNOS root directory.
  PCELM 3.1 should be available from the same source that you received
  TNOS from.

- fixed a memory buffer overflow error with POP and long data lines.


NEW TO 1.0b40......

- made oldbid and oldwpages into separate processes


NEW TO 1.0b39......

- changed version number style from 1.0.39b to 1.0b39 in preparation for
  release version 1.0. Format is VV.RRDLL, where VV=version number,
  RR=release number, D=development stage (d=development, a=alpha, b=beta,
  r=release) and LL=development level. If no "DLL" given, the default is
  "r00".

- If expanding an mail group, we now strip off received R: lines, since this
  is now a NEW message being generated.

- fixed return receipt RFC line in relation to data RFC lines

- fixed rmail 'To:' RFC line in relation to data RFC lines

- added mail group RFC line in data RFC lines

- made cosmetic display changes in the BBS commands "ML" and "WP"

- fixed a bug that put a blank line after the MessageID line on messages
  with custom bids

- tested and modified POP2 and POP3 client and server code to permit
  proper handling of TNOS control files.

- Added the number of active messages to the MAILFOR broadcasts

- reverted back to previous alias/group expansion (changed in 1.0.38b)
  since this was not found to be necessary. Setting "SMTP GATEWAY yourhostname"
  causes all unknown hosts to be handled locally.

- fixed bug with over-zealous white pages expansion. Now the white pages
  lookup checks first to see if the name has a standard IP suffix, if found
  it's a hostname. If not, it attempts to resolve the name. If it doesn't
  resolve, then it is assumed to be a AX25 BBS user, and white pages
  expansion takes place. To ensure that a user's mail goes out SMTP, either
  use "user@host.ampr.org", or place entries in your rewrite to rewrite
  to this format. To ensure that a IP user's mail DOESN'T go out SMTP,
  add a line to the rewrite file like "user@host* user".


NEW TO 1.0.38b......

- SAM callbook support directly, through the Request Server and through finger.
  If the callbook server is located locally, then the conference bridge
  can also access it with the /CALL command.

- Now marks as invalid a MID stored in the history file for a personal
  message that has been forwarded off the system. This allows it to be
  able to come back on (no matching bid, now) if it needs to be.

- Fixed bugs with the Request Server and the Information Server.

- Moved logging of White Pages BBSs from the BBS send routine to the SMTP
  server.

- Added in outbound forwarding sessions checking for a session being
  'bumped'.

- Fixed a bug with alias/group name expansion that occurred if the expanded
  name was in the form of "user@dest". Previously this was treated as an
  IP hostname, even when it was a AX25 BBS. Now the name is searched for
  a standard IP suffix, if found it's a hostname. If not, it attempts to
  resolve the name. If it doesn't resolve, then it is treated as a BBS
  hier address.

- Added the BBS user's realname, with auto-fetching from SAM database, if
  it is located locally. The realname is placed in the message headers.

- Added BBS "NAME" command to allow user to change his realname.

- Added RFC headers to the body of locally generated messages.

- Fixed bug that would allow a MID to be sent, even when the receiving
  system doesn't support MIDS.

- Fixed bug which made messages with no "@addr" forward out as "user@user".

- Fixed bug which stripped out blank lines from all forwarded messages.


NEW TO 1.0.37b......

- Added a "mbox rstyle" command, to allow the use of "W0RLI-style", short R:
  lines. Modified MID to meet proposed spec, i.e. numbers in range of 1-65535.
  Also, made MID numbers separate from sequence numbers.

- Added to the BBS SYSOP "bump" command the equivilent of the command session
  command "mbox zap user" with the bbs command "bump user now".

- Added two new commands to the information server script language, one to
  allow calling a script from within a script, the other to search for a
  substring within another string.

- Added a Command session "script" command, to directly call an Information
  Server Script file from the Command Session.

- Added four other commands to the information server script language to
  support connect/disconnects from within a script.

- convers maxq code added; you can now set limits for users and hosts with
  'convers umaxq' and 'convers hmaxq' . If set to 0, there is no limit,
  otherwise connections will be reset if there is more then the maxq value
  data outstanding on the connection. This should now also reset connections,
  instead of the previous graceful close...

- 'convers allow' is now replaced with 'convers filter'
  'convers filter mode [accept|refuse]' shows or sets the mode (default refuse)
  'convers filter [ipaddress|hostname]' add an ip address to the filter
  table.
  If filter mode is refuse, then convers links from hosts in the list will
  be refused. If filter mode is accept, then only links from hosts in the
  list will be accepted.

- mailbox 'K', 'KU', 'MH', 'MT' and 'MP' commands now work on the current
  message if no message list is given.

- Mailbox K/KU/MH/MA/MT/MP commands allow message ranges... Eg: 'K 1-4'

- ax.25 resets will send a disconnect to be polite.

- expire process is prevented against multiple invocations.

- Bulletins with NO BID can be refused if 'mbox nobid off'
  off means refuse them, on means accept. Default is OFF, ie refuse !

- several system errors and permission infringements will now send
  a message to the user 'sysop'.
  This is controlled with 'error [on|off]'. Default is on.

- Monitor Trace mode added. Gives a shorter, easier trace display.
  'trace <iface> 3xy' sets this, where x=1 sets input, y=1 sets output

- Added a command session 'time' command.

- The 'at' command now works properly.

- ftp server has additional information possibilities:
  if a file 'message.ftp' exists in the initial directory (eg. /public, or
  whatever), it will be send right after the login.
  When CD-ing, if a file 'desc.ftp' exists in the new directory, the
  server will send the text in this file to the user...

- 'repeat [interval in ms] command
  Starts a new session screen with the output of the command updated
  every interval ms. If you hit F10 it ends the session.
  Eg: repeat 1000 t s
  (repeat every second 'tcp status' command)

- small problem with non ampr.org. domain names fixed.

- Interface names are now case insensitive

- 'mem efficient' command deleted, since it has been totally
  useless for "eons" :)

- 'domain addserver' has optional timeout value in seconds for this server.
  if not set, timeout defaults to 3 * tcp irtt.
  Eg: 'domain addserver wg7j.ece.orst.edu 30'

- 'domain startdns' is gone. Domain Name Server can be turned on and off,
  with 'domain dns [on|off]'

- new domain commands, "domain cache dump", "domain subnet", "domain ttl",
  and "domain update"

- fixed an apparently long-standing white pages bug, and added code to
  eliminate check the white pages twice for BBS generated messages (once
  in the 'send' command, once in the SMTP server.

  Now, white pages are NOT looked up if message is a bulletin, otherwise
  they are checked immediately following the "SP/SB/etc" command line.
  SMTP only looks up white pages if (1) an alias is being expanded, (2)
  a group is being expanded, or (3) the message was NOT created in the
  BBS (if it came onto this system via SMTP).

- fixed color operation for users with BBS permissions who log in
  interactively.

- added to the BBS 'get' command the ability to issue the command without
  parameters, which will give a summary of the user's profile settings.


NEW TO 1.0.36b......

There are M-A-N-Y bugfixes, too many to list!

There is now color support in the BBS (set g) and conference bridge (/color).
These are defeated by TNOS (sorry) if you are using a split screen session.
This will be fixed soon.

   If color is desired in the Conference Bridge and you are running TNOS
   locally, you must "TELNET host 3600", rather than "CONFERENCE host". This
   places you in telnet mode, not in ttylink mode.

   You also have to do a "/na yourname" upon entry to the conference before
   you are a part of anything.

   For color in BBS sessions, use the "connect" command, not the "split"
   command.

The Conference Bridge has four new commands, /roll, /cut, /news, and /smiley.

The BBS MA command now will allow zero parameters, which will release ALL
held messages in the current area.

There is now a LH command in the BBS to list all HELD messages (SYSOPS, only).

There is a FORWARD command session command, which sets BBS forwarding options.

FTP will now corectly send the "spool/ftpmotd", if it exists.

MD5 support, which is a very elaborate CRC scheme, using a 16 byte value.

FTP has several new commands:
     RENAME     to rename remote file.
     LRENAME    to rename local file.
     MD5        to MD5 remote file.
     COMPARE    compares (with MD5) remote and local file
     MCOMPARE   compares (with MD5) remote and local files
     UPDATE     sets flag to first check with COMPARE before using the
                get, mget, put, or mput commands.

You now get different data from the 'help" and the "?" commands in the command
session, BBS, FTP, and Conference Bridge. The "help" command gives details,
the "?" command gives a short summary of available commands. 

Changed the BBS forwarding algorithm to start at beginning of the *.fwd file
if a new message has been queued for forwarding. This happens at the end of
processing the current area.

The passwords in the ftpusers file are now MD5-encoded. This is done/checked
automatically on startup. To change a password, replace the MD5-encoded
password with the word desired, and re-start.

The statusline flutter has been reduced.

Added a MBOX BUMP and MBOX ZAP command.

If a user goes to send a message that the system doesn't know how to route
(one that's going to the 'check' area), the user is warned of the problem,
and the suggestion is made that the user probably should abort the message
and re-enter the address.

Added the RLOGIN client and server. After password validation, you are
placed in remote-sysop mode.

The BBS now send the 'I' flag in the SID, showing that it can accept lines
for self-identification purposes. These ID lines are lines beginning with
';' in place of commands.

When reading BBS messages (regularly, not with the 'v' command), the user
is now given a "Message ID:" line, with the "traditional BBS" MID/BID.
The internal format remains the same.

Should now have a "clean" disconnect for all BBSs after a forwarding session.


* When you are in split-screen (chat-type) TTYLINK sessions, the "local"
  window (the last 2 lines) are now displayed in the reverse colorset
  (like the status line).

* The "color" command has been expanded. The previous syntax works the same
  as before ("color background foreground), and changes the color of the
  Command Session. All new sessions inherit the colorset of the Command
  Session.

  This has been expanded with an additional optional parameter, "session#".
  Placing a session number on the color line sets the colorset of the given
  numbered session, and leaves the Command Session alone. The contents of the
  session's screen are changed to the NEW colorset, including any highlighted
  characters!

* A Command Session command has been added, "prompt [hostname | dirname]".
  The default is "hostname", which works as it previously did. Changing it
  to "prompt dirname" will make the Command Session prompt the DOS drive and
  current directory name. This is very similar to most people's DOS prompt,
  except that the TNOS prompt will be in lower case and the "\"s are changed
  to "/"s. This makes it easier to tell at a glance whether you are in DOS
  or TNOS.

* The biggest changes come in pre-defined fkeys. The following are the
  actions for the specified keys ONLY is you have NOT re-defined them with
  the "fkey" command. You have the ultimate control!! Those marked with a "@"
  were already in there prior to 21b, but are listed here for the record.

   @ INSERT - toggles the current session's status line state on/off
     DELETE - toggles the current session's flow control state on/off
     HOME   - "kick"s the current session
     END    - ends the current session ("reset")
     PGUP   - toggles to the next lowest numbered session (not the Command
              Session or the Trace Session). Wraps around to the last session
     PGDN   - toggles to the next highest numbered session (not the Command
              Session or the Trace Session). Wraps around to the first session
   @ F9     - toggles to/from the Trace Session
   @ F10    - toggles to the Command Session
   @ F1-F8  - toggles to the numbered session (if it exists). F2 goes to
              session #2, etc.

     ^B     - places last executed line into the input buffer
     ^R     - reprints the current line
     ^W     - erase last word in current line (including preceeding space)
     ^X     - delete entire current line

  Also, the PAUSE and PRINTSCREEN keys respond like they do in DOS


AND MUCH MORE, that I'm sure I have forgotten.......
Get in there, look around, and have fun!


Brian A. Lantz/KO4KS