This file lists all the changes made since 2.40n up until 2.41a(beta-11)

Version 2.40n5<dev> - July 14th
-------------------------------

Addressing and Key statement
============================

BinkleyTerm now stores all addresses in their 4D representation.  A point
is always referred to by its full address and the user neeeds never to be
aware of the fakeprivatenet address, (except when setting up the
configuration).

Address command
---------------

The format of the ADDRESS statement in BINKLEY.CFG is:
 Address address [fakenet] [bossphone]

address: Your full network address, e.g. 2:252/25@fidonet or 2:252/25.1.
fakenet: [optional] The fakenet address to use for this address.
bossphone: [optional] For points this is the phone number of your boss.

You can have several addresses if you are in more than one network or have
several network addresses.

The first address used is the default address and any missing fields in
other addresses are taken from this address.

You should never need to use: PRIVATENET, BOSSPHONE, BOSSPWD, ZONE.  These
commands are obsolete (but have been left in for compatibility).  They
will mostly work as before and are used as defaults.


examples:
 Address 2:252/25 25225
 Address 9:876/53.6 25012 012-34567
 Address 255/16
 
Here I would be a node as 2:252/25 and my point network would use 25225 for
its fakenet addressing.  But I am also a point from a hypothetical 9:876/53.6
using a fakenet address of 25012/6 and a phone number if 0123-34567.  The
final adress will be expanded to 2:255/16 and use a fakenet of 25225.

Key Statement
-------------

The key statement lets you set up an assumed address to use when connected
to another system and to set session passwords.

The format of the key statement is:
 Key [#assumed_address] [!password] remote_address
 
#assumed_address: [optional] Must be one of the addresses defined previously
 in an address statement.  It is the address that you will assume when
 connected to remote_address.

!password: [optional] The session password to use when connected to
 remote_address.

remote_address: The address of some other system that you expect to connect
 to.  The word ALL may be used for some its fields, e.g.
   ALL : Every single node!
   2:ALL : Everyone in zone 2
   2:252/ALL : Everyone in net 252
   2:252/25.ALL : All my points
   ALL/0 : All net hosts.
 
Examples:
 For a simple point system without a nodelist:
  Address 2:252/25.1 25225 0793-849044
  Key !MYPSWD 2:252/25
 
 For a boss:
  Address 2:252/25 25225
  Key !MYPSWD 2:252/25.ALL
 
 For multizone operation:
  Address 2:252/25
  Address 90:1004/0
  Address 90:1004/1004
  Key #90:1004/0    90:ALL/0
  Key #90:1004/1004 90:ALL

(This would use the address of 90:1004/0 for other zone 90 net hosts,
 90:1004/1004 for any other zone 90 address and 2:252/25 for anything
 else)

More intelligent default addresses
----------------------------------

All of the address parsing and nodelist processing has been updated to be
more intelligent and intuitive.

To put some mail on hold for a point you can now just type ".1" to send
to point 1.

Filling in unspecified fields is more intelligent.  For example if you have
addresses of
  2:252/25@fidonet and 90:1004/0@nest
then typing in 1004/101 will expand to 90:1004/101.0@nest.  Previous
versions would have taken the default zone and domain and thus expanded
to 2:1004/101.0@fidonet!!!!

Domains may be abbreviated.  e.g. in the previous example I could have
typed in 101@n for the same result.

When connected to another system the assumed address will be displayed
in the top left of the screen instead of the default address.

Outbound reading
----------------

I have tried to speed this up, but have not succeeded very well.  The
slowness is in accessing the nodelist for the normal scan and in reading
the flo files for the niceoutbound and zoomed scan.  I have rewritten
a lot of this and added a few speedups, such as keeping the nodelist
open, etc.

While reading the outbound directories BT displays the zone and domain
that is being processed and for the niceoutbound and zoomed displays
the actual node.

If you time it you'll find it is a bit faster than before (about 10%?).

Other
=====

Baud rates are referred to using unsigned numbers so that 38400 is not
treated as a negative number.  I am intending to provide software support
for 38400 baud soon.

Changed the "Nobody Home" bit, back to how it was a few versions ago.  This
means that if the remote end doesn't respond to sending CR's and Spaces
to get its intro/banner up all will not be lost and it will carry on looking
for session initiation characters.

Took out the bit that stopped the MNP Filter if /ARQ had already been detected
as it seemed to stop it working for some incomming The-Box callers.

Added keyboard escape to outgoing calls during sendsync

FTSC/Xmodem receive now displays correct file length.  I also fixed a bug that
prevented sender/receiver changeover.  There is still a problem with pure
fts-0001 calls in that it assumes telelink and can get stuck in a loop until
it times out.


Version 2.40n6<dev> - 14th July 1991
===================

IMPORTANT
=========

the language file BINKLEY.LNG has changed.  I have included ENGLISH.TXT
and BINKLEY.LNG in this file.  Two new lines have been added to ENGLISH.TXT.
If anyone has a foreign language version of the language file can they please
send it to me so that it can be distributed with the full release and so I can
update it when I make changes.

If you want to convert the text file to another language then please go ahead.
You should copy ENGLISH.TXT into a new file such as GERMAN.TXT or FRENCH.TXT
and edit it.  Note that some lines must be of a particular length and that any
trailing spaces should be left in.  To create a new BINKLEY.LNG type in at a
CLI/shell:
   BTLNG.TOS german.txt binkley.lng


Changes
=======

- The History window displays the point.  (before only zone:net/node were
  displayed).  There is not enough space for the domain to be displayed as
  well!

- Added better error message if using an incompatible BINKLEY.LNG file.

- Addresses displayed during extended outbound reading are padded with
  spaces to overwrite previous address.

- Keyboard Alt-Keys are language independant.  The current keyboard table
  as returned by Keytbl() is used to find what key it is.

- 38400 Baud.  This doesn't seem very reliable however.  Perhaps someone
  knows a better way to do this?  I have just used the Rsconf() setting
  the baud rate to 2400 [=38400/16] and clearing bit 7 of the ucr parameter
  [which disables the /16 circuitry in the mfp... but also disables some of
  the asynchronous circuitry].  As it stands it is unusable, so stick with
  19200 for the time being.
  
  For people with a hardware modification to do 38400 (by doubling the Rs232
  clock rate) I have added another configuration option:
  
    Hard38400
  
  This halves the effective baud rate before passing it onto Rsconf, thus
  if you select 38400 baud it sets it to 19200 (1 cycle of /4).

- Points are sorted in the outbound area.

- Executing shell commands is done as follows:
   - If the first word of the command ends in .TOS, .TTP or .PRG then GEMDOS's
     Pexec() function is called.
   - If the shell_p vector is set (e.g. by Gulam or Craft) then the command
     is sent through this vector (resident shell).
   - If the environment variable SHELL is set then "$SHELL -c command" is
     executed (Unix style shell).
   - If the environment variable COMSPEC is set then "$COMSPEC /c command" is
     executed (MSDOS style shell).
   - Otherwise use GEMDOS's Pexec() function.
  This applies to:
   - Shell     (command executed by pressing Alt-Fkey)
   - Aftermail (executed after receiving mail)
   - Reader    (executed by pressing Alt-E)
   - Packer    (executed at start of new event)
   - Cleanup   (executed before packer)

- Pressing Escape brings up a popup box for you to type a command in.  This
  will get executed in the same manner as shell commands.  In the popup box:
    Pressing Escape aborts the popup box.
    Pressing Return executes the Shell.
  
  Pressing Alt-J (Jump to Dos) executes the shell directly.

- You can now access nodes that are not in the nodelist as long as you have
  a KEY statement for it.  Adding a phone-number to the Address statement and
  Password to the Key statement will give you full access to the node.  This
  may fix a few problems for points with more than one address.


Competition Winners
-------------------

Winner of the "most bugs and suggestions reported so far" competition goes
to Bernd Renzing of 2:245/52.  The prize is of course to have a huge phone 
bill and to have some of his suggested features implemented :-)
================================================
BinkleyTerm-ST 2.40N and 2.40NT - 3rd July 1991
================================================

3rd July 1991:
 - Definition of address structures ready to implement extended address 
   with seperate pointnet and bossphone for each aka and change of several 
   modules to use this new data structure.
 - Movement of some declarations between header files to be more sensible.
 - Reformat and added comments to several source files so I can understand 
   how they work before I change them.
 - Looked at the outbound file reading to see if it can be speeded up.  I 
   restructured a bit of it for readability, but it needs some timing tests 
   to fnid out where the time consuming parts are.  In particular the 
   niceoutbound causes it all to be read twice in seperate passes!
 - Made sure all references to baud rates were unsigned since 38400 is
   bigger than 32768.
 - Moved version stuff into seperate source file so as to avoind having to
   recompile everyhing for each version change and it also cuts the executable
   size down by a few bytes!
 - Changed the "Nobody Home" bit, back to how it was a few versions ago.  This
   means that if the remote end doesn't respond to sending CR's and Spaces
   to get its intro/banner up all will not be lost and it will carry on looking
   for session initiation characters.
 [Still can't find why The Box won't connect... am about to set up The Box
  on a machine... and I've also plugged in my RS232 tester (with its flashing
  LEDs)]
 [Can't get The Box to operate properly so that I can test between machines,
  keeps on giving me modem errors and things]
 - Took out the bit that stopped the MNP Filter if /ARQ had already been
   detected.

 - Did a lot of work on addressing... understands address and key.  All
   addresses are processed as 4D by default.  Modified yoohoo and ftsc
   to remap to 4D if given the fakenet.  rewrote find_addr.
 - Added keyboard escape to outgoing calls during sendsync
 - DIsplay of assumed node at top of screen
 - Added domain matching from left, e.g. @l will match @lifenet.  the first
   domain that matches is returned.
 - You can now type in .point as an address.
 - FTSC/Xmodem receive now displays correct length
 - Tried to speed up outbound reading... (reads *.*)... didn't help much!
 - Domain abbreviations now work
 - Address filling out is more intelligent, e.g. 1004/102 ==> 90:1004/102@nest
 - Spent more time speeding up outbound... lock_nodelist, skipping nodefind,
   etc.


BinkleyTerm 2.41a - alpha-2 (24th July 1991)
---------------------------

EMSI protocol
-------------

EMSI = Electronic Mail Standard Interface designed by Joaquim H. Homrighausen
and Chris Irwin.  It is a replacement for the Yoohoo/2U2 Wazoo protocol.  The
advantages of using EMSI are:
 - It is designed for future compatibility and enhancement, theoretically
   being usable within other networks.
 - All Email addresses are processed.  Thus if you are in several networks
   you can poll once to collect all your mail without any awkward routing
   commands.
 - It works in 7 bit environments.
 - Less likely to be triggered accidently by line noise

It is fully compatible with Wazoo and FTS in that if no EMSI handshaking
occurs it will fall back to using Wazoo or FTS sessions thus there should
never be any reason to disable it.  The entire session startup code has
been rewritten so that WaZOO, FTS, EMSI, External UUCP mailers and BBS
callers work.



New and changed configuration option
------------------------------------

No_EMSI : This will disable the EMSI protocol, intended for testing.
fts-0001: Will also disable EMSI protocol (as well as WaZOO!).



Bug fixes
---------

Fixed a few more places in configuration, which would cause bombs if not
set up properly.

Fixed lots of odd bugs which I've forgotten about now...

Fixed bug whereby points could pick up other people's mail from other nodes!

Re-arranged source code to reduce global variables and make the structure
easier to understand for adding multi-address sending with EMSI.



BinkleyTerm 2.41a - alpha-3 (30th July 1991)
---------------------------

1. Passwords
------------

 Changed the EMSI password code.  I think it will work better now.  The
 problem is that front-door doesn't fill in the password field when it is
 the receiver (so I made Binkley-ST do the same), but this means the
 sender can't know whether it is a password protected connection or not.

 The basic logic is that the sender sends a password and the receiver
 checks it.  If the receiver thinks the password is wrong then it will
 hang up!
 
 Actually, I think there may be a bug in FrontDoor, because I just called
 my hub and I got a completely different password in the incomming EMSI
 password field even though it is correct with a WaZOO session, so maybe
 both sides should send and check the password?

 Passwords should be 6 characters or less for compatibility with FTS and
 8 characters or less for compatibility with WaZOO sessions.  Comparison
 is only made on the 1st few characters and ParselST only stores 8 characters
 into NODELIST.DAT anyway.


2. IDENT
--------

 The EMSI IDENT field is now added.  If you are in the nodelist then it
 pulls information from your NODELIST.DAT entry, otherwise it makes up
 as much as it can.  There are a few possible problems:
  - The phone number should be a full international code, but the information
    in NODELIST.DAT has been processed by parselst first and its far too
    much hassle to reconstitute the original number again.  I suppose it could
    cheat and just put -Unpublished-, but we'll see how things go with the
    way it is now.
  - The Nodelist flags can not be made up exactly as in the nodelist because
    NODELIST.DAT doesn't contain enough information.
      "XB" : is automatically added (defines compatibility with various File
             request methods).
      "HST" and "PEP" are added if set in NODELIST.DAT
      "MO" is set if you are mail only
      "CM" (Crashmail) is set if it is set in NODELIST.DAT
    No other flags will be set until someone writes an updated parselst that
    understands the other flags.
  - If you aren't in the nodelist then the City (Geographical location) field 
    is left blank.
  - The System Operator name is taken from BINKLEY.CFG as it is not included
    in NODELIST.DAT.
  - If you are not in the nodelist then the BaudRate field is set to the
    baud value in BINKLEY.CFG.  This will often be wrong, e.g. you might have
    a baud of 19200 (DTE speed) whereas the real modem connect speed is 9600.

3. Last:
--------

  I was calling a routine before it knew the remote address!
  

4. File Requests declined, AfterMail not run
--------------------------------------------

  These were because there are references to variables set during a WaZOO 
  session right in the guts of the Janus and Zmodem routines!!!!  I hope to 
  remove all of these soon, but in the meantime, I'm just setting up all the 
  old variables as if a YOOHOO had occured.

5. Problem with Janus not being used
------------------------------------

  A slight error interpreting the incoming EMSI packet has now been corrected.
  The best file transfer method available will be selected in order of
  Janus, ZedZap, ZedZip.

6. Sending mail to all Addresses
--------------------------------

  Mail to all of the remote's addresses is now sent.  It hasn't been tested 
  very thoroughly, especially using Janus, which was written inside out, 
  deciding which files to send in the middle and sending/receiving individual 
  packets on the outside!  I just hope my patches work!.  ZedZap and ZedZip 
  should be OK as I wrote a new EMSI specific function to send all the files.
  
  The flags
     PUA : Pick up all mail
     PUP : Pickup only primary mail
     NPU : Dont pick up anything
     HAT : Hold all traffic
     HXT : Hold compressed mail
  Are not fully functional yet.  Under ZedZap and ZedZip they should work, 
  except that HXT will hold everything except packets.
  
  Under Janus none of these flags are used, all mail will always be sent
  (except for anything on hold of course!).
  
  Binkley-ST always asks the other side for all mail.  Ideally they should be 
  set with special event flags in BINKLEY.EVT, but I havn't got around to it 
  yet.


BinkleyTerm 2.41a - alpha-4 (3rd August 1991)
---------------------------------------------

1. External Mailer Code bug fixed.
   In fact all I did was an '*' to the source code!

I wouldn't normally send out a new version with just one byte of the
source code changed, but it seems that this bug is quite urgent to
some people (Hi Theo/Jon and The Boss), so here it is!

I think the next version will get promoted to beta status as much of the new 
code seems to be working reasonably well.  If I can sort out the domains, 
protected inbound areas and a few other things soon then it will almost be 
ready for "normal" people to use.
BinkleyTerm 2.41a(beta-1): 3rd August 1991
------------------------------------------

1: Escape Key works in Terminal Mode (It used to try to do the pop-up shell.

2> Escape Key in mailer mode without fullscreen will jump to the shell like
   it used to instead of prompting for a command.

3: Popup box modified so that called routine can unpop the box.  Popup-shell 
   (from ESC) and Kill-Mail (Alt-K) now clear themselves away before doing 
   their stuff, so that if they update the activity window it doesn't scroll 
   and leave bits of it itself behind.

4> EMSI Passwords.  I changed this some more.  If the receiver sends back
   a password then it will be compared and the "Sender OverRide" message 
   displayed.  If the receiever does not send a password back then we have no 
   way of knowing whether it is password protected or the other side has not 
   set up a password, so we display sender over-ride anyway.

5> ProtInbound and KnownInbound: These should now be used (if defined) if a 
   password has been setup using the "KEY !password node" in binkley.cfg 
   instead of with ParselST.

6> Pressing key to abort manual polls is cleared from the key buffer.

7: Doing a "poll" when invoking BT will expand names properly (it used to do 
   it before it had read BINKLEY.CFG!), e.g.
     Address 2:245/52.1    24552 012-345-67
     Address 90:6000/104.1 6004  012-345-67
   and then invoking BinkleyTerm as:
    bt poll 6000/104
   will now expand it to 90:6000/104.0 (it used to expand to 2:6000/104.0)!

8~ The correct inbound area (ProtInbound/KnowInbound/NetFile) will be used 
   during Password protected sessions if defined.  Before it used to often use 
   the wrong one.

9. Some new keywords have been added to make the EMSI IDENT field more 
   accurate.  These are:

     NLsystem
     Phone
     City
     NLflags
     NLbaud

   Each of these is followed by some text and is intended to be used to create 
   a nodelist entry for you.

     NLsystem: The name of your system as it should appear in the nodelist.  
       There should be no commas.
               NLsystem My Little Phoney

     Phone: This should be the full international number in the same format as
       in the nodelist or the word "-unpublished-".  e.g. my number is:
               Phone 44-793-849044

     City: The Location as specified in the NodeList.  e.g.
               City Wootton Bassett UK

     NLflags: These are all the flags as used in the nodelist seperated by 
       commas.  For a complete list refer to the Fidonet technical document 
       FTS-0005.ARC and read all the text at the end of a recent nodelist.  
       Official flags that may be used are:
          CM        Node accepts mail 24 hours a day
          MO        Node does not accept human callers
          V21       CCITT V21   300 bps full duplex
          V22       CCITT V22   1200 bps full duplex
          V29       CCITT V29   9600 bps half duplex
          V32       CCITT V32   9600 bps full duplex
          V33       CCITT V33
          V34       CCITT V34
          H96       Hayes V9600
          HST       USR Courier HST
          MAX       Microcom AX/96xx series
          PEP       Packet Ensemble Protocol
          MNP       Microcom Networking Protocol error correction
          V42       LAP-M error correction w/fallback to MNP
          MN        No compression supported
          XA        Bark and WaZOO file/update requests
          XB        Bark file/update requests,  WaZOO file requests
          XP        Bark file/update requests
          XR        Bark and WaZOO file requests
          XW        WaZOO file requests
          Gx..x     Gateway to domain 'x..x',  where 'x..x` is a string
                    of alphanumeric characters.  Valid values for 'x..x'
                    are assigned by the FidoNet International
                    Coordinator.  Current valid values of 'x..x' may be
                    found in the notes at the end of the FidoNet
                    nodelist.
          #02       Zone 2 mail hour (02:30 - 03:30 UTC)
          #09       Zone 1 mail hour (09:00 - 10:00 UTC)
          #18       Zone 3 mail hour (18:00 - 19:00 UTC)
          Ux..x     A user-specified string,  which may contain any
                    alphanumeric character except blanks.  This string
                    may contain one to thirty-two characters of
                    information that may be used to add user-defined
                    data to a specific nodelist entry.
		e.g.

               NLflags XB,CM,HST,V32

     NLbaud: The baud rate to be specified in the nodelist.  This is not 
       neccessarily the same as your DTE speed.  If you have a high speed 
       modem then generally 9600 is used. e.g.
               NLbaud 9600

   If these are not specified then BinkleyTerm will try its best to make up 
   the data from what it has available.

   It is probably a good idea to set these up yourself, because in the future 
   it is possible that this feature may be used by nethosts to automatically 
   keep the nodelist uptodate.


BinkleyTerm 2.41a(beta-2): 3rd August 1991
------------------------------------------
1. HardCTS configuration added.  This is code by Iain Paton (2:259/5) which
   makes BinkleyTerm wait for CTS to be high before sending any characters.  
   I'm a bit dubious as to whether this really works because the ST uses an 
   RS232 queue.  The best solution in my opinion is to install HS_FIX 
   orTurboCTS.

2. Added a prefix/telephone number parameter to the KEY statement.  The new 
   format is:
      KEY [#alias] [%prefix/phone] [!password] address

   Parameters in [] are optional, but there should be at least one of them!  
   The phone number will overide any other number (e.g. from Address statement 
   or the nodelist).

   The format of the %prefix/phone is either:
    prefix/               e.g. %ATB1&G2DT/
    prefix/phone          e.g. %ATB1&G2DT/012-345-6789
    phone                 e.g. %012-345-6789

   This means that you can't use the '/' character in the prefix string.  If 
   this is a problem let me know.

   The purpose of this extra parameter is:

    - make it possible to temporarily add new nodes who you want to call that 
      aren't in the nodelist yet without the hassle of editting nodelists.

      e.g. I wanted to call 2:244/470, but the number was not in the nodelist, 
      so I added:
          Key %010-49-7151-61494 2:244/470

      Binkley will display the caller's name as "binkley's Boss", but I don't 
      think this matters.

    - To add special modem command prefixes to certain nodes.  For example you 
      might want to force a particular type of connection or change the guard 
      tone settings for some nodes.

    - For points to call other systems without having to set up a seperate 
      Address or have a nodelist.

3. Fixed bug that caused boss's phone number to be used wherever you were 
   calling.

4. Modfied keyboard reader.  Hopefully '\' on the German keyboard (and other 
   Alt-Shift keys) should work  If there are any problems please tell me what 
   key it is, what keys you are supposed to press to get it and what language 
   version your keyboard layout is.

5. Fixed problem with mail not being picked up for points when Domains are 
   used.  Now if either side does not have domains then domains are ignored.
   
   Please note that the best way to order things in BINKLEY.CFG is:
    Domain statements
    Address statements
    Key statements
   Having them in a different may cause strange things to happen.

6. The routine that works out where mail is held is more intelligent.  If you 
   have set up Domains, but the remote system hasn't, then Binkley will guess 
   at the domain to use thus if you have:
     Hold fidonet
     Domain fidonet.org fidonet nodelist
     Domain nest.ftn nest nestlist
     Address 2:252/25@fidonet
     Address 90:1004/0@nest
   And you are connected to 90:1008/0 then nest.05a\ will be used instead of 
   fidonet.05a\.
   
   Similarly if you don't have any domains set up but the remote does then 
   mail from your normal hold areas will get sent.

7. Rewrote the Domain configuration code and address parser so that it should 
   work better.  Before if you had:
     Address 2:252/25@fidonet
     Domain fidonet.org fidonet nodelist
   It would have generated two domains (fidonet and fidonet.org).  Now it will 
   try its best to do what you'd expect.

8. Debugged a few other problems with Domains... such as case sensitivity.

9. REQ and RSP files should be deleted at the start of a session for ALL your 
   addresses and for all of your inbound areas.

10. Stopped the outbound from being read twice after running the afterml 
    shell.

11. A bad file request will generate a netmail packet instead of a .RSP file.  
    I was feeling lazy, so this packet may not be correct on all systems.  the 
    Packet header is always in 4D using the 2.2 type packet.  The message 
    itself is 2D, but I couldn't be bothered fiddling about with fakenet 
    addresses or Kludges just yet.  This may be a problem for points or 
    interzone Freq's and I'll sort it out sometime... but it is half past 
    three in the morning now and I need some sleep, and I doubt I'll have much 
    more time to work on BinkleyTerm during the next week.

    For this to work you must create a template (see "SAMPLE.TPL" in the full 
    BinkleyTerm release.... I'll put it in this archive just in case you 
    havn't got it) and add a line to BINKLEY.CFG like:
         ReqTemplate h:\bt\request.tpl
    You can also have known and protected templates with:
         KnownReqTpl <filename>
         ProtReqTpl  <filename>

    Note that the packet generated is a type 2.2 as proposed by Thom Henderson 
    in FSC-0045.  This is slightly incompatible with FSC-0039, but should work 
    with FSC-0048 compatible mail processors.  I'll probably change it to use 
    FSC-0048 very soon.




BinkleyTerm 2.41a(beta-3): 5th August 1991
------------------------------------------

1. New configuration option:

     HoldOnUs

   If this is put into Binkley.cfg then Hold files will be sent when calling 
   out.

   This feature was requested by Udo Erdelhoff (2:245/52.1)

2. The Logfile can be given a maximum length.  The StatusLog configuration has 
   the new format:

     StatusLog filename [length]
   
   filename: Name of the logfile
   length: Length of the logfile before it is trimmed in K.
   
   e.g. To keep the log file to around 50K use:
   
     StatusLog c:\bt\binkley.log 50
     
   Whilst trimming a temporary file is created, so you will need at least 
   twice the defined size of free disk space.

   Trimming is done by copying the end of the file (starting at a new line) to 
   a temporary file, removing the old log and renaming the temporary file.
   
   The file is actually trimmed to 3/4 the specified size so that it does not 
   keep getting trimmed every time.  Thus for a 50K buffer it will get trimmed 
   to 37.5K and won't get trimmed again until it gets back up to 50K again.
   
   The logfile is only trimmed when it is opened or closed (e.g. when 
   starting and exitting BinkleyTerm, running a shell or spawning a CLI 
   command.  It would be too slow to do it everytime the status log was 
   written to, though maybe I could also do it in a few other places such as 
   when reading the outbound area or every minute when nothing is happening, 
   or at the end of a session?

3. The activity window will not be cleared when going between terminal mode 
   and unattended mode.

4. Stopped the Response packet routine from bombing when Domains weren't 
   involved.


BinkleyTerm 2.41a(beta-4): 11th August 1991
------------------------------------------

1. HoldOnUs now works!  In fact I've rewritten the parse() function so that 
   any future problem caused by keywords beginning with the same word as 
   another won't happen again.

2. New configuration Keyword:
     SendRSP
   If This is included in Binkley.cfg then the old style *.RSP files will 
   be sent instead of NetMail packets.

3. EMSI receiver will now send the password back if it matches instead of 
   making it empty.  thus the sender can know if it is a protected session 
   or not.  If the password is wrong then the receiver will just hang up.

4. Session passwords will be checked for all of the remotes addresses and 
   any mail for addresses not protected will not be sent.  This will stop 
   hackers from just appending someone elses address as an aka and picking 
   up their mail.

5. The "Last:" field in the "Today at a glance" window is updated for 
   outgoing calls.

6. New configuration options:
     MaxTime      <time>
     MaxKnownTime <time>
     MaxProtTime  <time>

   This limits File Requesting by time.

   <time> is given in seconds.
   
   e.g. to limit FREQ's to half an hour use:
     MaxTime 1800  ; 30 minutes = 30*60 seconds

   The default if unspecified is 30 minutes.

   The first file is assumed to take BaudRate/10 characters per second 
   (i.e. 240 cps for 2400 baud), but for subsequent files the actual rate 
   that occured for previous files will be used.
   
   A new response file status type of 7 has been added.  See page 33 of the 
   BinkleyTerm reference for information about the response file or just 
   add the line:
     %text 7 your request exceeded the preset time limit on this system
   into your existing *.TPL file(s).

7. *.$$? files for all addresses when mail has been sent with EMSI will be 
   deleted instead of just the called address.  Also I may have fixed a bug 
   that stopped calls to other domains from working properly?

8. Fixed real problem with *.$$? deletions and updating of outbound area.

9. Fixed bug when reading Domain from configuration.  I've said it before 
   and I'll say it again... the best way to define things in BINKLEY.CFG 
   is:
     Domains
     Addresses
     Keys
     
   If you put them in a different order then it is likely that BinkleyTerm 
   will get confused.

10. Fiddled about with the EMSI session's.  Its still a mystery why 
    FrontDoor won't send any mail back!

11. Fiddled around some more with EMSI and file requests.



BinkleyTerm 2.41a(beta-5): 11th August 1991
------------------------------------------

1. The time limit on freq's was completely wrong.  I can not believe how 
   stupid I am, I was multiplying the file length by the cps!!!

2. Fixed problem if some of the remotes aliases are known or protected and 
   you are using different netfilepaths.

3. After Alt-M to poll the right hand character will not be missing.

4. Fixed problem with a different name being used when setting/clearing the 
   multi-tasking *.bsy flags.


BinkleyTerm 2.41a(6): 20th August 1991
-------------------------------------------

1. File Request Time Limits:
   I documented this wrong before, the correct configuration words are:
      MaxTime
      KnownMaxTime
      ProtMaxTime

   Not defining these lines now defaults to sensible values instead of 0.  
   The default value is 30 minutes (1800 seconds).
   
   I'm not sure if I've fixed the problem that some people have mentioned 
   of memory being corrupted (Daron Brewood and Erno Meffert).  I just 
   can't get it to do this on my machine (even using Daron's config file).  
   If it does still do this then try adding "SendRSP" into binkley.cfg and 
   see if it still happens.
    
2. File Requests with Janus should work better now and the NetMail packet 
   will get sent before being deleted!!!!  I don't think the time limit 
   works for Janus (it is reset for each file) but at least it doesn't bomb 
   out or refuse files.

3. NetMail responses are now done using FSC-0048 packets instead of using 
   type 2.2 packets which don't seem to be recognised by most software.  
   I'm not sure if it will properly for points as I have not used the 
   fakenet address anywhere yet!  ^TOPT ^FMPT and ^INTL Kludge lines are 
   added where neccessary, but I havn't got round to doing ^DOMAIN's yet.

4. Support for IOS's *.?AT files.  These are archived packets using modulo 
   36 encoding in the filename.  Read IOS's update note u_0_79.upd for more 
   information.  You need to put "NewBinkley" into IOS's MAIL.CFG for these 
   files to be created.

   Note: During FTS-0001 sessions these won't get sent yet, but I don't 
   think that it should worry anyone... who uses FTS-0001 these days 
   anyway?


BinkleyTerm 2.41a(7): 21st August 1991
-------------------------------------------

1. Stopped Aftermail from running twice when making calls.

2. Event option "A=<time>" now works for bigger numbers.  Previously 
   calculations were done using 16 bit words and they overflowed after 
   65536 100ths of a second (about 11 minutes).  I have changed it to using 
   longs!

3. WaZOO sessions were not sending the new *.?AT files (they worked fine 
   for EMSI and Janus).  This is now fixed.

4. EMSI sessions: The first 5 Remote addresses are displayed in the Pending 
   outbound window.  Also many messages have had their priorities changed 
   to try and unclutter the normal screen display and log file when not in 
   debug mode.

5. "Cleanup" used to only work if you also had "Packer" defined.


BinkleyTerm 2.41a(8): 22nd August 1991
---------------------------------------

(22nd August)

1. If a KEY statement uses an alias that hasn't been defined then a warning 
   will be displayed and the KEY ignored!!!  Previously the result was 
   unpredictable!  The correct order in BINKLEY.CFG is:
     Domains
     Addresses
     KEYs
   Most people should have no use for the #<assumed> part of a KEY 
   statement as Binkley will automatically assume the correct alias 
   depending on zone and domain information.

2. Problem with ~:\filename in flofiles fixed.  BinkleyTerm uses ~ to 
   indicate that a file has been sent, but the extended outbound reading 
   did not understand this (it didn't recognise ';' either!).

3. Outbound window when EMSI addresses displayed has its attributes 
   cleared.

4. Response packets to points are changed a bit.  My points sometimes 
   bounced these messages back to me.  So I've made it use the fakenet 
   address in the packer message part.  The packet header uses FSC-0048, 
   which is supposed to be backwards compatible with FSC-0039 and FTS-0001, 
   but there seems to be some ambiguities in the FSC documents concerning 
   where you shoudl use fakenets or not, and I am quite confused!

(30th August)

5. Address BIOS keyboard table is retrieved from ROM every time it is 
   needed rather than just at the start of the program.

6. Fixed some of the outbound reading stuff to understand IOS *.?AT files 
   that I missed before!  In particular the part that works out if any mail 
   is left to send.

7. Outbound window should always get updated after EMSI sessions (not only 
   if mail was sent!)

(31st August)

   [ Grrrrr... One of my hard disks has broken this morning! (Motor won't   ]
   [ start) :-(                                                             ]

   [ Aha!... I turned the motor spindle and it started up again!!! <Gasp of ]
   [ relief!>... now back to some serious work on Binkleyterm.              ]

8. EMSI... changed bit that handles the turnaround from sender to receiver, 
   so I'm hoping this fixes things with FrontDoor.

9. EMSI... The Inbound/NetFile folder for the remote's primary address will 
   be used correctly for all inbound mail.

10. IOS *.?AT files.  When packets are sent to points they are named using 
    the fakenet address (instead of as 0000000.SU0).  The extension will 
    also be based on the day of the week instead of always being SUnday.

11. When packets or arcmail are sent by Zmodem under different names than 
    their actual filenames, the assumed name will be displayed on the 
    status line.

12. I put:  "while(!Bcostat(1));" in the lowest level RS232 output function.

13. Key statements accept '*' as well as 'ALL', e.g. 2:*/0 is all net hosts 
    on zone 2.

14. HoldOnUs and noEMSI can now be followed by a list of nodes for which it 
    will take effect.  The nodes may use wildcards including the
      '*' : Match the remainder of the field whatever
      '?' : Match a single character
    Also a node may be preceded by a
      '-' (hyphen or minus sign)
    which indicates that this node should NOT have the effect.  A few 
    examples will make it clear (I hope).
    
    eg1:
      HoldOnUs -2:250/123 *
      
      Held messages wil be sent when you call all nodes except 2:250/123.
      
    eg2:
      noEMSI 1:* -3:633/* 3:*
      
      Disable EMSI for all Zone 1 and zone 3 nodes except for net 3:633
    
    eg3:
      HoldOnUs 2:25?/*
      
      Send Held packets to nodes in any net matching '2:/25?', (ie. 250, 
      251, 252... 259).
    
    This should work with points and domains also, but I would be lying if 
    I said I had thoroughly tested it.
    
    If NoEMSI has any nodes after it then EMSI will be enabled for ALL 
    incoming calls.
    
    Not putting any nodes after noEMSI disables EMSI completely.
    Not putting any nodes after HoldOnUs cause Held packets to be sent to 
    everyone on an outgoing call.

15. After a shell call, the event timer is reset.  This avoids the annoying 
    problem that I sometimes have of doing something, seeing the AA LED 
    ring, quickly exitting back to Binkley only to see it try and dial out 
    immediately instead of answering.

16. Killing Bad Call Flag files (hold\*.$$?)

    A new event flag in BINKLEY.EVT
       $  (dollar sign)
    This will kill all the bad call flag files (*.$$?) in all your outbound 
    folders at the start of the event.
    
    Typing '$' will also perform this function if you want to do it 
    manually.
    

BinkleyTerm 2.41a(9): 7th September 1991
-----------------------------------------

1. Fixed some faulty logic in the No_EMSI and HoldOnUs code.

2. Fixed bug in Janus code that didn't delete *.BSY files (Theo Runia)

3. ReqOnUs may be followed by a list of addresses in the same way as for 
   HoldOnUs and NoEMSI (see read241a.b8)

4. ReqOnUs should now work properly for EMSI sessions! (Albi Rebmann)

5. Fixed lost key presses when screenblanking was not used (Joerg Spilker)

6. Outbound should be set up correctly after a call where not all mail is 
   sent.  e.g. if you have crash and hold for a node and then poll, the 
   crash is sent but the hold remains.  It used to leave the C marker in 
   the outbound window.

7. Cut down the MNP filter time.  It only needs 1 second of space now 
   instead of 3.

8. Stopped the problem of waiting for a key when aborting a connection.

BinkleyTerm 2.41a(10)
----------------------

What happened to 10?  Nothing, it just slipped by as debug-10 while I was 
trying to sort out my problems with 38400 baud.  When I eventually found 
the problem (see point 4 below) I removed everything I had done in my other 
attempts to fix it, so 10 does not exist.


BinkleyTerm 2.41a(11): 29th September 1991
-------------------------------------------


1. When a point and a node that is not the point's Boss are connected then
   mail for the point's real boss is not sent.

   Because of Binkley's 2D method of storing outbound mail, this sort of
   session will not work very well anyway.  Hopefully more utilities can be
   made to be compatible with IOS's Base-36 address storage which encodes
   the point without needing a fakenet.

2. Changed the way domains work.  I was trying to be too clever before so
   that it could handle cases where one side has:
     90:....@nest.ftn and the other side 90:....@fidonet.org
   this resulted in mail being duplicated in the outbound areas and of the
   lengths not being calculated properly or not being found in some
   situations.

   It is now simplified so that the domains must match if they both exist.

   If you do not need to use Domains then don't use them.

   For example if you are in FidoNet and NeST then either do it properly
   with domains, e.g.
     Domain  fidonet.org fidonet nodelist
     Domain  nest.ftn    nest    nestlist
     Address 2:252/25@fidonet
     Address 90:1004/1004@nest

   or don't use domains at all, e.g.

     Address 2:252/25
     Address 90:1004/1004

   But DO NOT DO IT LIKE THIS:
     Address 2:252/25@fidonet
     Address 90:1004/1004@fidonet
   because if you then connect to a NeST node who uses @nest you will not
   be able to transfer mail properly.

3. MNP_Filter has been changed again as some people were still complaining 
   about it not working.  I've also made it check for carrier like the PC 
   version 2.50 does.

4. Finally tracked down the problem I was having with 38400 baud and 
   Zmodem.  It is simply that 38400 is too big to fit in a signed word!

5. Key %<prefix> will now over-ride modemtrans prefixes, making it a bit 
   more useful!


BinkleyTerm 2.41a(12): 10th October 1991
-----------------------------------------

But you thought I said that beta-11 would be the last version before the 
release version?

... Well, people were still reporting a few bugs, which I've solved here 
and for one reason or another I havn't had much spare time left to work on 
BinkleyTerm in the last few weeks.  But this is definately the last beta 
version before a release version (honest!)

Changes
-------

1. Problem with Janus and EMSI when calling a node and being answered with 
   a different one is fixed <Robert Elsinga 2:282/301.10>

2. Size of files to points in other domains and zones in the outbound and 
   zoomed windows is now calculated correctly instead of being displayed as 
   zero.  This problem manifested itself when using the same fakenet 
   address for different domains <Albi Rebmann 2:247/770>

3. Outbound area will be re-read after sending mail.  Previously it just 
   tried to update the data for the primary address of the previous call.  
   Also $$ files for akas will be deleted after a succesful call.

4. If you have two or more domains set up then any addresses during an EMSI 
   session for other domains will be ignored, this may speed things up for 
   some people.

   The reason I do it only if there are two or more domains is because some 
   people are set up as 90:net/node@fidonet.org, which should not work if 
   trying to connect to 90:net/node@nest.ftn.  However I'm trying to be 
   nice to these people and so in most cases if you only have one domain 
   defined it more or less ignores it.  However it is very likely that 
   doing this may not work correctly with other less tolerant mailers.
   
   Really you should either:
     - set up alternate nets with seperate domains and outbound areas
    or
     - don't use domains at all
   but DO NOT define a fidonet domain and then use zones outside of 
   FidoNet.


BinkleyTerm 2.41a(13): 24th October 1991 2.41(b13)[P][D]
-----------------------------------------

1. Fixed error in code that killed *.$$? files.

2. Increased default File request limits to 1Meg and 1Hour.

3. Fixed Problem with Zmodem that was causing EMSI problems.

2nd November 1991
-----------------

4. Recompiled with Pure C (instead of Lattice C5).  This makes it 
   20K smaller.

5. Fixed a bug that caused extended outbound reading to bomb.

6. Fiddled with EMSI a bit following implementation suggestions from
   Arjen Lentz, who has implemented EMSI into The Box.  This should
   cure the problem that some people were having with MNP modems.

7. Added extra keypresses
	^Q : Quit (same as Alt-X)
	^M : Load Message Reader (same as Alt-E)
   These are the same keys that ACS's BinkleyTerm Shell (BTS) use.

8. Fixed bug that caused bombs when domain's weren't defined properly.

BinkleyTerm 2.41a(14): 9th November 1991 2.41(b14,Pure,Debug)
--------------------------------------------------------------

1. Patched Pure C's chdir() function.  This was causing bombs when shelling.

2. Wrote a new system() function that does what the Lattice C one does.  It
   will do one of the following:
      call through _shellp at 0x4f6
      execute: $SHELL -c command
      execute: $COMSPEC /c command
   when executing, the environment variables will be passed on.

3. Added a new configuration command:
     PollDelay <time>
   Sets the time to wait between poll retries.
   The time is specifed in 10ths of a second and defaults to 20 (2 seconds).
   
4. Removed code for QuickBBS and TBBS nodelist formats as these are never
   used on the ST.

   NewNodeList is enabled by default and the newnodelist configuration 
   command has no effective action!.

   Attempts to locate a point using the Opus newnodelist are ignored, 
   solving the problem reported by Theo regarding connections with a point 
   from another system.

5. Ctrl-Q to exit removed from Terminal Mode!

6. The cost and duration of a call is logged at the end of an outbound 
   session in the format:
        Session with zone:net/node Time: xx:xx:xx  Cost: $xx.xx

BinkleyTerm 2.41a(15): 13th November 1991 2.41(b15,Pure,Debug)
--------------------------------------------------------------

Changes
-------

1. Fixed bug caused by Domains in the history file.

2. Fixed problem during Domain initialisation where Domains were
   defined after the addresses in BINKLEY.CFG

3. New BINKLEY.CFG command:
      CLIcommand <string>
   Defines a string passed to a command line interpreter.  If this
   command is used then the default "-c" and "/c" parameters are
   overidden.  Using this command without any parameters disables 
   the "-c" and "/c" completely.
   
   e.g.
     CLIcommand batch
   would execute shell's using:
     $SHELL batch commandline
   or
     $COMSPEC batch commandline
   
   This has been added to keep Alexander Bochman happy, and he should
   just include it without any parameters as in:
     CLIcommand
   Everybody else should simpy not use this command.

4. Put the Video Fossil initialisation back as it was.  i.e. even if
   noLineA is used the dispay will still be set to the full screen
   size using lineA variables.


BinkleyTerm 2.41a(16): 23rd November 1991 2.41(b16,Pure,Debug)
---------------------------------------------------------------

Changes
-------

1. nodeList.idx now handles all file lengths and offsets as 32 bits, which 
   I hope will prevent any problems arising when NODELIST.IDX is greater 
   than 65536 bytes long.  I have tested it with a very big nodelist and it 
   seems to work.

2. Added Roland Bohn's "Change Mail Flavour" code.

   By pressing Control-C in unattended mode, a pop-up box appears, which 
   allows you to change the flavour of mail for a node.  Just follow the 
   prompts.  You can changed betwen the following flavours:
     N : Normal
     C : Crash
     H : Hold
     D : Direct

3. The language file (ENGLISH.TXT --> BINKLEY.LNG) have been updated.  New 
   text has been moved into it that was originally in the program.  The 
   unattended help screen has been updated to include ^C, ^M, ^Q.

4. The Esc popup box to shell to a command is not so tall.

5. File Requests when using Janus and EMSI when the remote has more than 
   one address now works.  Note that the file requests are sent in a 
   seperate phase after all the mail for all the addresses has been sent.  

6. Keyboard reading is changed so that Control Keys are distinct from normal
   keys.  In particular, Control-M will execute the reader and Return won't!

7. Disable File Requests when you havn't defined an okfile (before it used
   to bomb!).

8. Fixed a bug that was stopping the logfile from being trimmed at all!  
   Also the trim function will get called more often now, whenever BT is 
   idling.

9. Fixed bug where top of screen didn't always have correct colours when 
   using noLineA.


BinkleyTerm 2.41a(17): 26th November 1991 2.41(b17,Pure,Debug)
---------------------------------------------------------------

Changes
-------

1. ReqOnUs should work better during EMSI and WaZOO sessions.  I've also 
   put more code in to handle NRQ (No Requests) and HRQ (Hold Requests) 
   EMSI Flags.  I have tested it with all the combinations of Emsi, YooHoo, 
   Janus, ReqOnUs, etc, that I can think of and it all seemed to work as 
   expected.

2. Ctrl-C mail flavour changing should work with IOS's *.?AT packets now! 


BinkleyTerm 2.41a(18): 29th November 1991 2.41(b18,Pure,Debug)
---------------------------------------------------------------

Changes
-------

1. FTS-0001 configuration command didn't work (because '-' is not 
   alphanumeric).  Also Mark_Kromm (the PC colour competition winner?) 
   wouldn't have worked either but who cares!

2. FTS-0001, Xmodem, SeaLink, Telink, etc, now work.  This hasn't worked 
   for ages, at least since I compiled it with Pure C.  It was caused 
   mostly by slight compiler bugs and incompatibilities.  This was a 
   serious bug making it non FTSC compliant!  Why didn't anyone tell me 
   before???  The 1st I knew of it was from pverhearing a conversation in 
   the American ATARI_ST echo.  BETA VERSIONS ARE FOR BETA TESTING... IF 
   YOU FIND ANY BUGS THEN REPORT THEM TO ME IMMEDIATELY, OTHERWISE GO BACK 
   TO VERSION 2.40 UNTIL THIS VERSION IS RELEASED!

3. Control Keys in Terminal didn't work properly.  They do now!

4. PollTries/PollDelay should abort if an incoming call comes while it is 
   waiting. [Suggested by Terry May]

5. Low level RS232 Output can be aborted by a keypress (e.g. when RTS is 
   low and/or Output buffer is full).

6. Sending files with Alt-S, pressing 'M' for More now works properly [Bug 
   reported by Terry May]


BinkleyTerm 2.41a(19): 30th November 1991 2.41(b19,Pure,Debug)
---------------------------------------------------------------

Changes
-------

1. Added an INCOMMING BATCH mode.  This is invoked by passing a parameter 
   of 'batch' on the command line, e.g.
      bt batch
   
   The usual errorleves apply (e.g. aftermail, external mail), as well as:
     -1 : No carrier
      0 : FidoNet compatible Session was OK, but no mail was received.

   Batch mode is designed for use in situations where another program has 
   already answered the phone and detected carrier.  When Batch mode starts 
   up there must be carrier present otherwise it exits with errorlevel -1.  
   If there is carrier then it goes into the incomming session routine, 
   where it looks for the usual FidoNet handshake characters (YooHoo, EMSI, 
   external mailer, etc) and will proceed to do a normal incoming mail 
   session.

2. Ctrl-F does the same as Ctrl-C (i.e. Change mail Flavour).  this is for 
   those systems where Ctrl-C causes the program to quit!


Changes between 19 and release 3.00 (30th November)
----------------------------------------------------

1. Token parsing changed t only accept alphanumeric characters and 
   underline '_'.  FTS-0001 keyword has been changed to FTS_0001.  This is 
   so that the tokens in File Request response files can be followed by 
   punctuation, e.g. in default.tpl "%sysop, system operator".

