home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 2 BBS / 02-BBS.zip / bt260xh7.zip / xe_user.doc < prev   
Text File  |  2000-08-09  |  164KB  |  4,664 lines

  1.  
  2.                  User documentation for BinkleyTerm 2.60 XE
  3.                 ============================================
  4.  
  5.  
  6. BinkleyTerm 2.60 eXtended Edition is based on BinkleyTerm 2.60 (c) by Vince
  7. Perriello. It contains modifications done by many people (see team.lst).
  8.  
  9. BinkleyTerm 2.60 original version and 2.60XE are available from 2:2474/400,
  10. 2:2474/100 and many other nodes as well as from our homepage (see below).
  11.  
  12.  
  13. STANDARD DISCLAIMER:
  14.  
  15.                !! regard this as ALPHA/BETA/GAMMA software !!
  16.  
  17.             We can NOT guarantee that this software has no bugs
  18.                  (but we use it ourselves on our own risk).
  19.  
  20.               So if you use it, use it on YOUR own risk, too.
  21.  
  22.  
  23. If you have any problem with BT-XE, please ask in the fido echos BINKLEY or
  24. BINKLEY.GER or contact us (see team.lst)! Please don't forget to include the
  25. version string of your copy. To get this version string of this modified
  26. version of Binkley, simply call it with the option "info" and the environment
  27. variable "task" unset.
  28.  
  29. If you are a programmer and doing source code modifications / enhancements /
  30. bugfixes / ... to Binkley, too, please contact us (see team.lst) and work
  31. together with us on this great project!
  32.  
  33. If you like, visit our homepage in the Internet at
  34. http://btxe.sourceforge.net/
  35.  
  36.  
  37.  
  38. Please read this:
  39.  
  40. Traps & Pitfalls when switching from older / other Binkley versions
  41. ===================================================================
  42.  
  43. - Please delete your BINKLEY.S?? files (in Binkley or TaskDir directory) before
  44.   installing a new version of BT-XE. If necessary, please also delete
  45.   BINKLEY.A?? and BINKLEY.D??.
  46.   Further, please delete the shared outbound dump of older versions:
  47.   BTRESCAN.DMP
  48.  
  49. - Binkley now uses the TZ environment variable to determine your time zone so
  50.   make sure that it is set correctly (see tz_*.doc).
  51.  
  52. - You must set the read only attribute for the DOS overlayed executables.
  53.  
  54. - If you want to have nodelist access to behave as ever, then please add
  55.   'SysopNDX' to your config file.
  56.  
  57. - Modem responses are parsed cAsE-sensitive now, so "Ring" in your Binkley.Cfg
  58.   will NOT match any longer a "RING" sent by the modem !!!
  59.   Make sure to have your ModemConnect (and all other Modem... response
  60.   settings) / NoFilter statements EXACTLY, case-sensitively matching your
  61.   modem's responses
  62.  
  63. - If you have 'ModemIgnore RINGING' in your config file then please change it
  64.   to 'ModemRing RINGING'.
  65.  
  66. - If you have 'ModemFailure OK' in your config file then please change it to
  67.   'ModemIgnore OK'.
  68.  
  69. - You have either to do a FULL domain setup (Domain, DomainKludge, Address
  70.   z:n/n.p@domain) OR do not use domains AT ALL (no Domain, no DomainKludge,
  71.   only Address z:n/n.p). If you don't REALLY need domains, I advise you NOT to
  72.   use domains at all (it will look nicer and you will have less trouble).
  73.  
  74. - You should NOT run different BT-XE versions at the same time because of the
  75.   data format of the (shared outbound) file BTRESCAN.DMP has changed.
  76.  
  77. - You maybe will see quite some transmission errors (resending, trouble, ...)
  78.   in the log now. This is not because BT got worse, but because they ARE logged
  79.   now. With older versions, they only appeared on the screen and vanished
  80.   shortly afterwards, but they were NOT logged. So the logging of errors is a
  81.   feature, not a bug.
  82.  
  83. - You should run 80x50 video mode to get the most out of BT-XE - for terminal
  84.   mode and chatting this is almost a "must" ...
  85.  
  86.  
  87.  
  88.  
  89. Tip from Hauke Hagenhoff, 2:2453/470
  90. ====================================
  91.  
  92. COM.SYS:
  93.  
  94. When using the original serial-port-driver for OS/2, COM.SYS, you will need to
  95. configure the port using the MODE command for having BinkleyTerm work all
  96. right.
  97.  
  98. The following setting is recommended:
  99.  
  100. MODE COMx:yyyyy,N,8,1,,TO=ON,XON=OFF,IDSR=OFF,ODSR=OFF,OCTS=ON,
  101.      DTR=HS,RTS=HS,BUFFER=ON
  102.  
  103.  (you need to enter this as ONE line!)
  104.  
  105. Where x is the COMx:-port to set and yyyyy the desired port speed.
  106.  
  107. Most important are the IDSR and ODSR-settings, if they are wrong, BT won't work
  108. properly. BUFFER=ON is to switch the FIFO-buffer on.
  109.  
  110.  
  111.  
  112.  
  113. Tip from Steffen Motzer, 2:2471/1071.3
  114. =======================================
  115.  
  116. You can pass the com-port from Bink-XE/2 to a DOS-BBS without using SIO:
  117.  
  118.  - If your version uses the internal async module, then put 'shareport' in
  119.    binkley.cfg - otherwise use siocomm.dll or the patched maxcomm.dll .
  120.  
  121.  - Use a fossil-driver that opens the com-port in OPEN_SHARE_DENYNONE mode:
  122.  
  123.     - Virtual Fossil Driver (COM):
  124.         ftp://ftp.leo.org/pub/comp/os/os2/leo/drivers/com/vfd055b.zip
  125.  
  126.     - vcfos (ISDN):
  127.         ftp://ftp.cfos.com/pub/cfos/
  128.  
  129. The DOS-BBS will be able to share the com-port with Bink-XE/2
  130.  
  131. Recommended mode command for OS/2 version with internal async routines:
  132.  
  133.   MODE com%TASK%:38400,n,8,1,to=on,xon=off,octs=on,dtr=on,rts=hs,buffer=on
  134.  
  135. No 'siomode' in binkley.cfg.
  136.  
  137.  
  138.  
  139.  
  140. History
  141. =======
  142.  
  143. Attention: Please read this section completely and thoroughly or you will run
  144.            into problems!!!
  145.  
  146.  
  147.  
  148. BT 2.60XE/Gamma-XR1
  149. =-=-=-=-=-=-=-=-=-=
  150.  
  151. Bug fixes
  152. ---------
  153.  
  154. HR: No system crash at requests of PW-protected files without password.
  155.  
  156.  
  157. MMP: fixed: buffer for screen not flushed
  158.  
  159.   I don't think the distributed version of Binkley had this bug, as IBMC was
  160.   treated specially. But Watcom had the same problem as IBMC. The number of
  161.   minutes left is written to the screen through a file which is buffered. This
  162.   fucks up the display, if the buffer is not flushed because the other status
  163.   information was written directly to the display bypassing the buffer. Now the
  164.   buffer is flushed for both the IBMC and the Watcom versions.
  165.  
  166.  
  167. MMP: Fix for ISDN caller ID using ZyXEL 2864I
  168.  
  169.   When RING was seen and Binkley was about to send the answer string, it would
  170.   wait until the modem became silent for a fraction of a second. In this delay,
  171.   Binkley would read characters from the modem, and silently throw them away.
  172.   The caller ID on ISDN lines was lost in this way! This is fixed, and input
  173.   from modem in this period, is now logged as usual. Setting RingWait to 2,
  174.   would also have solved this particular problem, but there is no need to wait.
  175.  
  176.  
  177. MMP: Changed config file parser
  178.  
  179.   The parser used to identify keywords would recognize "CostLogThingy" as
  180.   "CostLog"; i.e. allowing the input word to be longer than the keyword. This
  181.   may sound okay, but it means that you cannot have two keywords where the
  182.   first is a prefix of the other. Also, you cannot define variables on the
  183.   command line where the name matches a keyword. This is changed now, and the
  184.   parser requires the words to be of equal length.
  185.  
  186.  
  187. MMP: Source code fixes important to Watcom C only
  188.  
  189.   1. Watcom C uses buffered output as IBMC does, and this caused problems with
  190.      display updates while transferring files in terminal mode. The real
  191.      problem is that buffered writes are mixed with unbuffered display output.
  192.      The work-around for the IBM compiler has been adopted for Watcom (flushing
  193.      buffers).
  194.  
  195.   2. The signal stuff used to handle Ctrl-C/Break didn't work with Watcom. This
  196.      seems to be a Watcom problem; signal(SIGBREAK,SIG_IGN) is broken. The
  197.      solution is to use signal(SIGBREAK,handler) instead, letting handler()
  198.      reinstall itself on SIGBREAK and do nothing else.
  199.  
  200.  
  201. TJW: Fixed Hydra buffer management bug
  202.  
  203.   This caused memory corruption in original BT 2.60 release. In OS/2 on my
  204.   system this bug showed as funny attributes on the upper "windows" of BT
  205.   screen. But the effects may have varied widely depending on compiler and
  206.   system ...
  207.  
  208.  
  209. TJW: Error message for "COM0?.SYS" changed to "COM.SYS"
  210.  
  211.  
  212. TJW: Wrong HPFS file timestamp used
  213.  
  214.   Fixed bug caused by using wrong HPFS file timestamp in SCD/EVT and file
  215.   update request handling. Now, the "last file modification" timestamp is used.
  216.   Before, "last file access" timestamp was used - which was definitely WRONG
  217.   for HPFS. This caused problems on HPFS only, because FAT file system does not
  218.   have multiple different file timestamps like HPFS (file creation, last file
  219.   access, last file modification).
  220.  
  221.  
  222. TJW: Zoomed outbound view "Age" bug fixed
  223.  
  224.   Weird ages of some thousand days were displayed - fixed!
  225.  
  226.  
  227. TJW: Fixed cosmetical problem with password failure msg
  228.  
  229.   "Trash" at end of PW: "His='', Ours='XXXXXXXX<trash>'
  230.  
  231.  
  232. TJW: FREQ response packet fixes:
  233.  
  234.   - time string had incorrect printf format
  235.   - time string had incorrect FTS format (should be 2 blanks in the mid!)
  236.   - put in session password into freq response packet as packet password (well,
  237.     this isn't correct in every case, but better than no password at all).
  238.   - put in destination NODE address, too. This was forgotten ...
  239.  
  240.  
  241.  
  242. New features
  243. ------------
  244.  
  245. CE: AKAs
  246.  
  247.   Maximum number of AKAs raised from original 25 to BT-XE value of 100 AKAs.
  248.  
  249.  
  250. CE: New function "ConditionalPoll"
  251.  
  252.   Multi-AKA and boolean operation support implemented by Thomas Waldmann.
  253.  
  254.   ConditionalPoll (also known as "FreePoll" from Arjen G. Lentz, who invented
  255.   this in his mailer XENIA) allows an Uplink (you) to reject a call from a
  256.   Downlink, if there is less mail for him than the configured minimum.
  257.  
  258.   The syntax for this keyword:
  259.  
  260.     ConditionalPoll { and | or } <aka> <minsize> <maxdeltatime> [<callerid>]
  261.  
  262.   This function will only work with ISDN or a modem that reports the caller ID.
  263.   You'll also need to configure ModemCID (to tell Binkley where to find the
  264.   caller ID) and CallerID for each AKA you specify (to tell Binkley the node's
  265.   caller ID) (see below). Alternativly you can also add the number as the last
  266.   parameter in ConditionalPoll. If you need more than one CallerID for one
  267.   node, DO NOT use multiple ConditionalPoll keywords but multiple CallerID
  268.   keywords.
  269.  
  270.   You can list as many ConditionalPoll entries as fit into memory.
  271.  
  272.   How it does work: the downlink will call you, Binkley gets the caller-ID (eg.
  273.   "57313340"), searches ALL ConditionalPoll entries for matching addresses and
  274.   checks if the condition (minimum outbound size for this AKA) says "reject
  275.   call" or "accept call" for each AKA.
  276.  
  277.   The exact condition is: if outbound size <= <minsize> * 1024 then reject.
  278.   <minsize> = 0 rejects a call only if there is really NOTHING (0 bytes) on
  279.   hold.
  280.  
  281.   Each result (accept=TRUE or accept=FALSE) is evaluated (together with the
  282.   result of previous calculation for this number) with the according boolean
  283.   operation "AND" or "OR" to calculate the total result.
  284.  
  285.   The boolean operation listed with the first configured ConditionalPoll entry
  286.   matching a specific number does not care, you can use "or" or "and" - it
  287.   makes no difference.
  288.  
  289.   If total result is TRUE, call will be accepted. If total result is FALSE,
  290.   call will be rejected.
  291.  
  292.   To reject a call Binkley sends the string configured with "Reject" to the
  293.   modem. To accept a call, Binkley sends the answer string (normal behaviour).
  294.  
  295.   For downlinks who want to make a file request or send an important crash mail
  296.   immediately, Binkley builds a zero byte size file in the outbound called
  297.   "*.TRX" for each user. If the downlink gets a "call reject", he/she can call
  298.   again within MaxDeltaT seconds and the call will be handled normally.
  299.  
  300.   To configure the function use:
  301.  
  302.   Accept call of 2:2474/405 if size for 2:2474/405>=100KB or 2nd call within 30
  303.   seconds:
  304.  
  305.                     Or/And AKA [3..5D]  MinSize[KB]  MaxDeltaT[s]
  306.   ConditionalPoll   Or     2:2474/405   100          30
  307.  
  308.   Accept call of 2:2474/405 if (size for 2:2474/403>=20KB or 2nd call within 30
  309.   seconds) *AND* (size for 21:492/4003 >= 10KB or 2nd call within 20s):
  310.  
  311.                     Or/And AKA [3..5D]  MinSize[KB]  MaxDeltaT[s]
  312.   ConditionalPoll   Or     2:2474/403    20          30
  313.   ConditionalPoll   And    21:492/4003   10          20
  314.  
  315.   Accept call of 2:2474/403 if (size for 2:2474/403>=100KB or 2nd call within
  316.   30 seconds) *OR* (size for 21:492/4003 >= 50KB or 2nd call within 20s):
  317.  
  318.                     Or/And AKA [3..5D]  MinSize[KB]  MaxDeltaT[s]
  319.   ConditionalPoll   Or     2:2474/403   100          30
  320.   ConditionalPoll   Or     21:492/4003   50          20
  321.  
  322.   To reject a call, define once:
  323.  
  324.         Reject <Modem command string|>
  325.  
  326.   For a ZyXEL Elite 2864I use:
  327.  
  328.         Reject ATH1|ATH0|
  329.  
  330.   For ELINK 310 use:
  331.  
  332.         Reject AT\\K|
  333.         ATS21.2=    (shows caller number after RING - tested with EPROM 1.36)
  334.  
  335.   For ELINK 301 use:
  336.  
  337.         Reject AT\\K|     (since EPROM version 2.20 of 11.5.94)
  338.         AT\O5            (show caller number after RING, since v2.12)
  339.  
  340.   Restriction for ELINKs: until a ROM is released which supports a "Call
  341.   rejected" response code, you will only be able to reject incoming calls, but
  342.   not to treat being rejected yourself (you will just receive "NO CARRIER" if
  343.   you are rejected). You may configure a very LOW MaxDeltaT value to handle
  344.   this (not nice, but possible) - see also binkley event file A= parameter. But
  345.   your links should be aware that they will flag you undialable if they dial
  346.   too often without getting a connection.
  347.  
  348.  
  349. CE: New keyword "ModemReject" to identify a rejection response from the modem.
  350. CE: New keyword "AfterCallOut" to send an AT???-command to get a cause value
  351.     from ISDN adapters like ZyXEL 2864I.
  352.  
  353.   There are two different ways to see if a call is rejected:
  354.    1) The ISDN adapter sends "Busy/Cause=34Be" in one line.
  355.    2) You send an AT??? command and get an answer like "Cause = Call reject".
  356.  
  357.   For 1) you need only "ModemReject <Rejectstring>", for 2) you need the
  358.   Rejectstring and "AfterCallOut <Lines> <AT command>".
  359.  
  360.   AfterCallOut needs a number of lines (of output caused by AT command) and an
  361.   AT command which leads to a report with the cause value.
  362.  
  363.   After a rejected outbound call, all mail to this AKA will change to NORMAL
  364.   flavour. Now you have an easy way to ping your Uplink, if he knows the
  365.   feature of Freepoll<tm>/ConditionalPoll.
  366.  
  367.   ModemReject will only work with automatic call not with manual calls!
  368.  
  369.   For ZyXEL 2864I i use "AfterCallOut 9 ATI3|" and "ModemReject Call reject".
  370.   For CFOS you need only "ModemReject /Cause=34Be". For ELINK, there is no such
  371.   possibility until now.
  372.  
  373.  
  374. MT: New config verb "ReInitTime"
  375.  
  376.   This lets you specify the time between modem initializations.
  377.  
  378.   ReInitTime 10 -> init the modem every 10 minutes. Valid range for this
  379.   setting is 1 .. 10 only.
  380.  
  381.   If you specify 0, you will get 1 minute. If you specify >10, you will get 10
  382.   minutes. This is due to a restriction in BT's timer routine and may be
  383.   removed in a later version of BT-XE.
  384.  
  385.  
  386. MT: New config verb "ReadHoldTime"
  387.  
  388.   This lets you specify the time between automatic outbound rescans.
  389.   ReadHoldTime 10 -> rescan outbound 10 minutes. Valid range is 1...
  390.  
  391.  
  392. CEH: New config verb "ReadFlagTime"
  393.  
  394.   This lets you change the minimal time between scans for the flags
  395.   forcexit, btexit, btfreeze and btrescan in seconds.
  396.   (ranging from 1...)
  397.  
  398. MT: Support for external request processors (ERPs) with SRIF
  399.  
  400.   To use this, specify in Binkley.Cfg:
  401.  
  402.     SRIF e:\maxfrq\maxfreq $s
  403.  
  404.   The $s parameter will be replaced by the SRIF filename by BT-XE. The SRIF
  405.   file will be called "SRIF.Txx", xx=TaskNumber in Hex.
  406.  
  407.   Known limitations:
  408.  
  409.   The external SRIF erp is only invoked in an EMSI/WaZOO session. Also when
  410.   JANUS is used, the SRIF ERP is not invoked.
  411.  
  412.   The generated SRIF is compatible with the SRIF 1.02 Standard. But not all of
  413.   the optional statements are included.
  414.  
  415.  
  416. HR: New config verb "ShowAlive"
  417.  
  418.   Generates a file I_ALIVE.xx (xx=Tasknumber) in the "Flags" directory. If the
  419.   file exists, nothing is done except checking it for existance. If it does not
  420.   exist, it will be created by BT-XE.
  421.  
  422.   Check for existance is done each minute. So external programs can check if
  423.   BT-XE is alive by deleting this flag file and waiting if it is re-created in
  424.   a minute. If BT-XE terminates, it deletes the flag file itself.
  425.  
  426.  
  427. HR: Enhanced user dialogue with Alt-G (get file[s])
  428.  
  429.   BT-XE will show destination system name after you entered dest address.
  430.  
  431.  
  432. HR: Enhanced user dialogue with Alt-S (send file[s])
  433.  
  434.   BT-XE will show destination system name after you entered dest address. If
  435.   you enter a wildcard filename, it will use the first matching file. If no
  436.   (matching) file is found, Alt-S remains in filename input mode and you can
  437.   try again. No unrecognized typos any longer!
  438.  
  439.   With Win32 version of BT-XE, "\" works with german Windows NT, too.
  440.  
  441.  
  442. HR: Enhanced user dialogue with Alt-S/Alt-G
  443.  
  444.   After asking "More requests"/"More sends", the same address is used again if
  445.   you answer "y". To specify a new address, enter "o" for (o)ther node.
  446.  
  447.  
  448. HR: Enhanced user dialogue with Alt-S (send file[s])
  449.  
  450.   Support filename expansion like 4OS2/4DOS using TAB for expansion.
  451.  
  452.   Example: type on my machine: c:\d<TAB>\bi<TAB>\HR<TAB><TAB>
  453.             get on my machine: c:\dowork\binkley\HR0418021.DOC
  454.  
  455.  
  456. MMP: Implemented support for environment variables
  457.  
  458.   If a sequence of letters, digits, and underscores are enclosed between %'s,
  459.   it is no longer handled as a comment, but as an environment variable.
  460.  
  461.   Otherwise, % is still handled as a comment. Also, the configuration file
  462.   parser now allows configuration verbs to be indented. (TJW had implemented
  463.   support for environment variables, too).
  464.  
  465.  
  466. MMP: Conditional inclusion of lines based on the task number
  467.  
  468.   If a line begins with a decimal number, it is compared with the task number
  469.   as set by the TASK environment variable (e.g. TASK=n on command line). This
  470.   somehow offers the same functionality as [Common] and [Task n], but is
  471.   simpler to use for single line differences.
  472.  
  473.   Example: 1 Init  |AT&FZ|
  474.            3 Init  ATZ|~~ATH0S27=17|
  475.  
  476.  
  477. MMP: Added new keyword "PutEnv"
  478.  
  479.   If this is used, there string following it is put into the environment.
  480.   Variables set in this way will be visible to Binkley itself, and by programs
  481.   spawned by it; e.g. SPAWNBBS.CMD.
  482.  
  483.   Example: PutEnv          BBSHOME=f:\bbs
  484.            PutEnv          PATH=%BBSHOME%;%BBSHOME%\bin;%PATH%
  485.            StatusLog       %BBSHOME%\bt\bt%TASK%.log
  486.            CostLog         %BBSHOME%\bt\costlog%TASK%.log
  487.  
  488.  
  489. MMP: "SpawnInit" keyword
  490.  
  491.   This keyword specifies a command that should be executed as part of the
  492.   first-time initialization.
  493.  
  494.   Example: SpawnInit su %PORT% lock %BAUD%
  495.  
  496.   The command is executed only once, in the moment when the command is
  497.   encountered in the configuration file. Binkley does not even store the
  498.   command in memory. This keyword can save you for a batchfile, and can use
  499.   environment variables set in the configuration file.
  500.  
  501.   You may use multiple SpawnInit commands to start multiple commands.
  502.  
  503.   Attention: Do *NOT* use SpawnInit to directly run processes which stay
  504.              resident - this can cause file handle inheritance problems.
  505.              See also options of OS/2's "start" command.
  506.  
  507.  
  508. MMP: "MailFlag" keyword
  509.  
  510.   If this is specified in the configuration file (no arguments), and "Flags" is
  511.   also specified, Binkley will create a file called "BTMAIL.IN" in the flags
  512.   directory when mail has been received.
  513.  
  514.  
  515. MMP: "TimeSync" keyword
  516.  
  517.   Followed by an address and a MaxDeltaTSeconds value, it specifies that the
  518.   clock should be set to after an EMSI session (without password error) with
  519.   the node specified (using TRX) - if the time difference is not more than
  520.   MaxDeltaTSeconds seconds.
  521.  
  522.   Example: TimeSync 2:238/28 60
  523.  
  524.   So time will get synced to time of 2:238/28, but only if difference is within
  525.   60 seconds to our own time.
  526.  
  527.   Tip: setting MaxDeltaTSeconds to e.g. 3700 (more than 1 hour) lets you do
  528.        summer / winter time zone switching automatically.
  529.  
  530.  
  531. MMP: "LocalLog" keyword
  532.  
  533.   If this keyword is specified (no arguments), Binkley will write its log
  534.   information (both the normal log, and the cost log) to a log file in the same
  535.   directory as BINKLEY.Dxx etc. When Binkley exits, and at the end of a
  536.   session, Binkley will move the contents of the local file to the file
  537.   specified in the configuration file, but only if it is able to. The log file
  538.   specified in the configuration file will no longer be continiously opened by
  539.   Binkley, and can safely be accessed by other programs. If Binkley is not able
  540.   to write to the specified log file, the log entries just stays put in the
  541.   local file until Binkley is able to move it. The local log files are called
  542.   (xx is the task number):
  543.  
  544.          BINKLEY.Cxx     (Local Cost Log)
  545.          BINKLEY.Lxx     (Local Status Log)
  546.  
  547.  
  548. MMP: "Respawn" command line argument
  549.  
  550.   If this is specified, Binkley is automatically respawned in the unexpected
  551.   event that Binkley would trap (memory access violations etc). This wan't work
  552.   on DOS, but does under OS/2, and may work with other real operating systems
  553.   too.
  554.  
  555.   The way this is accomplished is quite simple: We now have two processes
  556.   running for each Binkley. The first Binkley process spawns the other, the
  557.   normal Binkley, and monitors if it exits regularly. If so, the first Binkley
  558.   terminates itself with the errorlevel of the second Binkley. If not, it just
  559.   respawns the second Binkley.
  560.  
  561.   The mechanism requires that the environment variable _BINKLEY_EXIT_ is _NOT_
  562.   set when Binkley is initially started. Binkley checks if this variable is
  563.   set, and if so, assumes it is the second (normal) Binkley. If it is not set,
  564.   Binkley will set it itself, and spawn the second Binkley. _BINKLEY_EXIT_ is
  565.   set to the filename BINKxxxx.XIT, where xxxx is the first Binkley's process
  566.   ID. The second Binkley creates this file on a normal exit, and the first
  567.   Binkley checks if it can delete it. If not, it didn't exist, and the normal
  568.   Binkley must have died irregularly.
  569.  
  570.  
  571. MMP: Environment variables on command line
  572.  
  573.   Implemented TW's idea of setting environment variables on the command line.
  574.   If an argument contains a '=', it is put into the environment.
  575.  
  576.   Example: bt32 TASK=3
  577.  
  578.   Remark of TW: The TASK=n argument on BT32.EXE command line is a MUST HAVE in
  579.                 this version of BT-XE ! Don't use TaskNumber in Binkley.Cfg!
  580.                 You MUST change your BAT / CMD files !!!
  581.  
  582.  
  583. MMP: Built the language file into the EXE file
  584.  
  585.   If there is no language file, Binkley now reads the language file from the
  586.   EXE itself. The language is simply appended to the EXE followed by the file
  587.   size (two bytes). BTLNG now can do this.
  588.  
  589.   Example: btlng32 patch bt32.exe binkley.lng
  590.  
  591.   Attention: You should NOT use an old *.LNG file nor an *.LNG file at all if
  592.              you want to have standard (english) messages - they are built-in
  593.              in the EXE now!
  594.  
  595.  
  596. MMP: "ShortCostLog" keyword
  597.  
  598.   Binkley's costlog contains a log of useful information that easier to monitor
  599.   than the status log. However, this log is ment for human reading, and not
  600.   very easily handled with utilities like grep, awk, (REXX?) etc. So i have
  601.   invented a ShortCostLog keyword. If it is used, the CostLog will be written
  602.   in another format. The argument to ShortCostLog is a format string specifying
  603.   this format. The format string can contain literal characters and macros. A
  604.   macro is prefixed with '$', followed by an optional length, and ended with a
  605.   character specifying what kind of information to write. If the optional
  606.   length begins with '0', the information is zero-padded; otherwise it is
  607.   space-padded. The following macros are defined:
  608.  
  609.          $#          TaskNumber
  610.          $$          The $ character
  611.          $<          Newline
  612.          $A          Node address
  613.          $B          Baud rate
  614.          $C          Size of biggest file sent or received
  615.          $D          Seconds used to transmit biggest file ($C)
  616.          $E          Total number of errors
  617.          $H          Hour
  618.          $I          Number of inbound files
  619.          $J          CPS of inbound files
  620.          $M          Minute
  621.          $O          Number of outbound files
  622.          $P          CPS of outbound files
  623.          $S          Second
  624.          $T          Total number of files
  625.          $U          Total CPS
  626.          $V          Size of biggest file received
  627.          $W          Seconds used to receive biggest file ($V)
  628.          $X          CPS of biggest file received ($V)
  629.          $Y          CPS of biggest file send or received ($C)
  630.          $b          Abbreviated month
  631.          $c          Cost
  632.          $d          Day of month
  633.          $f          Number of errors when receiving files
  634.          $g          Number of errors when transmitting files
  635.          $i          Size of inbound files
  636.          $j          Efficiency of inbound files
  637.          $m          Month
  638.          $o          Size of outbound files
  639.          $p          Efficiency of outbound files
  640.          $s          Seconds of session
  641.          $t          Total size of files
  642.          $u          Total efficiency
  643.          $v          Size of biggest file sent
  644.          $w          Seconds used to send biggest file ($v)
  645.          $x          CPS of biggest file sent ($v)
  646.          $y          Year without century
  647.  
  648.   The format string can be left out in which case it defaults to:
  649.  
  650.    $02y$02m$02d $02H$02M$02S $# $14A  $6B  $4s $4c $8i $8o $8C $4Y
  651.  
  652.   Which produces log entries like: (removed unnecasary spaces)
  653.  
  654.                                                             Biggest file
  655.    Date   Time   Task     Node Connect Sec Cost   In    Out   -size -cps
  656.    960328 132222 1     2:238/9  28800   29    0 6036   9903    9896 3298
  657.    960328 132539 1    2:238/54  28800  105    0    0 230517  223554 3287
  658.  
  659.   You can also use ShortCostLog to produce comma separated files which can be
  660.   imported directly into a spreadsheet or a database.
  661.  
  662.  
  663. TJW: OS/2 only: Activated priority control
  664.  
  665.   The originally released EXE didn't control priority, but worked EVER at
  666.   priority Normal/0. This is too low, if you have other "heavy" processes
  667.   running on your system. ISDN transfer rates dropped to below 5000 CPS in such
  668.   cases (normal: 7000..7800 CPS) on my system (P133,32MB).
  669.  
  670.   I set the appropriate compiler switch and re-activated the priority control.
  671.   Also, I enhanced priority control via environment variables.
  672.  
  673.   You may now influence priorities using these environment variables:
  674.  
  675.   This is the default:                 This is as without priority control:
  676.     SET REGULARPRIORITY=R31              SET REGULARPRIORITY=R0
  677.     SET MODEMPRIORITY=F15                SET MODEMPRIORITY=R0
  678.     SET JANUSPRIORITY=F31                SET JANUSPRIORITY=R0
  679.     SET HYDRAPRIORITY=F31                SET HYDRAPRIORITY=R0
  680.  
  681.   Syntax: ...PRIORITY=<class>[delta]
  682.  
  683.     class:  R = Regular (2)
  684.             F = Foregroundserver (4)
  685.             T = TimeCritical (3)
  686.  
  687.     delta:  0 = normal
  688.            ..
  689.            31 = high (default, if not specified)
  690.  
  691.   Do experiments with these values! The defaults needn't to be the best values
  692.   for YOUR system and high priority needn't be better than low priority.
  693.  
  694.  
  695. TJW: The BINKLEY.DAY and .SCD are renamed to BINKLEY.Dxx and .Sxx
  696.      (xx=TaskNumber).
  697.  
  698.  
  699. TJW: Multiline configuration via single Binkley.Cfg and Binkley.Evt files!
  700.  
  701.   [Common] and [Task x] in single Binkley.Cfg / .Evt make multiline operation
  702.   possible with one single Cfg and one single Evt file.
  703.  
  704.   You needn't use this nice feature if you don't want to. Operation should be
  705.   possible with the same config / event files as in orig. BT 2.60 release
  706.   without usage of these "sections", because the implicit default section at
  707.   top of each config file read (or included) is "[Common]".
  708.  
  709.   BUT: you MUST use TASK=n commandline argument in ANY case.
  710.  
  711.   [Common]
  712.   ; settings in this section are read by all tasks.
  713.   ; ...
  714.   [Task 1]
  715.   ; settings in this section are read by Task 1 only.
  716.   ; all other tasks ignore these settings like if they were "blind" ...
  717.   [Task 2]
  718.   ; settings in this section are read by Task 2 only.
  719.   ; all other tasks ignore these settings like if they were "blind" ...
  720.   [Common]
  721.   ; settings in this section are read by all tasks.
  722.   ; ...
  723.  
  724.   If you specify a setting first in [Common] and afterwards the same setting in
  725.   [Task x] (or vice versa), behaviour of BT-XE in Task x is the same as if you
  726.   specified these settings twice in this order using original BT 2.60.
  727.  
  728.   If you include another config file using "Include" statement, state (read
  729.   settings or not) is treated locally to each file and restored after return
  730.   from reading that file.
  731.  
  732.   E.g.:
  733.   [Common]
  734.   ; settings here are common for all tasks
  735.   Include Task1.Cfg         <- may have [Task x] and [Common] sections, too.
  736.   ; settings here are common for all tasks, regardless of Task1.Cfg contents.
  737.  
  738.  
  739. TJW: Using TaskNumber for BBS/EXT exits
  740.  
  741.   This is now handled like in Binkley 2.60 release (again). Review your CMD /
  742.   BAT files if you used former BT-XE versions !!!
  743.  
  744.   BBS exits:
  745.   %1      %2          %3        %4             %5
  746.   DTErate ConnectRate COMhandle Time2NextEvent Modem-String
  747.  
  748.   EXT exits:
  749.   %1      %2          %3        %4             %5 %6
  750.   DTErate ConnectRate COMhandle Time2NextEvent n  Modem-String
  751.  
  752.   This is NORMAL Binkley parameter layout again (no additional parameter as in
  753.   former betas of BT-XE). If you need the TaskNumber in this context, just get
  754.   it out of %TASK% environment variable (which is defined by BT-XE if you
  755.   invoke it with BT32.EXE TASK=n).
  756.  
  757.  
  758. TJW: "Hydra1st" config verb
  759.  
  760.   Behaviour without Hydra1st: Standard - like until now. If a caller says to be
  761.                               able to do Janus, he will get Janus protocol -
  762.                               even if he could also do Hydra.
  763.  
  764.   Behaviour with Hydra1st:    Hydra is preferred. If a caller says to be able
  765.                               to do Hydra, he will get Hydra protocol - even if
  766.                               he could also do Janus.
  767.  
  768.  
  769. TJW: Enhanced Screen Layout / Colours:
  770.  
  771.   - Extended colour settings (like BT-EE now! ;-) There are 2 more colours
  772.     (configured after the normal 2.60 colours) now for windows frame title text
  773.     and frame colour. See sample configs ...
  774.   - TaskNumber in top left corner
  775.   - Port and Baud switched position
  776.   - broader Recent Activity and Hold Window
  777.   - with mail "Age" display in Hold Window
  778.   - one screen row more than before (there are 25, not 24). Therefore one row
  779.     more in Recent Activity window.
  780.  
  781.  
  782. TJW: Implemented "MakeDir" config verb
  783.  
  784.   This creates outbound directories needed for BSY flags. Also, it removes
  785.   empty outbound directories.
  786.  
  787.  
  788. TJW: RecentyActivity-Buffer is saved to and restored from disk file
  789.      Binkley.Axx.
  790.  
  791.  
  792.  
  793.  
  794. BT 2.60XE/Gamma-XR2  (9606132330)
  795. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  796.  
  797. Bug fixes
  798. ---------
  799.  
  800. ???: Fixed cosmetical problem with Elapsed: xx:yy:zz
  801.  
  802.   A trailing blank overwrote the window frame
  803.  
  804.  
  805. ???: Fixed cosmetical problems with Zoomed Outbound view
  806.  
  807.   EE colours and headline
  808.  
  809.  
  810. ???: Fixed SRIF extension (wrong) .Txx to (correct) .xx (xx=TaskNo/Hex)
  811.  
  812.  
  813. ???: Fixed cursor position when shelling or entering terminal mode
  814.  
  815.  
  816. ???: Added Hydra key to "native_protocols".
  817.  
  818.   Until now, you were not able to select Hydra in terminal mode ...
  819.  
  820.  
  821. ???: Fixed "main outbound removal" bug when using "MakeDir".
  822.  
  823.   If there is an outbound without "." in its filename then just let it be -
  824.   even if it's empty.
  825.  
  826.  
  827. ???: Fixed ShortCostLog $m
  828.  
  829.  
  830. ???: Fixed cursor positioning to end of screen
  831.  
  832.  
  833. ???: Fixed saving of recent activity window
  834.  
  835.   It is now saved on all exits, not only on Alt-X exit
  836.  
  837.  
  838. TJW: fixed >2GB bug
  839.  
  840.   Changed free space limitation from 2GB to 128GB (please test this! ;-)
  841.  
  842.  
  843. TE/TJW: Fixed % character
  844.  
  845.   Usage of % character in modem commands is now possible (see below).
  846.  
  847.  
  848. ???: OS/2 only: Priorities
  849.  
  850.   Assured that answering and in/outbound sessions run at MODEMPRIORITY With
  851.   ZedZap, session were running at REGULARPRIORITY until yet. Now, session run
  852.   at least with MODEMPRIORITY (or with JANUS/HYDRAPRIORITY).
  853.  
  854.  
  855. ???: Bugfixes to SRIF
  856.  
  857.   SRIF now (finally!?) correctly states which system is listed and which is
  858.   protected.
  859.  
  860.  
  861. ???: Bugfixes to FreePoll
  862.  
  863.  
  864. ???: Fixes for dialtry's bug while using FreePoll
  865.  
  866.  
  867. TJW: Fixed *.REQ bug
  868.  
  869.   If a session was aborted, *.Rxx files kept lying around and the next caller
  870.   got all the stuff he did not want. Especially long distance links were quite
  871.   unhappy with that, if the requested stuff was large.
  872.  
  873.   Now BT-XE deletes the <inbound>\<address>.R<task> request files for ALL your
  874.   own addresses at the end of the session.
  875.  
  876.  
  877. ???: Removed additional newline in Binkley.Log after SPAWN and ext. protocols.
  878.  
  879.   Additional newline is only printed at start of BT. This was maybe only the
  880.   case in some internal betas ...
  881.  
  882.  
  883. ???: Fixed bug that TimeSync was not executed if mail was received.
  884.  
  885.   Moved call for TimeSync direct to end of session. Mail exits etc. will be
  886.   done *after* TimeSync now.
  887.  
  888.  
  889. ???: Fixed SRIF response file naming (correct e.g.: outbound.zzz\NNNNnnnn.QLO)
  890.  
  891.   Should work together with function request programs now.
  892.  
  893.  
  894. ???: Fixed SRIF session data in Yoohoo / FTSC sessions
  895.  
  896.   If you had a EMSI session and after that a Yoohoo session with a SRIF freq,
  897.   wrong data was put in the response packet (Sysop name, site, mailer).
  898.  
  899.  
  900. ???: Fixed some bugs in ShortCostLog output routine
  901.  
  902.  
  903. TJW: fixed "NoPickup" bug
  904.  
  905.   If you had NoPickup in your config and called a remote system using Bink 2.60
  906.   (XE or original, doesn't matter) to send some stuff, the remote Binkley
  907.   terminated the session immediately without even receiving your stuff.
  908.  
  909.  
  910.  
  911. New features
  912. ------------
  913.  
  914. ???: Enhanced CPS log entries (with lower .. upper CPS rate for each xfer)
  915.  
  916.  
  917. ???: Debug messages for creating / removing outbound directories
  918.  
  919.  
  920. ???: Added "Rescanning" status msg while outbound rescans
  921.  
  922.  
  923. ???: Source code: replaced all TABs by SPACEs for easier DIFF/RCS/CVS handling
  924.  
  925.  
  926. ???: Changed hydra crc table allocations from dynamic to STATIC
  927.  
  928.  
  929. ???: Wrong config verbs
  930.  
  931.   Added delay if wrong config verbs are read, also added filename and line
  932.   number to error message.
  933.  
  934.  
  935. ???: SRIF
  936.  
  937.   The SRIF file now also contains a "Password SECRET" (if SECRET is the actual
  938.   PW in protected sessions) line. This line is only present on PW protected
  939.   sessions.
  940.  
  941.  
  942. ???: Log files
  943.  
  944.   The logs are closed when spawning to allow other programs to include their
  945.   logs in the main log.
  946.  
  947.  
  948. TE: Support for a PROBOARD fileindex
  949.  
  950.   Rather than scanning your whole hard disk for each file request, information
  951.   can now be taken directly from your Proboard configuration, so that a) you
  952.   don't have to set up a huge OKFile and b) file request is accelerated
  953.   considerably, allowing for filerequest from CDROM. Perform the following
  954.   steps to set up Proboard support (this works much like the configuration of a
  955.   Maximus fileindex):
  956.  
  957.   Add the following lines to your Binkley.Cfg:
  958.  
  959.     PBAreas <Proboard Fileareaconfig>
  960.  
  961.       The Proboard Filearea configuration file is usually named "FILECFG.PRO"
  962.       and located in your Proboard system directory.
  963.  
  964.       Example: PBAreas e:\mailer\pb\filecfg.pro
  965.  
  966.     FileSec <level>
  967.     KnownSec <level>
  968.     ProtSec <level>
  969.  
  970.       In Proboard, you use "levels" (numbers from 1 to 255) to set up which
  971.       users are allowed to access which files. In BinkleyTerm, calling systems
  972.       area classified as unknown (->FileSec), listed in your Nodelists
  973.       (->Knownsec), and those with a session password (->ProtSec). Here you can
  974.       set up the correspondence between the two security mechanisms. If you,
  975.       e.g., enter KnownSec 30, then every system which is listed in your
  976.       nodelist may freq from file areas with a security level of 30 or below.
  977.       You should always have a FileSec statement, while the two others are
  978.       optional.
  979.  
  980.     OKFile <okfile>
  981.  
  982.       You normally already have this statement, where <okfile> is the path and
  983.       name of a text file containing your magics and filearea paths.
  984.  
  985.   Now edit your OK-File. Leave the magics there, but remove all normal
  986.   pathnames. Instead, enter the following line:
  987.  
  988.     *<Proboard Fileindex>
  989.  
  990.       The Proboard file index is usually named FILESIDX.PB and located in your
  991.       Proboard system directory.
  992.  
  993.     Example for a OK-File with PB-support:
  994.  
  995.       @FILES    e:\mailer\filebase\filelist\ALLFILES.ZIP
  996.       @UNISCHED e:\mailer\filebase\fidosoft\UNISWB05.LZH
  997.       @NODELIST e:\mailer\nodelist\nodelist.lzh
  998.       *e:\mailer\pb\filesidx.pb
  999.  
  1000.   Please note that you must not use MaxAreas and PBAreas at the same time! Only
  1001.   one of these keywords should occur in your Binkey.Cfg. - Also note that you
  1002.   should run PBUTIL FI at least once a day in order to keep your fileindex up
  1003.   to date.
  1004.  
  1005.   As the Proboard fileindex is not fully documented, this feature is
  1006.   experimental. I have tested this with PB 2.12 and PB 2.15. If you have
  1007.   problems with future Proboard releases, please contact me via netmail.
  1008.  
  1009.  
  1010. TJW: Loglevels
  1011.  
  1012.   Negative LogLevels do the same as positive ones, but only log to disk if
  1013.   Carrier detect is true.
  1014.  
  1015.  
  1016. TE/TJW: Changed config file parser (; and % character treatment)
  1017.  
  1018.   '%' has a VERY ambiguous semantics:
  1019.  
  1020.     - It can prefix a "rest of line"-comment (if it is at 1st non-white-space
  1021.       column position in the config line).
  1022.     - It can designate the start/end of an environment variable reference.
  1023.     - It can be used simply as "%" character.
  1024.  
  1025.     We resolve this the following way:
  1026.  
  1027.     1. If first non-white-space char, it is a comment.
  1028.        e.g.: "%comment" or "     %comment"
  1029.  
  1030.     2. If there are some characters between 2 percent signs try to evaluate an
  1031.        environment variable of this name.
  1032.        e.g.: "%TASK%" or "%task%" or "%What_Ever!%%What_Else?"
  1033.  
  1034.        If there are no characters between two "%" ( = "%%"), use it as a single
  1035.        "%" character.
  1036.        e.g.: "Init AT%%B%%C %%D" -> "Init AT%B%C %D"
  1037.  
  1038.        If the environment variable is not defined, just copy the name of it.
  1039.        e.g.: there is not variable "NOTDEF" defined. "%NOTDEF%" -> "NOTDEF"
  1040.  
  1041.     4. If there is only a single "%" in the whole line, also use it as a single
  1042.        "%" character.
  1043.        e.g.: "Init AT %B" (no other % in this line) -> "Init AT %B"
  1044.  
  1045.     BTW: %WHATEVER%%TASK% - this is valid and interpreted correctly
  1046.          1        2A    B               (two environment variables).
  1047.  
  1048.          This is no problem with the %% at pos 2 and pos A - because first
  1049.          %WHATEVER% is evaluated (and consumes both % at pos 1 and pos 2).
  1050.          Afterwards, %TASK% is evaluated ...
  1051.  
  1052.   ';' is a bit WEIRD, too:
  1053.  
  1054.     It can be a "rest-of-line"-comment or a literal character.
  1055.  
  1056.     We resolve this the following way:
  1057.  
  1058.     1. If first non-white-space char, it is a comment.
  1059.        e.g.: ";comment" or "    ;comment"
  1060.  
  1061.     2. If there is a sequence "<white space>;;", then don't begin a comment,
  1062.        but just read it as "<white space>;".
  1063.        e.g.: "AT ;;XY" -> "AT ;XY"
  1064.  
  1065.     3. If there is a sequence "<white space>;" (and no ";" following), it is a
  1066.        comment.
  1067.        e.g.: "Init ATZ|      ; init the modem"
  1068.  
  1069.     4. In any other case, just read it as ";" - no comment.
  1070.        e.g.: "AT;XY" -> "AT;XY"
  1071.  
  1072.  
  1073. CEH: Added '#' as comment-starting character (only if it is the first
  1074.      non-whitespace character).
  1075.  
  1076.  
  1077. TE: Workaround a problem when scrolling the Recent Activity window
  1078.  
  1079.   The appropriate keystroke combinations Ctrl+UpArrow, Ctrl+DownArrow are
  1080.   nonstandard and do not work in some DOS environments. You may now
  1081.   alternatively use Ctrl+RightArrow and Ctrl+LeftArrow (which should work
  1082.   everywhere).
  1083.  
  1084.   Note:  If Scrolling continues refusing to work, increase the size of the
  1085.   -----  backscroll buffer by using "RecentActivityLines 300". This should
  1086.          only be a problem in the DOS version.
  1087.  
  1088.  
  1089. TJW: OS/2 only: Priorities
  1090.  
  1091.   Lowered default JANUSPRIORITY and HYDRAPRIORITY values to F31 (was T31 yet)
  1092.   and default MODEMPRIORITY to F15 (was F31 yet). Added possibility to set Idle
  1093.   priority (be careful with setting prio to low).
  1094.  
  1095.   You may influence priorities using these environment variables:
  1096.  
  1097.   This is the default:                 This is as without priority control:
  1098.     SET REGULARPRIORITY=R31              SET REGULARPRIORITY=R0
  1099.     SET MODEMPRIORITY=F15                SET MODEMPRIORITY=R0
  1100.     SET JANUSPRIORITY=F31                SET JANUSPRIORITY=R0
  1101.     SET HYDRAPRIORITY=F31                SET HYDRAPRIORITY=R0
  1102.  
  1103.   Syntax: ...PRIORITY=<class>[delta]
  1104.     class:
  1105.       I = Idle (1)
  1106.       R = Regular (2)
  1107.       F = Foregroundserver (4)
  1108.       T = TimeCritical (3)
  1109.     delta:
  1110.       0 = normal
  1111.      ..
  1112.      31 = high (default, if not specified)
  1113.  
  1114.  
  1115. ???: Changed M_BYTE_SUMMARY to show KB size instead of Byte size
  1116.  
  1117.  
  1118. ???: Changed update_status()
  1119.  
  1120.   Changed janus/hydra update_status() to show min:sec instead of minutes for
  1121.   time remaining until completion of file transfer (ETA).
  1122.  
  1123.  
  1124. ???: Cleaned up STATIC variables and made some dynamic - saves DOS memory ...
  1125.  
  1126.  
  1127. CE: "ChangeMailTo <flavour>"
  1128.  
  1129.   This is used for changing mail flavour to CRASH, DIRECT, NORMAL or HOLD after
  1130.   an rejected outbound call. The default is the change to Normal flavour.
  1131.  
  1132.  
  1133. TJW: Implemented xHydra / RH1 hydra
  1134.  
  1135.   This modified Hydra (which identifies in EMSI with RH1 flag) does file
  1136.   requests ONLY in the 1st transfer "batch". Mail packets and all flow file
  1137.   attaches are sent in the 2nd batch - while you already get the requested
  1138.   files from the other system!
  1139.  
  1140.   Until now, this was only possible with Janus - now you can do this with
  1141.   Hydra, too! So just send your filelist along with your filerequests if the
  1142.   other system supports RH1 / xHydra, too.
  1143.  
  1144.   Until now I know of these xHydra mailers: BT-XE ;-), Xenia and Maindoor If
  1145.   xHydra is used, this is shown via "Session method: xHydra".
  1146.  
  1147.  
  1148. ???: Modified output of AKAs
  1149.  
  1150.   Until now there were 3 AKAs per line. Now the AKA: lines are "filled up" with
  1151.   AKAs as it fits on the screen (assuming 80 chars width).
  1152.  
  1153.  
  1154. ???: Added message
  1155.  
  1156.   Added message "Rejecting human caller" if BBS caller tries while a MO event.
  1157.  
  1158.  
  1159. ???: Added message for FreePoll / ConditionalPoll
  1160.  
  1161.   "Accepting <nodenr>. First call. ..." to avoid user confusion if a link calls
  1162.   the very first time using Freepoll (no TRX file present in outbound).
  1163.  
  1164.  
  1165. ???: Removed warnings from BTLNG
  1166.  
  1167.  
  1168. HR: Enhanced user dialogue with Alt-G (get file[s]).
  1169.  
  1170.   BT-XE will now show destination address and system name after you entered
  1171.   dest address. You can now enter up to 3 filenames password flavour before the
  1172.   question "More Yes/No/Other" is asked.
  1173.  
  1174.  
  1175. HR: Enhanced user dialogue with Alt-S (send file[s]).
  1176.  
  1177.   BT-XE will now show destination address and system name after you entered
  1178.   dest address.
  1179.  
  1180.  
  1181. HR: ShowAlive
  1182.  
  1183.   The file I_ALIVE.xx is now generated also at transfer via Hydra, XModem,
  1184.   ZModem, Janus and Fax-Receive.
  1185.  
  1186.  
  1187. ???: Changed freepoll volume compare to use "reject if size <= MinSize*1024"
  1188.  
  1189.   This means if you configure MinSize=0 only calls with really NOTHING on hold
  1190.   will be rejected. Until now, configuring 0 made no sense (size < 0 ?).
  1191.  
  1192.  
  1193.  
  1194.  
  1195. BT 2.60XE/Gamma-XR3  (9610090130)
  1196. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1197.  
  1198. Bug fixes:
  1199. ----------
  1200.  
  1201. ???: File privilege levels for FREQ
  1202.  
  1203.   Changed file privilege levels from "(unsigned) word" to "(signed) short" for
  1204.   file requests. So the "level problems" of XR2 should be history now.
  1205.  
  1206.  
  1207. ???: Last Call Display
  1208.  
  1209.   If incoming call failed (connect and nothing more) and last call before was
  1210.   e.g. FAX, "last: FAX" was shown. This should be "Inc-Fail" now. This is also
  1211.   shown at begin of an incoming call as long as the session state is unknown.
  1212.  
  1213.  
  1214. ???: Fixed BTCTL/BTUTIL for use without PrivateNet (point fake net)
  1215.  
  1216.  
  1217. ???: BBSBATCH
  1218.  
  1219.   Bugfix for all lines creating BBSBATCH.* at the same place. BBSBATCH.* is now
  1220.   renamed to BBSBATxx.* (xx = Tasknumber in Hex)
  1221.  
  1222.  
  1223. ???: Fixed scheduler bug
  1224.  
  1225.   Scheduler was not working correct with events on a specifiy day of (any)
  1226.   month like with: Event All 00:00,0,1 00:00 F ...
  1227.  
  1228.   But there are yet bugs left...
  1229.  
  1230.  
  1231. ???: Fixed minor bug in async_os.c ("in" and "out" were swapped in OS call)
  1232.  
  1233.  
  1234. ???: Fixed wrong month in ShortCostLog output
  1235.  
  1236.  
  1237. ???: Fixed (?) file sharing for IBM C++
  1238.  
  1239.  
  1240. ???: Dynamic Events
  1241.  
  1242.   Fixed dynamic events - a forced rescan is now done before a dynamic event can
  1243.   end - to ensure that there is really no more mail to send.
  1244.  
  1245.  
  1246. ???: Fix for DOS SpawnInit
  1247.  
  1248.  
  1249. ???: EMSI bugfix
  1250.  
  1251.   If a system sent x:y/z.0 and x:y/z.p EMSI AKA dupe check did not work
  1252.   correctly (point addr was not compared and so a "false dupe" was removed from
  1253.   AKA list of remote system).
  1254.  
  1255.  
  1256. ???: Made internal FREQ processor OKFILE parsing more "robust"
  1257.  
  1258.   If you had multiple blanks between filespec and password in your OKFile, like
  1259.   in
  1260.         c:\*.*  !SECRET
  1261.  
  1262.   Binkley didn't process this as you intended it to do. Everybody could freq
  1263.   out of c.\*.* without using a password.
  1264.  
  1265.   This worked correctly:
  1266.  
  1267.         c:\*.* !SECRET
  1268.  
  1269.   Now Binkley doesn't care about AMOUNT of blanks between filespec and password
  1270.   any more.
  1271.  
  1272.   This parser part was completely rewritten - be careful and test this !
  1273.  
  1274.  
  1275. ???: Versions compiled for different CPUs show CPU type in announce string
  1276.  
  1277.  
  1278. ???: Misc. cosmetical fixes
  1279.  
  1280.  
  1281.  
  1282. New features
  1283. ------------
  1284.  
  1285. TJW: BE CAREFUL! Changed [section] statements. See [Expression].
  1286.  
  1287.  
  1288. TJW: [Expression]
  1289.  
  1290.   [%Task%==1]             use section if environment variable TASK equals 1
  1291.   [%ENVVAR1%==%ENVVAR2%]  ...         if env. var. ENVVAR1 equals ENVVAR2
  1292.   [%MODEM%==ZYXEL]        ...         if env. var. MODEM equals ZYXEL
  1293.   [%PORT%!=2]             ...         if env. var. PORT is not equal to 2
  1294.   [Common] or [True]      use section in any case
  1295.   [Ignore] or [False]     ignore section
  1296.  
  1297.   Obsolete style (not supported any longer): [Task 1]
  1298.  
  1299.  
  1300. TJW: New and powerful cost calculation scheme.
  1301.  
  1302.   See "CostCPS", "CostTimeCorrection" and "Cost Event" for details.
  1303.  
  1304.   Adapt your Binkley.Evt ("L" flag) and your nodelist compiler setup or you
  1305.   WILL run into problems !!!
  1306.  
  1307.  
  1308. TJW: New keyword "CostCPS"
  1309.  
  1310.   This sets the estimated CPS rate for cost calculations related to "L" event
  1311.   flag. Default is 1024 CPS.
  1312.  
  1313.     CostCPS 1500           ; could be used for lines connecting at 14400bps
  1314.     CostCPS 3000           ; could be used for lines connecting at 28800bps
  1315.     CostCPS 7000           ; could be used for ISDN X.75 lines with 64000bps
  1316.  
  1317.   Additionally, the connect and session overhead is added for cost calculation.
  1318.  
  1319.  
  1320. TJW: New keyword "CostTimeCorrection"
  1321.  
  1322.   With this you can configure the time in seconds that your modem / adaptor
  1323.   needs to connect and also session overhead for cost calculation.
  1324.  
  1325.   First value is the time in s (costing money) before you get a "CONNECT".
  1326.   Default is 5s. For ISDN you might want to configure a lower value. For very
  1327.   bad lines you might want to configure a higher value.
  1328.  
  1329.   Second value is the session handshake overhead in s used for calculations for
  1330.   "L" event flag (before dialing out). Default is 5s, too. If you connect to
  1331.   very fast or slow handshaking mailers, you might want to configure a
  1332.   different value.
  1333.  
  1334.   You should change the default values to typical ones for your system. The
  1335.   defaults are just "better than nothing", but too low for analogue modems and
  1336.   too high for ISDN adaptors.
  1337.  
  1338.   E.g.: CostTimeCorrection 13 4
  1339.  
  1340.         This gives a connect overhead of 13s and a session overhead of 4s
  1341.         (analoge connect with V.32bis on good line, BT-XE to BT-XE).
  1342.  
  1343.   E.g.: CostTimeCorrection 1 2
  1344.  
  1345.         This gives a connect overhead of 1s and a session overhead of 2s (ISDN
  1346.         connect with X.75, BT-XE to BT-XE).
  1347.  
  1348.  
  1349. TJW: "Cost Event" - a new Event type with flag "!="
  1350.  
  1351.   This new event type is used similar to normal "Event", but describes costs
  1352.   involved with your outbound calls at different daytime, weekdays etc.
  1353.  
  1354.   There can be ONLY such a cost definition in such an event, nothing else! Such
  1355.   a "cost event" does NOT interfere with other event definitions.
  1356.  
  1357.   The cost vector can include up to 16 comma separated entries, but there MUST
  1358.   NOT be any blanks between them. You need not specify all 16 entries, you need
  1359.   only to specify the ones you really use (c0,c1,c2 if you only use 3 cost
  1360.   indices).
  1361.  
  1362.   Event <days> <start time> [<end time>] !=<c1>,<c2>,..,<c16>
  1363.         ^------------------------------^   ^----------------^
  1364.          meaning as like in other events       cost vector
  1365.  
  1366.   The cost index used for a connection is reported after connection as
  1367.   "Seconds: ... Tariff: <cost index> ... System: ...".
  1368.  
  1369.   Example 1 for Germany (used with EuroCost and CostUnit 12):
  1370.  
  1371.     Event All 00:00,12,24 05:00 !=2400,0600,0360,0360,0600,0090,0090,0054
  1372.  
  1373.     This means that on December 24. from 00:00 until 05:00 the "cost vector" is
  1374.     2400, 600, ... (meaning that cost index 1 (city zone) has unit lengths of
  1375.     240 seconds, cost index 2 (50km zone) has unit lengths of 60s etc.). You
  1376.     have to compile the "cost index" into V7 nodelist index (cost field).
  1377.     Binkley then uses this "cost index" as index into the "cost vector" of the
  1378.     active CostEvent. "cost index" is 1-based (!), 0 means no/unknown cost!!!
  1379.  
  1380.     You have to define the cost vector in 1/10 seconds (unit length). CostUnit
  1381.     is the amount of money a unit costs (12 [Pf] in Germany).
  1382.  
  1383.     So if you call somebody on Dec. 24 at 03:00 who has cost index 3 compiled
  1384.     into the V7 cost field by your nodelist compiler, Binkley will calculate
  1385.     with unit lengths of 36 seconds (360 * 0.1s).
  1386.  
  1387.  
  1388.   Example 2 for US (NO "EuroCost" and NO "CostUnit"):
  1389.  
  1390.     Event All 00:00 24:00 !=10,20,40,80,160
  1391.  
  1392.     [Sorry, I don't have ANY information about US cost structure, so this is
  1393.     just an example with not realistic numbers]
  1394.  
  1395.     This means that on every day between 0:00 and 24:00 the "cost vector" is
  1396.     10,20,...,160 (meaning that a minute shortest distance costs 10 [cents or
  1397.     whatever] and a minute longest distance costs 160). You have to compile the
  1398.     "cost index" (1 is nearest, 5 is farest in this example, up to 16 is
  1399.     possible) into V7 nodelist index (cost field). Binkley then uses this "cost
  1400.     index" as index into the "cost vector" of the active CostEvent. "cost
  1401.     index" is 1-based (!), 0 means no/unknown cost!!!
  1402.  
  1403.     So if you call somebody (on any day, any time) who has cost index 3
  1404.     compiled into the V7 cost field by your nodelist compiler, Binkley will
  1405.     calculate with costs of 40 [cents, whatever] per minute.
  1406.  
  1407.   Here, for interested audience, the calculation method. If you aren't
  1408.   interested, you can skip to next feature ...
  1409.  
  1410.   Cost calculation algorithm for outbound calls (inbound: cost==0) :
  1411.  
  1412.   StartTime = StartTime - CostTimeCorr_Connect   (the modems need some worthy
  1413.                                                   time before CONNECT !)
  1414.  
  1415.   get CostIndex (1..16) from V7 nodelist RealCost field
  1416.   find CostEvent matching StartTime and get ActualCostVector
  1417.   set return value Cost = ActualCostVector[CostIndex] !!!
  1418.  
  1419.   EuroCost (unit based cost calculation) :
  1420.  
  1421.     Time = StartTime                             set Time to StartTime
  1422.     Ttimes10 = 0                                 set 1/10s timer to 0
  1423.     TotalCost = 0                                set TotalCost to 0
  1424.     while Time < EndTime                         do as long as connection was
  1425.        TotalCost = TotalCost + CostUnit           spend one CostUnit
  1426.        Ttimes10 = Ttimes10                        we get this time for
  1427.                   + ActualCostVector[CostIndex]   one CostUnit
  1428.        Time = StartTime + Ttimes10/10;            afterwards we have this time
  1429.        find CostEvent matching Time and           get tariff information for
  1430.        update ActualCostVector                    new Time
  1431.  
  1432.     return TotalCost as total cost               this is what we spent
  1433.  
  1434.   No EuroCost (minute based cost calculation) :
  1435.  
  1436.     Time = StartTime                             set time to StartTime
  1437.     TotalCost = 0                                set TotalCost to 0
  1438.     while Time < EndTime                         do as long as connection was
  1439.        TotalCost = TotalCost                       spend amount of money
  1440.                    + ActualCostVector[CostIndex]   one minute costs
  1441.        Time = Time + 60s                           we get 1 minute for it
  1442.        find CostEvent matching Time                get tariff information for
  1443.        and update ActualCostVector                 new Time
  1444.  
  1445.     return TotalCost as total cost                this is what we spent
  1446.  
  1447.   I hope this is the correct way to do it. If it is NOT correct like this,
  1448.   please let me know !!!
  1449.  
  1450.   Don't forget to adapt your "L" flags in Binkley.Evt !!!
  1451.  
  1452.   With L flag, Binkley will calculate costs before calling out: It will assume
  1453.   a 1KB/s transfer rate (default, you may modify this by specifying CostCPS,
  1454.   see above) to estimate session length. Then it calculates real cost (in your
  1455.   currency) for this session at this time and decides depending on L flag
  1456.   condition if it should dial out or not.
  1457.  
  1458.   You can use this to send short crash mails immediately and delay crash mails
  1459.   with file attaches to some later event with cheaper costs.
  1460.  
  1461.   For a cost saving setup in Germany you could use L<13 (meaning L<=12) on most
  1462.   of your events - except event at cheapest time 02:00-05:00, for this event
  1463.   you should NOT do cost restrictions or BT-XE will not dial out at all if
  1464.   costs are too high even at cheapest time. This will cause BT-XE to delay a
  1465.   crash mail until cost is <=12 ("Pfennige") or until event with no cost
  1466.   restriction or "H" flag.
  1467.  
  1468.  
  1469.   Added '$' as mail status char for mail not matching cost setup (L event flag)
  1470.  
  1471.  
  1472. MMP: New format char for ShortCostLog: $r
  1473.  
  1474.   $r gives "remote's costs" for inbound calls (like $c gives your own costs for
  1475.   outbound calls).
  1476.  
  1477.  
  1478. MMP: Changed default ShortCostLog format to include remote costs:
  1479.  
  1480.    $02y$02m$02d $02H$02M$02S $# $14A $6B $4s $4c $4r $8i $8o $8C $4Y
  1481.  
  1482.   This produces log entries like: (removed unnecasary spaces)
  1483.                                                                 Biggest file
  1484.    Date   Time   Task    Node Connect Sec Cost RCst   In    Out   -size -cps
  1485.    960328 132222 1    2:238/9  28800   29    0   24 6036   9903    9896 3298
  1486.    960328 132539 1   2:238/54  28800  105    0   96    0 230517  223554 3287
  1487.  
  1488.  
  1489. ???: Added optional size parameter to *.REQ entries
  1490.  
  1491.   old *.REQ format       new *.REQ format
  1492.  
  1493.   file1                  file1 $12345
  1494.   file2                  file2 $100000
  1495.   file3                  file3 $1000000
  1496.   ...                    ...
  1497.  
  1498.   The value after $ is the size of the file to request in bytes. This is used
  1499.   for cost calculation only, so an approx. value does the job, too. Size value
  1500.   is optional, if no size is given, 1 is assumed. In the REQ file transmitted
  1501.   to remote side, size information is filtered out, of course.
  1502.  
  1503.  
  1504. HR: Changed Alt-G (get files) dialogue to make input of $size possible
  1505.  
  1506.  
  1507. ???: Changed "Tariff:" to show cost index
  1508.  
  1509.  
  1510. ???: New ShortCostLog format character $z for Cost Index
  1511.  
  1512.     0 = no cost
  1513.   1.. = cost index into cost event's cost vector
  1514.  
  1515.  
  1516. TJW: Shared outbound
  1517.  
  1518.   Files related to that (all located in FlagDir):
  1519.  
  1520.   BTRESCAN.FLG
  1521.  
  1522.     This global flag for all lines works different from BTRESCAN.nn: Each line
  1523.     monitors this flag and if a line notices a change in the modification
  1524.     timestamp of this file, the line initiates an outbound rescan. If the file
  1525.     did not exist, but suddenly appears, a rescan is done, too. If there is no
  1526.     change or the file does not exist, nothing happens. For users of XenObm:
  1527.     This behaves very similar to XMRESCAN.FLG, so it should work pretty good
  1528.     now with XenObm regarding rescan flag!
  1529.  
  1530.   BTRESCAN.BSY
  1531.  
  1532.     This global flag is generated at start of an outbound rescan / reread of
  1533.     any line and deleted after the line finished rescanning / rereading
  1534.     outbound. While this flag is present, no other line will begin an outbound
  1535.     rescan/ reread, but a line attempting to begin an outbound rescan / reread
  1536.     while this flag is already present will "remember" to do the rescan later
  1537.     by creating BTRESCAN.## for itself. BTRESCAN.## will be deleted immediately
  1538.     after creation of BTRESCAN.BSY.
  1539.  
  1540.   This will lower system load (especially in networks and multiline systems) by
  1541.   avoiding multiple lines rescanning / rereading simultaneously.
  1542.  
  1543.   BTRESCAN.DMP
  1544.  
  1545.     The first binkley task who decides to do a new rescan writes rescanned data
  1546.     into BTRESCAN.DMP (saying "Rescanning"). If this file is not older than
  1547.     "ReadHoldTime" minutes, the other lines will just read this dump file
  1548.     (saying "Reading").
  1549.  
  1550.  
  1551. TJW: Language.Txt
  1552.  
  1553.   This is a mixed language file with English, Startrek and German language.
  1554.   Lines with English text are prefixed by "E", lines with Startrek text are
  1555.   prefixed by "S", German is prefixed by "G" and common lines are prefixed by
  1556.   "*".
  1557.  
  1558.  
  1559. TJW: BTUTIL
  1560.  
  1561.   Integrated BTCTL and BTLNG into one new single tool named BTUTIL. This saves
  1562.   about 53KB EXE size in total. Invoke BTUTIL without parameters to see usage.
  1563.  
  1564.  
  1565. TJW: BTUTIL
  1566.  
  1567.   Modified BTUTIL to accept mixed multiple-language language source files.
  1568.  
  1569.   BTUTIL LNG key E language.txt english.lng
  1570.   BTUTIL LNG key S language.txt startrek.lng
  1571.   BTUTIL LNG key G language.txt german.lng
  1572.  
  1573.   It is possible to use BTUTIL LNG without "key X" parameter to process old
  1574.   language files.
  1575.  
  1576.   Note: The language specifier is cAsE-sensitive!
  1577.  
  1578.  
  1579. TJW: Language file
  1580.  
  1581.   No support for external language file any more as this was a popular problem
  1582.   source. You MUST patch your LNG into the EXE using BTLNG patch, if you want
  1583.   to have something different as standard english language.
  1584.  
  1585.  
  1586. TJW: Merged in BTPE 4.00, 4.01 and 4.02 diff of Paul Edwards
  1587.  
  1588.   See btpe_402.txt for details.
  1589.  
  1590.  
  1591. TS/TJW: misc. source fixes and cleanups
  1592.  
  1593.  
  1594. ???: Date and Time
  1595.  
  1596.   Changed date / time display to 96/06/24 Mon 23:59 format. This is neither
  1597.   european nor US format, but simply logical ;-)
  1598.  
  1599.  
  1600. HR: made BT-XE compile for Win32 again using Visual C++
  1601.  
  1602.   No hydra support and no timesync support yet.
  1603.  
  1604.  
  1605. HR: First implementation of Lookup functions
  1606.  
  1607.   Works with ALT-S (Send File), ALT-G (Get File), ALT-P (Poll Node) and ALT-M
  1608.   (Manual Poll)
  1609.  
  1610.   If you enter a sysopname and the sysop has more than one line, you see a node
  1611.   entry select window now and you can choose the node to use for the selected
  1612.   function.
  1613.  
  1614.   Don't use wildcards as * and or ? - use only part of names - they are working
  1615.   as wildcards.
  1616.  
  1617.   So "R Heeb" will find "Rudolf Heeb or "Rudi Heeb".
  1618.  
  1619.   You can also use the last name only. Waldmann finds all Waldmann, not only
  1620.   Thomas. :-)
  1621.  
  1622.   If you enter both (firstname AND lastname) lastname is nor interpreted as
  1623.   wildcard. If you enter one name only, it is using it as wildcard for
  1624.   lastname.
  1625.  
  1626.   Examples: "R Heeb" finds Rudi Heeb, Rudolf Heeb, Renate Heeb.
  1627.             "R Heeb" does NOT find Rudi Hee, Rudolf Heebermann.
  1628.             "Hee" finds Rudi Heeb, Rudolf Heeb, Renate Heeb, Rudi Hee,
  1629.                   Rudolf Heebermann, Elke Heess ...
  1630.             "T Wald" does NOT find Thomas Waldmann
  1631.             "T Waldmann" finds Thomas Waldmann
  1632.  
  1633.   Be aware that if you use only one or two characters, there will be many
  1634.   entries to be found. Many entrys -> much time and much memory needed! Please
  1635.   try it, and report any errors and whishes to Rudolf Heeb.
  1636.  
  1637.  
  1638. HR: Enhanced Alt-S (Send) and Alt-G (Get) Dialogs
  1639.  
  1640.   Those dialoges now also take addresses not listed in nodelist. So you can put
  1641.   files on hold for or do file requests from unlisted nodes/points
  1642.   respectively.
  1643.  
  1644.  
  1645. TS: Visual progress metering bars
  1646.  
  1647.   Implemented visual progress metering bars for Janus/Hydra/Zmodem in
  1648.   Wazoo/Emsi sessions.
  1649.  
  1650.  
  1651. TS: Visual progress metering bars
  1652.  
  1653.   Moved progress meters to new window overlapping outbound window while in
  1654.   Wazoo/Emsi sessions.
  1655.  
  1656.  
  1657. ???: Added magic check for reading Binkley.Axx dump files.
  1658.  
  1659.   Should help avoiding crashes with trashed dump files.
  1660.  
  1661.  
  1662. ???: Recenty Activity Scrolling
  1663.  
  1664.   Maybe improved recenty activity scrolling performance a bit by aligning each
  1665.   line on a 4 byte boundary for video modes with a column count that is a
  1666.   multiple of 4, too (e.g. 80 or 132).
  1667.  
  1668.  
  1669. ???: Extended timesync to use EMSI addresses
  1670.  
  1671.  
  1672. TJW: Hydra chat
  1673.  
  1674.   If you have a hydra session, you might use chat mode now (if the other side
  1675.   is capable of chat mode, too - some mailers tell you this with a message
  1676.   displayed as "HCON: remote has chat capability (bell enabled/disabled)" or
  1677.   similar).
  1678.  
  1679.   To enter chat mode on your side, hit "Alt-C". Two windows "Local" and
  1680.   "Remote" will appear, shrinking "Recent Activity" - I strongly(!) recommend
  1681.   80*50 video mode for this (mode co80,50) - with 80*25 you will have only 2
  1682.   lines as chat window(s).
  1683.  
  1684.   At this moment, your side will transmit a string to the other side notifying
  1685.   that you entered chat mode (and also two bell characters to wake up the
  1686.   remote sysop).
  1687.  
  1688.   If remote sysop is not awake yet, you may send some more bell characters
  1689.   using Ctrl-G (the same is possible if remote sysops calls you for chatting
  1690.   if you have enabled the chat sound with the "Gong" keyword in Binkley.Cfg).
  1691.  
  1692.   To send text to remote side, simply type it in. All text entered on the
  1693.   remote side will appear in your "Remote" window.
  1694.  
  1695.   To leave chat mode hit Alt-C again. Chat mode will automatically be left at
  1696.   end of the session if one side leaves chat mode (or even did not enter chat
  1697.   mode). Also, there is an input timeout, so don't sleep while chatting.
  1698.  
  1699.   Please report any problems or incompatibilities with chat mode, especially to
  1700.   other mailers.
  1701.  
  1702.  
  1703. TJW: new keyword "NoHydraChat"
  1704.  
  1705.   You can disable Hydra Chat capabilities using this keyword.
  1706.  
  1707.  
  1708. JL: Added "Sorted Outbound"
  1709.  
  1710.   The 'Pending Outbound Mail' is sorted by Domain / Zone / Net / Node / Point.
  1711.   Sendable mail is still on the top. Outbound on HPFS drives was already sorted
  1712.   even without this feature - but FAT users [DOS] will now be happier, too.
  1713.  
  1714.  
  1715. TJW: "Hydra1st" keyword dropped
  1716.  
  1717.   This was dropped after XE2 release and is no longer a valid config verb. For
  1718.   explanation see "ProtocolPreference" keyword.
  1719.  
  1720.  
  1721. TJW: "ProtocolPreference" keyword
  1722.  
  1723.   This made "Hydra1st" keyword obsolete.
  1724.  
  1725.   Binkley 2.60, 2.60 XE1 and XE2 were NOT fully FSC-0056 (EMSI specification)
  1726.   conform yet (well, it worked, though ;-).
  1727.  
  1728.   Old / wrong behaviour:
  1729.  
  1730.    1. Caller system sends all protocols (HYD,JAN,ZAP,ZMO) it can do.
  1731.  
  1732.    2. Called system (BT) chooses a protocol with fixed preference order
  1733.       JAN,HYD,ZAP,ZMO (BT 2.60 orig) or HYD,JAN,ZAP,ZMO (XE and Hydra1st) - no
  1734.       matter in which sequence the protocols are transmitted (preferred) by
  1735.       caller.
  1736.  
  1737.   New and correct behaviour:
  1738.  
  1739.    1. Caller system sends all protocols it can do in order of preference: It
  1740.       sends e.g. HYD,JAN,ZAP,ZMO if it can do them all and prefers Hydra as 1st
  1741.       choice, then Janus as 2nd choice, ZedZap as 3rd choice etc.
  1742.  
  1743.    2. Called system chooses the FIRST protocol out of the transmitted protocol
  1744.       preference string which it is itself capable of.
  1745.  
  1746.       If ZAP,JAN,HYD,ZMO is received and it can do ZAP, it will choose ZAP,
  1747.       doing the 1st choice protocol.
  1748.  
  1749.       If JAN,HYD,ZAP,ZMO is received and it can't do JAN, but HYD, then HYD
  1750.       will be done, doing the 2nd choice protocol.
  1751.  
  1752.   With ProtocolPreference you can set what YOUR own Binkley will send in EMSI
  1753.   if you call out to another system.
  1754.  
  1755.   Default preference sequence (if you don't specify this keyword):
  1756.  
  1757.   HYD,JAN,ZAP,ZMO       (if Hydra is implemented in your Binkley version)
  1758.    or
  1759.   JAN,ZAP,ZMO           (if no Hydra is implemented in your Binkley version)
  1760.  
  1761.   With NoJanus, NoHydra, NoZedZap etc. the corresponding protocols will be left
  1762.   out of the default ProtocolPreference string, of course.
  1763.  
  1764.   If you specify "ProtocolPreference HYD,ZAP,ZMO" your Binkley will tell remote
  1765.   side on outgoing calls that it prefers HYDRA as 1st choice, then ZedZap as
  1766.   2nd choice and ZMO as last choice and that it can NOT do anything other.
  1767.  
  1768.   ATTENTION: Be aware that the user defined ProtocolPreference string is
  1769.   =========  nearly transmitted "as is", there are not many checks if it is
  1770.              valid or if it does comply with your other settings!
  1771.              So DON'T use this keyword if you don't know what you're doing.
  1772.  
  1773.   If you call out and the other side does not answer with the first available
  1774.   protocol in YOUR ProtocolPreference although remote side is capable of doing
  1775.   it and also has not disabled it, the remote side is NOT fully FSC-0056
  1776.   compliant and you should notice the software author of that.
  1777.  
  1778.   This behaviour is overridden by the new statement "SmartBiDi" (see below).
  1779.  
  1780.  
  1781. TS: DOS only: announcement of the fossil in use.
  1782.  
  1783.  
  1784. TJW: new keyword "ReadLog"
  1785.  
  1786.   If you spawn other programs from Binkley which generate a binkley style log,
  1787.   you can read this log into Binkley's screen (and log). The log specified with
  1788.   "ReadLog" is DELETED after it is read and incorporated into Binkley's log.
  1789.  
  1790.   e.g.: ReadLog  c:\bt\1\bink_add.log
  1791.                  ^ redirect all other bink style logs you want to include to
  1792.                    that location
  1793.  
  1794.  
  1795. MMP: "MaxBusyAge" keyword.
  1796.  
  1797.   Followed by a number of minutes, it specifies that Binkley should ignore .BSY
  1798.   files older than that. This can be used to automatically make a node dialable
  1799.   even if he has an old .BSY file laying around. This can happen if Binkley for
  1800.   some reason didn't clean up after a session; i.e. the system is rebooted. It
  1801.   will also handle the situation where Binkley (god forbid) traps, and is
  1802.   respawned using the "Respawn" command line argument.
  1803.  
  1804.   Example: MaxBusyAge      240
  1805.  
  1806.  
  1807. MMP: "SpawnNoOK" keyword
  1808.  
  1809.   Followed by a command, it specified that the command should be executed if
  1810.   the modem does not respond OK to the initialization string in unattended mode
  1811.   within half a second. If your modem is too slow to respond OK, you can add a
  1812.   number of tildes to the initialization string. This feature is useful for
  1813.   detecting if a modem has hung itself, and notify the sysop, or with the right
  1814.   software and hardware turn the modem off and on again.
  1815.  
  1816.  
  1817. MMP: "Quick" modifier for "AfterMail" keyword
  1818.  
  1819.   Using "AfterMail Quick <command>", Binkley does not spend unneccesary time on
  1820.   modem initialization. This is useful if the AfterMail command is very
  1821.   quickly. On my system i can run the aftermail in about the same time, as it
  1822.   take Binkley to initialize the modem. Also, without "Quick" a caller can be
  1823.   so unlucky, that the modem is reinitialized when he calls in.
  1824.  
  1825.  
  1826. MMP: "CacheHold" keyword
  1827.  
  1828.   This enables caching of the outbound, and speeds up rescanning. The usage is:
  1829.   CacheHold <level> [Stat]. <level> specifies the amount of caching, and can
  1830.   take the following values:
  1831.  
  1832.     0  No caching and Binkley scans as usual.
  1833.  
  1834.     1  Directories are cached. Using this, Binkley only need to read the
  1835.        directories once when scanning the outbound.
  1836.  
  1837.     2  Flow files are kept in memory. Using this, Binkley does not need to
  1838.        reread flow files that has not been changed.
  1839.  
  1840.   On my system CacheHold reduces the average rescan time from approximately
  1841.   2.70 seconds to 1.30 using 29 KB cache. However, the memory requirements and
  1842.   improvement in speed will differ from system to system.
  1843.  
  1844.   Add "Stat" to the line, and it will be logged how the rescanning performs.
  1845.   Use "CacheHold 0 Stat" to log the performance without caching.
  1846.  
  1847.  
  1848. MMP: Added the ability to freeze Binkley.
  1849.  
  1850.   When Binkley sees BTFREEZE.xx (xx is the hexadecimal task number) in the
  1851.   flags directory, it deletes the file, and creates BTFROZEN.xx instead. Then
  1852.   it lowers the DTR signal, and waits for BTFROZEN.xx to disappear. When it
  1853.   disappears, the modem is reinitialized. This feature is useful for freezing
  1854.   Binkley when compiling nodelists in the background.
  1855.  
  1856.  
  1857. ???: New keyword "EMSIbanner" for debugging purposes
  1858.  
  1859.   If you put this in your Binkley.Cfg, Binkley will send a banner string (+
  1860.   Address ... using ...) *before* sending **EMSI_INQ - this helps with some
  1861.   remote COM I/O systems which fail within the first few received bytes.
  1862.  
  1863.  
  1864. ???: New commandline verb "Debug"
  1865.  
  1866.   Does the same as "Debug" in config.
  1867.  
  1868.  
  1869. ???: Added mailstatus character to zoomed outbound view (-*x>$...).
  1870.  
  1871.  
  1872. TJW: new keyword "IPC"
  1873.  
  1874.   With this, you define the directory which Binkley will use to write Max 2.x
  1875.   compatible IPCxx.BBS (xx = tasknumber in Hex) files into.
  1876.  
  1877.   E.g: IPC h:\Max\IPC\
  1878.  
  1879.   The IPC files will contain "BinkleyTerm 2.60XE" as user name and some
  1880.   information about Binkley's state, e.g. "Waiting for Call or Event".
  1881.  
  1882.   If you do not use IPC keyword, Binkley will NOT write IPC files.
  1883.  
  1884.  
  1885. MB: Maximus 3.x MCP support (OS/2 version only).
  1886.  
  1887.   (Thanks to Mike Burgett for writing and Bob Juge for sending, merged in by
  1888.    TJW)
  1889.  
  1890.   Just define the same path with MCPpipe statement of Binkley as in MCP
  1891.   statement of Maximus, e.g.: MCPpipe \pipe\maximus\mcp If you do NOT want to
  1892.   use MCP just do NOT define "MCPpipe" in your config!
  1893.  
  1894.   Then use SM (session monitor of Max 3.x) to view line status.
  1895.  
  1896.   MCP.EXE *MUST* be running on startup of BT-XE to use this feature. You must
  1897.   also have MCP32.DLL in LIBPATH to run this version of BT-XE (even if you
  1898.   don't use MCP).
  1899.  
  1900.   Both is part of Maximus 3.xx package (but can also be used without having
  1901.   Maximus installed).
  1902.  
  1903.   Remark of TJW: Due to file handle inheritance problems, automatic start code
  1904.                  for MCP.EXE was removed. So you have to start MCP.EXE before
  1905.                  BT-XE or MCP will not work.
  1906.  
  1907.   You must *NOT* start MCP using SpawnInit - this would cause problems.
  1908.  
  1909.   Use this a SINGLE time in your CMD file (startup.cmd e.g.) before you invoke
  1910.   any BT-XE task using MCP:
  1911.  
  1912.                  MCP.EXE . <pipename> <number of tasks> server
  1913.  
  1914.   e.g.:   detach MCP.EXE . \pipe\maximus\mcp 16 server
  1915.  
  1916.   Be sure that you have set MAXIMUS environment variable before this command.
  1917.  
  1918.   Directly after starting MCP it's a good idea to start SM.EXE to *use* MCP. Do
  1919.   NOT start SM.EXE with SpawnInit.
  1920.  
  1921.  
  1922. ???: Changed janus.c to create JANUSREQ.R%02x in flagdir
  1923.  
  1924.  
  1925. TJW: new keyword "TaskPath"
  1926.  
  1927.   You can specify a separate directory for BINKLEY.?xx files with this to keep
  1928.   your Binkley directory clean. Defaults to Binkley directory.
  1929.  
  1930.   e.g.:  TaskPath c:\bt\task\
  1931.  
  1932.  
  1933. TJW: Changed order of config file reading
  1934.  
  1935.   old: binkley.scd -> binkley.evt -> binkley.cfg
  1936.   new: binkley.cfg -> binkley.scd -> binkley.evt
  1937.  
  1938.   This was necessary for TaskPath to be known before searching binkley.scd/sxx.
  1939.  
  1940.  
  1941. ???: Today at a glance
  1942.  
  1943.   Changed "Today at a glance" to show Mail/BBS/Fax calls ("M/B/F") - also
  1944.   changed alignment and moved it to language.txt
  1945.  
  1946.  
  1947. ???: Messages
  1948.  
  1949.   changed message "File requests declined" to "Remote doesn't allow file
  1950.   requests now"
  1951.  
  1952.  
  1953. ???: Fossil Annoncement
  1954.  
  1955.   DOS only: makes fossil announcements configurable by using the language file.
  1956.   this is way better than hardcoding them into the executable.
  1957.  
  1958.   The language file is readily prepared to detect and announce the following
  1959.   fossils:
  1960.  
  1961.     ADF (AnDan), BNU, cFos, DrComm, FCI, Opus!Comm, VX00, X00
  1962.  
  1963.   To add a new/other fossil, do the following:
  1964.  
  1965.   Look in the language file (LANGUAGE.TXT) for a line which reads like this:
  1966.  
  1967.     *LVX00:VX00,X00:X00,BNU:BNU,CFOS:cFos,OPUS:Opus!Comm[,...]
  1968.  
  1969.   This line is composed of pairs of strings. each pair contains a search string
  1970.   and an answer string separated by a colon, e.g.:
  1971.  
  1972.     OPUS:Opus!Comm
  1973.  
  1974.   Where `OPUS' is the string to look for in the internal fossil signature id
  1975.   string, and `Opus!Comm' is the string that will be output to the screen and
  1976.   logfiles.
  1977.  
  1978.   You simply add the new/other fossil search/answer string pair at the end of
  1979.   the line (preceeded by a `,'), but please mind that:
  1980.  
  1981.    - The search string has to be in upper case, while the answer string may be
  1982.      in upper/lower/mixed case.
  1983.  
  1984.    - Search- and answer strings must not contain any of the characters: ` '
  1985.      (blank/space), `,' and `:'.
  1986.  
  1987.    - You have to use a search string which definitely designates a fossil you
  1988.      look for. therefore the search string `VX00' has to come before search
  1989.      string `X00', because the other way round (`X00' first, that is) the
  1990.      answer string for `X00' would be output for both `X00' _and_ `VX00' ...
  1991.  
  1992.  
  1993. ???: Include keyword
  1994.  
  1995.   Reduced stack space needed for "include", so you can do more "nested"
  1996.   includes now.
  1997.  
  1998.  
  1999. ???: Worked HydraCom 1.09d changes into hydra / hydra chat source
  2000.  
  2001.   Alt-C is now used for entering (and exiting) Hydra chat mode. Clearing "Today
  2002.   at a glance" is done with Alt-D now.
  2003.  
  2004.   Hydra protocol now also works with long fnames correctly (OS/2 only). Long
  2005.   filenames are NOT supported in BT yet except in hydra protocol.
  2006.  
  2007.  
  2008. TJW: Modem command character translation "." -> "," removed
  2009.  
  2010.   So you can specify commands likw AT+FCLASS=2.0 now without having to "escape"
  2011.   the dot. You MAY, of course, continue using AT+FCLASS=2\.0 ...
  2012.  
  2013.   The only translations happening now are:
  2014.  
  2015.     "|"  -> output CR character
  2016.     "v^" -> lower/raise DTR
  2017.     "~"  -> pause 1s
  2018.     "`"  -> pause 0.1s
  2019.     "-"  -> don't output anything
  2020.  
  2021.   If you don't want them, prefix them by an "escape" character which is: "\".
  2022.  
  2023.  
  2024. HR: ShowAlive
  2025.  
  2026.   The file I_ALIVE.xx is now generated also in terminal mode while waiting for
  2027.   key strokes and while transfering with XModem and ZModem (UPload/DOWNload).
  2028.   Also, I_ALIVE.xx is generated while the user does an input (nodenumber,
  2029.   systemname, filename and so on). Yes, there are people needing more than 1
  2030.   minute to enter a nodenumber. :-)
  2031.  
  2032.  
  2033. TJW: OS/2 only: Window Titles
  2034.  
  2035.   BT-XE can set the window title of its own window to "BT-XE #<TaskNumber>:
  2036.   <Action>" (default). "Action" is the same as in Maximus' session monitor (if
  2037.   you use MCP).
  2038.  
  2039.  
  2040. TJW: New keyword "WindowTitleFmt".
  2041.  
  2042.   This is used for setting the format string of window titles.
  2043.  
  2044.   Default is (if you specify WindowTitleFmt without parameters):
  2045.  
  2046.     WindowTitleFmt BT-XE #%%d: %%s    (you have to specify %% to get the single
  2047.                                        % as result or BT will crash)
  2048.  
  2049.   Further, you HAVE TO use first %%d AND second %%s !
  2050.  
  2051.  
  2052. ???: IPC:
  2053.  
  2054.   "Snoop"   defines the Snoop pipe - NOT the MCP pipe  (OS/2 only)
  2055.   "MCPpipe" defines the Maximus MCP pipe               (OS/2 only)
  2056.   "IPC"     defines the directory for IPCxx.BBS        (all platforms)
  2057.  
  2058.   You can use ALL now, if you want.
  2059.  
  2060.  
  2061.  
  2062.  
  2063. BT 2.60XE/Gamma-XR4  (9612240000)
  2064. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  2065.  
  2066.  
  2067. Bugfixes
  2068. --------
  2069.  
  2070. TJW: Language file
  2071.  
  2072.   Binkley never used language file strings M_PRESS_ESCAPE and M_NO_BBS (but
  2073.   hardcoded english text "Press escape to enter BBS" and "Doing mail only ..."
  2074.   if you did not specify it in your Binkley.Cfg). Fixed.
  2075.  
  2076.  
  2077. TJW: Removed $xxxxx size information on janus outbound requests
  2078.  
  2079.  
  2080. TJW: Made BTRESCAN.BSY semaphore file more safe
  2081.  
  2082.   This fixed sharing problems under DOS
  2083.  
  2084.  
  2085. TJW: Rescan
  2086.  
  2087.   Initial rescan with BTRESCAN.FLG touched before starting BT-XE should work
  2088.   now.
  2089.  
  2090.  
  2091. TJW: BTRESCAN.DMP
  2092.  
  2093.   Further, btrescan.dmp's timestamp is set to the BEGIN time of the rescan.
  2094.  
  2095.  
  2096. TJW: Added missing "/" into EMSI mailer / version / compiler info
  2097.  
  2098.  
  2099. TJW: Bugfix for deleting old bsy files
  2100.  
  2101.   There was a problem with networked PCs having slightly different times,
  2102.   giving "negative" ages.
  2103.  
  2104.  
  2105. TJW: Fixed dynamical events
  2106.  
  2107.   A real rescan will be forced before a dynamic event can be terminated (and
  2108.   now it will wait for it to *really* happen, even if outbound is temporarily
  2109.   "locked" by btrescan.bsy).
  2110.  
  2111.  
  2112. TS: (TS110409) fossil detection fixes / enhancements
  2113.  
  2114.  
  2115. TJW: Bad Calls
  2116.  
  2117.   Binkley stored an "int" into "bad call" files (2 bytes for DOS and 4 bytes
  2118.   for OS/2) what may have lead to problems when mixing DOS and OS/2 versions
  2119.   using the same outbound. Now 4 byte "long" values are used for both versions.
  2120.  
  2121.  
  2122. TJW: Fixed cosmetical bug with missing blank in IPC file
  2123.  
  2124.  
  2125. TJW: Fixed "powerdialing of a node"
  2126.  
  2127.   BT-XE should honour now your A=xx event setting
  2128.  
  2129.  
  2130. TJW: Fixed cost restriction bug with sized requests
  2131.  
  2132.  
  2133. TS: 2 diffs with display stuff
  2134.  
  2135.  
  2136. CFS: OS/2 only: Replaced DTR raise/lower code.
  2137.  
  2138.   It now works with CFOS's -kx switch.
  2139.  
  2140.  
  2141. TJW: Fixed bug in Send_WaZoo routine
  2142.  
  2143.   That lead to problems with file request at FD/IM systems (or maybe also with
  2144.   other ZedZap mailers) if the file request *.REQ file was sent without other
  2145.   mails or files.
  2146.  
  2147.  
  2148. TJW: Fixed EMSI capability bug
  2149.  
  2150.   If there was no bidirectional session or no BiDi* or Janus* stuff in config,
  2151.   Binkley said that it is able to do Hydra/Janus although it was NOT. Result:
  2152.   "No common session protocol- fallback to FTS-1" on BT's side, Hydra or Janus
  2153.   on other side.
  2154.  
  2155.  
  2156. TS: DOS version only bugs fixed:
  2157.  
  2158.   - if used without vfossil, Binkley/BT-XE always used only 25 screen rows,
  2159.     regardless of the real number of screen rows available. now BT-XE is
  2160.     able to determine and use the real number of available screen rows
  2161.     without a vfossil being loaded.
  2162.  
  2163.   - if used without a vfossil, the cursor could be seen even if the screen
  2164.     was `blanked'. now the cursor is disabled/enabled exactly as a loaded
  2165.     vfossil would do.
  2166.  
  2167.   - if used without vfossil, only 23 rows where used under certain
  2168.     conditions. hopefully ;-) fixed
  2169.  
  2170.  
  2171. unknown / SIJO / TJW:
  2172.  
  2173.   - there was a problem (access violation because of NULL pointer) if Hydra
  2174.     received [and discarded] a too long packet. Should be fixed.
  2175.  
  2176.  
  2177.  
  2178. New features
  2179. ------------
  2180.  
  2181. CFS: MODEMCID string
  2182.  
  2183.   string=last data coming from the modem before caller-id. If used, caller-id
  2184.   is logged.
  2185.  
  2186.   e.g.:                          MODEMCID ID=
  2187.   for a connect string such as:  CONNECT 64000/ARQ/ID=3782005/EAZ0
  2188.   BT-XE would log:               Got CID: 3782005
  2189.  
  2190.   This keyword is required for the next one.
  2191.  
  2192.  
  2193. CFS: BANNERCID phone banners
  2194.  
  2195.   Sets a custom banner for caller-id calls. * is allowed as wildcard. First
  2196.   match wins:
  2197.  
  2198.   BANNERCID 07492226912951 Hi, Hauke!
  2199.   BANNERCID 0749* Woa! A call from Germany...
  2200.  
  2201.   If no match, the banner specified using BANNER (Tracing your call...) is
  2202.   used.
  2203.  
  2204.  
  2205. CFS: STRINGREP string replacement
  2206.  
  2207.   Replaces a string for any other. Replacement only takes places at screen and
  2208.   log writes. I've written this to change the cryptic cause numbers from CFOS
  2209.   for more appropiate text.
  2210.  
  2211.   e.g.: STRINGREP /CAUSE=34B9 /Out of order
  2212.   so  : NO CARRIER/CAUSE=34B9 becomes NO CARRIER/Out of order
  2213.  
  2214.  
  2215. CFS: New keyword NOHUNDREDTHS per request in the BINKLEY support echo.
  2216.  
  2217.   If used, 1/100s of seconds won't be logged any more.
  2218.  
  2219.  
  2220. TS: C replacement for DOS ASM stuff
  2221.  
  2222.  
  2223. TJW: New, optional event "name" field:
  2224.  
  2225.   You can now specify: Event "Event name up to 32 chars" All 20:00 ...
  2226.   instead of:          Event All 20:00 ...
  2227.  
  2228.   The string will be used in "next event" display and at start of event.
  2229.  
  2230.  
  2231. TJW: Cost vector now may have 32 entries (thanks to german Telekom)
  2232.  
  2233.  
  2234. TJW: Window Titles
  2235.  
  2236.   Changed function for setting OS/2 window title to the more simple and maybe
  2237.   also "more official" function Win16SetTitle
  2238.  
  2239.  
  2240. MR: If a config file could not be found you will get an error message.
  2241.  
  2242.  
  2243. MR: New makefile for Watcom C 10.x for the OS/2 and DOS versions.
  2244.  
  2245.  
  2246. MR: Made some minor changes to be able to compile and use the Watcom exes.
  2247.  
  2248.  
  2249. MR: Increased BINKLEY.BAN buffer to 2K for OS/2
  2250.  
  2251.  
  2252. MR: new xe_user.doc layout
  2253.  
  2254.  
  2255. TS: DOS only: new config statement `NoANSITrash'
  2256.  
  2257.   Using this statement makes only sense with dos versions under certain
  2258.   conditions (see below) and will be simply ignored by the os/2 version.
  2259.  
  2260.   If you use the BT-XE dos version without a vfossil loaded AND without an
  2261.   ansi-driver loaded AND do not intend to redirect screen output to
  2262.   another com-port (e.g to drive an external ansi terminal additionally
  2263.   hooked to your main machine) then you can use the `NoANSITrash' config
  2264.   statement to suppress some some ansi escape sequences which typically
  2265.   will show up on the last screen row and when exiting the mailer.
  2266.  
  2267.   There is no reason to use this config statement if:
  2268.    - you use OS/2
  2269.    - you have either an ansi driver or a vfossil or both installed
  2270.    - you intend to redirect screen output to an ansi terminal hooked to another
  2271.      comport of your machine
  2272.  
  2273.  
  2274. CFS: OS/2 only: new keyword "SIOmode"
  2275.  
  2276.   Uses an alternate DTR raise/lower code that works with CFOS's -kx switch
  2277.   (SIO emulation).
  2278.  
  2279.   SIOmode    | Method to raise / drop DTR
  2280.   -----------+-----------------------------------------------------
  2281.   used       | DosDevIOCtl / ASYNC_SETMODEMCTRL / DTR_ON | DTR_OFF
  2282.   not used   | MaxComm.DLL / ComSetDCB / MODE_DTR_CONTROL
  2283.  
  2284.  
  2285. TS: updated FTSCPROD list in language.txt
  2286.  
  2287.  
  2288.  
  2289.  
  2290. BT 2.60XE/Gamma-XR5
  2291. =-=-=-=-=-=-=-=-=-=
  2292.  
  2293.  
  2294. Bugfixes
  2295. --------
  2296.  
  2297. SM: fixed: while manually polling node, Binkley did not update 'Current
  2298.     Settings' and WindowTitle (IPC_SetStatus).
  2299.  
  2300.  
  2301. RH: fixed changing colour after "connected with <sysopname>"
  2302.  
  2303.  
  2304. RH: fixed mistake in handling of (COM) device names.
  2305.  
  2306.   Now values >9 are possible. Added code to async_os.c to allow use of "Port
  2307.   COMx" statement.
  2308.  
  2309.  
  2310. RH: fixed bug in language code (msgs.h).
  2311.  
  2312.   Now the newsreader and the shells are displayed in unattended help window.
  2313.  
  2314.  
  2315. RH: fixed a serious bug in my "Override" code.
  2316.  
  2317.   The fields after "Nodenumber" are by definition not required and the
  2318.   pointer(s) in my structure is (are) NULL if the field(s) in question is (are)
  2319.   not defined.
  2320.  
  2321.   I forgot to check for NULL in "GetAlt...()" in misc.c and had some exceptions
  2322.   because of that.
  2323.  
  2324.  
  2325. RH: Squish error (could not display pending netmails if squish base) fixed.
  2326.  
  2327.  
  2328. RH: XR4 traps if no "binkley.evt" exists. Fixed.
  2329.  
  2330.  
  2331. RH: hydra chat
  2332.  
  2333.   If "noHydraChat" defined and ALT-C is pressed in hydra and other side has
  2334.   hydra chat available, XR4 traps. Fixed.
  2335.  
  2336.  
  2337. RH: EMSI
  2338.  
  2339.   While implementing smart_bidi, I found and removed a bug in emsi.c that could
  2340.   (and did) lead to that the called side told the caller "agree to zmodem", but
  2341.   in fact switched to hydra. The error was that neither my_capabilities nor
  2342.   remote_capabilities were not masked by the actual protocol but all
  2343.   protocol-bits remained to be set.
  2344.  
  2345.  
  2346. RH: fixed cosmetical bug with binkpipe
  2347.  
  2348.   "Last:" field was wrong.
  2349.  
  2350.  
  2351. RH: fixed cosmetical bug in pending outbound
  2352.  
  2353.   Scroll down scrolled one line too much.
  2354.  
  2355.  
  2356. RH: OS/2 only: moved all functions that need OS/2 PM to a separate DLL.
  2357.  
  2358.   The new code is located in ..\os2_pm. I've made makefiles for VAC and WATCOM,
  2359.   compiled with both and both versions run fine.
  2360.  
  2361.   If you don't have OS/2 PM installed, don't install bink_pm.dll.
  2362.   If you have OS/2 PM installed (standard), put bink_pm.dll in the same
  2363.   directory as BT32.EXE.
  2364.  
  2365.  
  2366. TJW: corrected range check for V7 cost field (solves potential 16Bit problem
  2367.      with cost = -1 / 65535)
  2368.  
  2369.  
  2370. TJW: removed blinking cursor after unfreeze
  2371.  
  2372.  
  2373. TJW: fixed bug in Alt-S (if you gave no path/drive, first letter was
  2374.      duplicated)
  2375.  
  2376.  
  2377. TJW: "Resending ..." corrupted Transfer Status window
  2378.  
  2379.   Omitted displaying this message and changed status log entry from > to !
  2380.  
  2381.  
  2382. TJW: fixed bug in receive_exit
  2383.  
  2384.   Any stuff to do IN binkley has to be done, before any errorlevel exit may
  2385.   happen (mail flag, aftermail etc.).
  2386.  
  2387.  
  2388. TJW: fixed misc. "cosmetical" bugs in Zmodem display routines
  2389.  
  2390.  
  2391. TJW: fixed wrong blanks (instead of leading '0's) in cost.log
  2392.  
  2393.  
  2394. SM: fixed "Are you sure ?"-bug in terminal (answer was case-sensitive)
  2395.  
  2396.  
  2397. SM: fixed 'outbound reading bug' in mailovly.c
  2398.  
  2399.  
  2400. SM: bink_pm.dll caused exception in _crt_term() when more than one instance of
  2401.     binkleyterm was loaded and exited in the same order they were started.
  2402.  
  2403.  
  2404. TS: misc fixes only of concearn for the emx compiler
  2405.  
  2406.  
  2407. TJW: Made "ReadLog" feature more safe.
  2408.  
  2409.   Shouldn't crash any more if input log format is invalid (e.g. if Maximus
  2410.   crashed)
  2411.  
  2412.  
  2413. TJW: sized requests were broken
  2414.  
  2415.   fixed by removing mailovly.c::netsize() and adapting cache.c::netsize for
  2416.   cached/uncached operation.
  2417.  
  2418.  
  2419. TJW: fixed RC* <-> RC$ confusion
  2420.  
  2421.  
  2422. TJW: if there is mail for a "Hold"-listed node, Binkley showed strange
  2423.      behaviour ("NO DIALTONE ..."). Temporary fix.
  2424.  
  2425.  
  2426. TJW: fixed EMSI.C::EncodeEmsiHeader (removed superfluous strtok call) this bug
  2427.      caused outgoing calls NOT to do ZedZap (e.g.)
  2428.  
  2429.  
  2430. MR: Bugfix: allocated memory for chat windows will now be freed
  2431.  
  2432.  
  2433. TJW: hopefully fixed "freezing bug" of animation in top left corner
  2434.  
  2435.  
  2436. TS: fixed `ErrLevelShell' bug present in DOS versions
  2437.  
  2438.  
  2439. MR: fixed CacheHold bug
  2440.  
  2441.  
  2442. TJW: fixed bug with dupe pkt names
  2443.  
  2444.   This happened if multiple pkts are sent within the same second (happened
  2445.   rarely, but happened ;-)
  2446.  
  2447.  
  2448. TJW: fixed bug in EMSI.
  2449.  
  2450.   As a consequence of this fix, password failure msgs are logged earlier in
  2451.   EMSI processing (before System:, Aka:, Uses: etc. is logged).
  2452.  
  2453.   Thanks to Stephan Jaensch and Philip Richter for discovering this bug.
  2454.  
  2455.  
  2456. MR: Made answering more save.
  2457.  
  2458.  
  2459. MR: Readdressing to same address could end in an endless loop, fixed.
  2460.  
  2461.  
  2462.  
  2463. New features
  2464. ------------
  2465.  
  2466. RH: "EMSILog <filename>"
  2467.  
  2468.   Lets you log your sent and received EMSI string in a file. This is extremely
  2469.   useful in case you have problems with EMSI. Assume you get a password
  2470.   error: do you really KNOW wich password you ACTUALLY have sent? Log it, and
  2471.   you'll see it. Assume you don't get a hydra connect: are you absolutely
  2472.   sure that you told the other system about your capability and are you
  2473.   absolutely sure, that the other system told you about to use hydra? Log it,
  2474.   and you'll see it.
  2475.  
  2476.  
  2477. RH: "RedialTime <seconds>"
  2478.  
  2479.   Time between redial attempts when you are polling (only then!). This will
  2480.   give you a better chance to get a connect without increasing "polltries" to
  2481.   infinity. Works on BUSY, ERROR and timeouts ("NO CARRIER"). Does not work on
  2482.   NO DIALTONE.
  2483.  
  2484.  
  2485. RH: "AssumeBaud <bpsrate>"
  2486.  
  2487.   In case the modem reports "CONNECT" or "CONNECT 300" binkley will use the
  2488.   rate defined with assumebaud. Important for calculations of connect/frequest
  2489.   times.
  2490.  
  2491.  
  2492. RH: "BitType"
  2493.  
  2494.   Default in binkley is "TypeExact".
  2495.  
  2496.   This means, that a nodelist line with both analog and ISDN capability can be
  2497.   separated only with acrobatic efforts. If you include "BitType" in your
  2498.   binkley.cfg Binkley will scan each modemflag separately and will use the
  2499.   first matching predial string. If you don't configure a "ModemTrans" predial
  2500.   string, then the string after "Predial" (if any) is used (and this may lead
  2501.   to dial attempts even if not wanted as of ISDN<-->modems.
  2502.  
  2503.   Just look at my example:
  2504.  
  2505.   [fastlst.cfg]
  2506.   TypeDef HST      1
  2507.   TypeDef PEP      2
  2508.   TypeDef V32      4
  2509.   TypeDef V32B     8
  2510.   TypeDef VFC     16
  2511.   TypeDef X75     32
  2512.   TypeDef V110L   64
  2513.   TypeDef V110H  128
  2514.   TypeDef UX75    32
  2515.   TypeDef UV110L  64
  2516.   TypeDef UV110H 128
  2517.  
  2518.   Now let's look at binkley.cfg. Please note the sequence of the entries!
  2519.  
  2520.   [binkley.cfg]
  2521.   BitType
  2522.   ModemType 32      /  /X75
  2523.   ModemType 64      /  /V110L
  2524.   ModemType 128     /  /V110H
  2525.   Modemtype 31   ATD/  /MODEM
  2526.  
  2527.   RESULT: Your line will NOT call any ISDN node, even if (s)he has any modem
  2528.           flag set!
  2529.  
  2530.   [binkley.cfg]
  2531.   BitType
  2532.   ModemType 32   ATD/   /X75
  2533.   ModemType 64   ATD/   /V110L
  2534.   ModemType 128  ATD/   /V110H
  2535.   Modemtype 31      /   /MODEM
  2536.  
  2537.   RESULT: Your line will ONLY call ISDN nodes, even if they have a modem flag
  2538.           set. It will never call a "modem only" node
  2539.  
  2540.   [binkley.cfg]
  2541.   BitType
  2542.   ModemType 32   ATD/     /X75
  2543.   ModemType 64   ATD/     /V110L
  2544.   ModemType 128  ATD/     /V110H
  2545.   Modemtype 31   ATK99D/  /MODEM
  2546.  
  2547.   RESULT: Your line will call both ISDN and modem nodes, with different dial
  2548.           strings. Preferred is "ISDN", but "modem" is possible
  2549.  
  2550.  
  2551. RH: "ModemTrans"
  2552.  
  2553.   Old style: "ModemTrans <flag> <prefix>/<suffix>"
  2554.   New style: "ModemTrans <flag> <prefix>/<suffix> /<name of flag>"
  2555.  
  2556.   There are no changes for your current config, but if you like to see the
  2557.   nodelist info in the zoomed outbound window (ALT-I), you would like to see
  2558.   the modem flags of the node in "ascii".
  2559.  
  2560.   A line "ModemTrans 32 ATD/ /X75" would allow to display a modem of type 32 as
  2561.   "X75". The display is "BitType" aware.
  2562.  
  2563.  
  2564. RH: "NoErrDelay"
  2565.  
  2566.   Binkley XE has the feature to wait 5 seconds after each error found in any
  2567.   config file. With this keyword you can switch this off.
  2568.  
  2569.  
  2570. RH: "BinkDir"
  2571.  
  2572.   If a directory needed for binkley to run is not found: create it. This works
  2573.   for all directories that are given in binkley.cfg. It works for the logfile's
  2574.   directory, too.
  2575.  
  2576.  
  2577. RH: "ShowDomains"
  2578.  
  2579.   Binkley 2.60 and all XEs did NOT show the domains of outbound mail in their
  2580.   outbound window. If you like it or if you need displaying of domains: include
  2581.   this keyword in your config.
  2582.  
  2583.   Default is: no domains in "Pending Outbound"
  2584.  
  2585.   Note about domains:
  2586.  
  2587.   Binkley is fully capable to handle 5D addresses, but you have to know how it
  2588.   is done ;)
  2589.  
  2590.   Assume there is mail for a node 256:256/256 (MXBBSNet). Where is his
  2591.   outbound mail searched for?
  2592.  
  2593.   Binkley 2.60 searches this mail in \MXBBSNet.100.
  2594.  
  2595.   If you are using a 5D setup (this is: you are using domains) then your setup
  2596.   has to be like this:
  2597.  
  2598.   ;domain       domainname   abbreviation  name_of_nodelist
  2599.   Domain        MXBBsNet     MXBBsNet      nodex
  2600.  
  2601.   ;domainkludge zone         outbound_directory_PRE(!!)_name
  2602.   DomainKludge  256          MXBBsNet
  2603.  
  2604.   With these lines you determined, that "MXBBSNet.100" is the outbound
  2605.   directory for all nodes in zone 256 (256 is hex 100, this is where this
  2606.   ".100" comes from).
  2607.  
  2608.  
  2609. RH: "BiDiOK", "JanusOK"
  2610.  
  2611.   If either of them is set, binkley will allow janus/hydra connects even in
  2612.   case the modem doesn't tell a "reliable" string. This only happens, however,
  2613.   if the actual "baudrate" is equal or less then "BiDiBaud" resp. "JanusBaud".
  2614.  
  2615.   Difference:
  2616.  
  2617.   formerly: BiDiOk   /ARQ
  2618.             BiDiBaud 9600
  2619.  
  2620.   -> Only if modem reports "CONNECT <rate<9600>/ARQ" hydra/janus will be
  2621.   enabled.
  2622.  
  2623.   now:      BiDiOk
  2624.             BiDiBaud 9600
  2625.  
  2626.   -> If modem reports "CONNECT <rate<9600>/<anything>" hydra/janus will be
  2627.   enabled, don't care about "<anything>"
  2628.  
  2629.  
  2630. RH: "Port <name>"
  2631.  
  2632.   Normally this would be "Port <number of comport>", as in "Port 2". From now
  2633.   on you can write "Port COM1" as well as "Port 1", meaning that you can give
  2634.   the device name of the port to use. This has, at the moment, no effect beyond
  2635.   the fact that you can play with it. It will, however, be extended to use any
  2636.   device that can handle serial communication.
  2637.  
  2638.  
  2639. RH: "PasswordFile <path+filename>"
  2640.  
  2641.   Instead of recompiling your nodelist again and again if you have password
  2642.   problems or a new password protected link, you can from now on tell binkley
  2643.   where it can search for YOUR passwords directly.
  2644.  
  2645.   The file has to have the same format as a "fastlist" (tm) password file, i.e.
  2646.   a line has to look like:
  2647.  
  2648.   "PASSWORD zone:net/node.point@domain password"
  2649.  
  2650.   Example:
  2651.  
  2652.      Password 2:2476/7 passed ;comment        valid, password is "passed"
  2653.      Password 2:2476/* passed                 invalid, no wildcards allowed
  2654.      Password 2:2476/7@fidonet passed         valid, defines password "passed"
  2655.                                               only for a node "2:2476/7" with
  2656.                                               the CORRECT domain ("fidonet"). A
  2657.                                               node 2:2476/7@anynet would get a
  2658.                                               password failure.
  2659.  
  2660.   This is an extension of password protection, 'cause with passwords only in
  2661.   compiled nodelists binkley can normally not distinguish between a password
  2662.   for "2:2476/7@anynet" and "2:2476/7@fidonet".
  2663.  
  2664.   Note:  The password directly read from this file overrides any password
  2665.   -----  in your compiled nodelist(s)! This feature IS intented to change
  2666.          passwords on-the-fly without recompiling. The file is always read
  2667.          at runtime when a password has to be verified. You don't need to
  2668.          restart Binkley to be aware of any updates to that file.
  2669.  
  2670.  
  2671. RH: "NoFancyStrings"
  2672.  
  2673.   I really don't like that binkley changes strings. Sometimes it's ok, but most
  2674.   times it is not, imho.
  2675.  
  2676.   Don't use this keyword and nothing will change.
  2677.  
  2678.  
  2679. RH: "ForcedRescan"
  2680.  
  2681.   I've had the situation that one of my 2 lines crashed and left a BTRESCAN.BSY
  2682.   file in the flags directory. When it started again it produced really a lot
  2683.   of zero byte files in my \deleted\ directory (with OS/2 you can redirect all
  2684.   deleted files to a directory of your wish).
  2685.  
  2686.   Therefore i included this keyword: If you include it, too, then Binkley will
  2687.   not create nor care about BTRESCAN.BSY and BTRESCAN.DMP but perform a real
  2688.   rescan when it is scheduled.
  2689.  
  2690.  
  2691. RH: "HoldAfterBadConnect <1...65535>"
  2692.  
  2693.   Have you ever had this problem:
  2694.  
  2695.   You have a session password with someone. This person has included it, you
  2696.   have. But no session will be established because your friend uses some brand
  2697.   new beta mailer with some little bugs?? I've had this situation. I will never
  2698.   have it, cause this is very expensive: Binkley calls, all is technically ok,
  2699.   the other side hangs up. No mail has been transferred, that's why binkley
  2700.   calls again. And again. And again.
  2701.  
  2702.   After <number> calls HoldAfterBadConnect will flag this nodes outgoing mail
  2703.   as "has already made 65535 attempts to send".
  2704.  
  2705.   This is something harder then "HOLD", cause other programs (Squish f.e.)
  2706.   would probably set the status of "HOLD" mail back to "NORMAL". No program
  2707.   except binkley itself will, however, decrease the count of 65535 or delete
  2708.   the respectice counter file.
  2709.  
  2710.  
  2711. RH: "ShowPassword"
  2712.  
  2713.   Allows displaying of the password in the information window. Maybe you don't
  2714.   like others to be allowed to press "alt-i" and view your session-pws. If you
  2715.   don't care: include this keyword.
  2716.  
  2717.  
  2718. RH: "NoEMSI"
  2719.     "NoWaZOO"
  2720.     "NoHydra"
  2721.     "NoJanus"
  2722.     "FTS-0001"
  2723.     "NoRequests"
  2724.     "NoDietIFNA"
  2725.     "NoZedZap"
  2726.     "NoSeaLink"
  2727.     "ReqOnUs"
  2728.     "NoPickup"
  2729.     "NoWildcards"    this is a new statement
  2730.  
  2731.   Now works either as known (this means: it is a global setting) or on a
  2732.   per-node base. If you put nothing behind this verb, it works "globally", else
  2733.   it works "on this node only". If you mix both, let's say "NoEMSI" and "NoEMSI
  2734.   1:1/0", then it works globally, too, of course.
  2735.  
  2736.   New Syntax:
  2737.  
  2738.   FTS-0001    <nodenumber>: is the same as NoEMSI plus NoWaZoo plus NoSeaLink.
  2739.                             and results in XModem connects.
  2740.   NoEMSI      <nodenumber>: no EMSI on calls to "nodenumber".
  2741.   NoWazoo     <nodenumber>: no WaZoo on calls to/from "nodenumber".
  2742.   NoHydra     <nodenumber>: no Hydra on calls to/from "nodenumber".
  2743.   NoJanus     <nodenumber>: no Janus on calls to/from "nodenumber"
  2744.   NoZedZap    <nodenumber>: no ZedZap on calls to/from "nodenumber"
  2745.   NoSeaLink   <nodenumber>: no Sealink on calls to/from "nodenumber"
  2746.   NoDietIFNA  <nodenumber>: no FTS-1 sessions on calls to "nodenumber"
  2747.   NoPickup    <nodenumber>: No Pickup FROM "nodenumber"
  2748.   NoReqests   <nodenumber>: No Requests FROM "nodenumber"
  2749.   ReqOnUs     <nodenumber>: Allow "nodenumber" to frequest even if YOU called.
  2750.   NoHydraChat <nodenumber>: no hydrachats on calls to/from "nodenumber"
  2751.   NoWildcards <nodenumber>: Reject requests containing wildcards (* and ?).
  2752.  
  2753.   Default:   As in earlier times. If you don't change your config, you have no
  2754.   --------   changes in binkley's behaviour.
  2755.  
  2756.   Exception: As in earlier times: if no common protocol exists, FTS-0001 will
  2757.   ---------- be choosen for INCOMING calls. You can, however, deny FTS-0001
  2758.              sessions on OUTGOING calls with "NoDietIFNA".
  2759.  
  2760.   Without "nodenumber" the changed behaviour works on both in- and outgoing
  2761.   calls. With "nodenumber" it depends on *when* the nodenumber in fact is
  2762.   known.
  2763.  
  2764.   On outgoing calls it is always known, but on incoming calls you first have to
  2765.   do (f.e.) EMSI, and after EMSI has been successful you will know that the
  2766.   nodenumber is a "NoEmsi" number.
  2767.  
  2768.   ALT-E in zoomed outbound lets you toggle the flags at runtime.
  2769.  
  2770.               That state will be forgotten if binkley terminates!
  2771.  
  2772.  
  2773. RH: "NoFilter"
  2774.  
  2775.   Binkley in the past required a "filter string" (fe. "NoFilter /ARQ"). This
  2776.   has been changed to not filter AT ALL if no string is present. "NoFilter"
  2777.   means: no filtering.
  2778.  
  2779.  
  2780. RH: Changed "current settings" window
  2781.  
  2782.   It now doesn't show "M'Task" but the current DTE rate ("modem baudrate")
  2783.   instead. With ISDN and 115200 bps there has been not enough space behind "COM
  2784.   1". The "Status"-line now *shows* the status: "Waiting", "Init" but also
  2785.   "Hydra", "Janus", "FTSC" and so on.
  2786.  
  2787.  
  2788. RH: Changed size and position of the three windows "status", "recent", and
  2789.     "outbound". The outbound window now is 2 columns more in size.
  2790.  
  2791.  
  2792. RH: "AfterMail" with OS/2
  2793.  
  2794.   Old Style: "AfterMail <any string>"
  2795.   New Style: "AfterMail [#]<any string>"
  2796.  
  2797.   I changed this to start a detached session of "aftermail" program. The
  2798.   session is in VIO-mode, independent and gets the starting binkleys
  2799.   environment. It will be started minimized and invisible. Don't forget to put
  2800.   an EXIT statement at the end if CMD-files!
  2801.  
  2802.   To enable detached sessions you have
  2803.  
  2804.    1) to add the "#" char (this signals your intentions)
  2805.  
  2806.    2) to change the command this way:
  2807.  
  2808.         AfterMail #<os2-path>\CMD.EXE /C <script-path>\Toss.cmd
  2809.  
  2810.       because CMD.EXE must be started to execute "toss.cmd".
  2811.  
  2812.   Example: AfterMail #c:\os2\cmd.exe /c f:\binkley\toss.cmd
  2813.  
  2814.   If you don't change your config, nothing changes. The char "# has is removed
  2815.   if you don't run OS/2.
  2816.  
  2817.  
  2818. RH: Changed behaviour so that a nodes mail is handled as if it were mail of an
  2819.     "unlisted system" if that nodes modem is undialable.
  2820.  
  2821.  
  2822. RH: Removed the limitation of number of allowed AKAs ("Address" keyword).
  2823.  
  2824.   The limitation of recognizing the remotes AKAs is still left, though.
  2825.  
  2826.  
  2827. RH: Added code to allow an EMSI string up to 64kB (EMSI limit).
  2828.  
  2829.   In normal systems this code will have no function, but in systems with many
  2830.   many AKAs (>100) it will work.
  2831.  
  2832.  
  2833. RH: ALT-L in unattended mode
  2834.  
  2835.   Toggles between loglevel 6 (debug mode) and configured loglevel.
  2836.  
  2837.  
  2838. RH: Node Information
  2839.  
  2840.   ALT-I in zoomed outbound and the "Send" and "Get" window, also in nodelist
  2841.   lookup brings information about the currently tagged node. This led to an
  2842.   extension of the keyword Modemtrans.
  2843.  
  2844.  
  2845. RH: Loglevels
  2846.  
  2847.   I extended it to up to 7 (formerly: 6).
  2848.  
  2849.   Up to now LogLevel 7 is necessary to log the states of the statemachine to
  2850.   binkley.log. The corresponding char is '&'. See StateTbl.c and Misc.c. If you
  2851.   are really debugging the state machine: set your loglevel to 7.
  2852.  
  2853.   Allowed Loglevel 0. Loglevel 0 means, that only strings staring with a '!'
  2854.   will be logged to the logfile.
  2855.  
  2856.  
  2857. RH: "Override <address> <phone> <modemflag[,modemflag]> <fidoflag[,fidoflag]>"
  2858.  
  2859.   Allows to override any nodelist entry. Everything after a ";" or "%" is cut!
  2860.  
  2861.   You can add nodes and points, that are not in the nodelist and change the
  2862.   settings for listed nodes and points.
  2863.  
  2864.   The <address> must be at least 3D (Zone:Net/Node). If you don't fill in the
  2865.   address completely, the line is skipped.
  2866.  
  2867.   The <phone> field must contain a "dialable" number, this is: the pure number
  2868.   you have to dial. No prefixes for local calls, f.e.
  2869.  
  2870.   The <modemflag> field
  2871.    * requires configuration of "ModemTrans" statements
  2872.    * "Override" must be included *after* "ModemTrans".
  2873.  
  2874.   You are completely free in the names of the modemflags, but they must be the
  2875.   same as in the third (new) field of "ModemTrans".
  2876.  
  2877.   You can insert more then 1 string by putting a comma after each string.
  2878.  
  2879.   The <fidoflag> field allows the following strings:
  2880.    CM : this means CM (continious mail) as defined in FTS-5
  2881.    HUB: this node is a hub
  2882.    RC : this node is a region coordinator
  2883.  
  2884.   The flags for "Host", "Point" and "ZC" are set by binkley internally.
  2885.  
  2886.   You can insert more then 1 string by putting a comma after each string.
  2887.  
  2888.   Instead of filling in the fields "phone" and/or "modemflag" you can insert a
  2889.   dash ("-") as a placeholder if another field follows. Then Binkley will
  2890.   ignore the "dashed" fields and will use the data from the nodelist.
  2891.  
  2892.   Empty fields are allowed only from behind to the front.
  2893.  
  2894.   Examples:
  2895.  
  2896.     ModemTrans  31    / /Modem    ; links type 31 with string "Modem"
  2897.     ModemTrans  32 ATD/ /X75      ; links type 32 with string "X75"
  2898.     ModemTrans  64 ATD/ /V110L    ; links type 64 with string "V110L"
  2899.     ModemTrans 128 ATD/ /V110H    ; links type 128 with .. you know it!
  2900.  
  2901.     Override 1:-1/-1.0@fidonet   110 ; don't copy this line! #(
  2902.     Override 1:901/499.0@fidonet 0054-1-8765432 X75,V32B
  2903.     Override 1:901/499.0@fidonet 0054-1-8765432 X75,V32B CM
  2904.     Override 1:901/400.0@fidonet 0054-1-8765432 - CM,HUB
  2905.     Override 1:901/499.0@fidonet - X75
  2906.     Override 1:901/499.7@fidonet - - CM,POINT
  2907.                                 ^^^^^^^^^^^^^^^^^^^^ note the dashes!
  2908.  
  2909.  
  2910. RH: "PipeTo <remote computer name>"
  2911.  
  2912.   Binkley OS/2 writes to a pipe named "\PIPE\BINKPIPE.???" with "???" being the
  2913.   decimal tasknumber. This is NOT intended to serve a "Snoop" program, but to
  2914.   transmit the complete screen to the pipe server "binkpipe.exe" (see below).
  2915.  
  2916.   If you insert this keyword, be sure only to give the name of the remote
  2917.   computer. Do NOT give the pipe's name, 'cause this is pre-defined and must
  2918.   not be given!
  2919.  
  2920.   Example:
  2921.  
  2922.   [%Task%==1]
  2923.   PipeTo \\pentium
  2924.  
  2925.   [%Task%==2]
  2926.   PipeTo \\notebook
  2927.  
  2928.   [%Task%==3]
  2929.   ;no "PipeTo" statement
  2930.  
  2931.   Binkley (task 1), will write "\\pentium\pipe\binkpipe.001", and
  2932.   Binkley (task 2), will write "\\notebook\pipe\binkpipe.002".
  2933.   Binkley (task 3), will write "\pipe\binkpipe.003" if and only if binkpipe.exe
  2934.   is running on the same computer as binkley/task 3 is running.
  2935.  
  2936.   Note:  If you make use of this statement, then be aware that if the
  2937.   -----  remote computer is switched off, binkley may slow down hardly!
  2938.  
  2939.  
  2940. RH: "binkpipe.exe" (OS/2 only, Freeware under the binkley license agreement)
  2941.  
  2942.   This is the serverside of said pipe.
  2943.  
  2944.   It runs under OS/2 PM and displays binkley's screen. It must be called with
  2945.   "tasknumber" at the commandline.
  2946.  
  2947.   Example:
  2948.  
  2949.   binkpipe         installs binkpipe watching for binkley/task 1
  2950.   binkpipe 1       installs binkpipe watching for binkley/task 1
  2951.   binkpipe 2       installs binkpipe watching for binkley/task 2
  2952.  
  2953.   If you start binkpipe.exe after binkley, you will only see the screen
  2954.   updates, not the complete screen. This is because it only prints what binkley
  2955.   actually writes.
  2956.  
  2957.  
  2958. RH: "DelBadCall"
  2959.  
  2960.   Binkley remembers bad connects in his "netnode.$$?" files. If too many bad
  2961.   connects are remembered, binkley will never call this system again. You, as
  2962.   the sysop, have to delete this file manually. If you insert "DelBadCall" in
  2963.   binkley.cfg then binkley will act as follows:
  2964.  
  2965.   On outbound calls nothing changes: after x tries the remote system will be
  2966.   remembered as "undialable" and will not be called again.
  2967.  
  2968.   On inbound sessions, however, it will always check if there exists a
  2969.   "netnode.$$?" file for the called system and delete it.
  2970.  
  2971.   Where is the beef?
  2972.  
  2973.   Without this feature, your binkley would not have called the remote system
  2974.   even if the system becomes "living" again (proofed by his call to your
  2975.   system). With this feature it will assume that the problem on the remote side
  2976.   has been solved and will try again to connect.
  2977.  
  2978.   If your leave the "DelBadCall" statement away, nothing will change.
  2979.  
  2980.  
  2981. RH: BBSwelcome
  2982.  
  2983.   Changed it from static data to a pointer to char. The needed memory will be
  2984.   requestet and BBSwelcome set at runtime.
  2985.  
  2986.  
  2987. RH: binkley.evt
  2988.  
  2989.   Old behaviour: request 32KB and load up to 255 events there.
  2990.  
  2991.   New behaviour:
  2992.     request 32KB.
  2993.     check for binkley.S??
  2994.     if it exists:
  2995.        request as much memory you need to load binkley.s??
  2996.        success: free the old 32KB.
  2997.                 load binkley.s??
  2998.                 done.
  2999.        failure: recompile binkley.evt to binkley.s??
  3000.     else
  3001.        continue with old code.
  3002.  
  3003.  
  3004. RH: "EventFile <drive:\path\filename>"
  3005.  
  3006.   If you omit this, binkley will read its events from "binkley.evt", this is
  3007.   the normal behaviour. This normal behaviour means: it is not depending on
  3008.   TASK variables, all tasks read the same file "binkley.evt", and that file has
  3009.   to exist in binkleys start directory. This new statement allows (but doesn't
  3010.   require) a path, however. If you ommit the path, the eventfile will be
  3011.   searched in binkleys directory.
  3012.  
  3013.   I've included in my binkley-configuration:
  3014.  
  3015.   eventfile c:\binkley\cfg\binkley.event.0%task%
  3016.  
  3017.   So task 1 reads "binkley.event.01" from path c:\binkley\cfg\ whereas task 2
  3018.   reads "binkley.event.02".
  3019.  
  3020.   Since task 2 is my modem line, that should always "do nothing but wait +
  3021.   check if task 1 is living", I've a very small eventfile for task 2, but a
  3022.   normal one for task 1.
  3023.  
  3024.  
  3025. RH: "Event"
  3026.  
  3027.   Added "Y" and "P"
  3028.  
  3029.   Event All 00:00 00:01 Y   ; "no sound" between 00:00 and 00:01
  3030.   Event All 00:00 00:01 P   ; "no pickup" between 00:00 and 00:01
  3031.  
  3032.   Y and P can be mixed with every other flag, of course. NoPickup <nodenumber>
  3033.   and the "no pickup event" work as "Do not pickup if either NoPickup is set or
  3034.   this event does not allow pickups".
  3035.  
  3036.  
  3037. RH: Modem-Init
  3038.  
  3039.   After end of session binkley needed up to 10 seconds on my side before it
  3040.   reinitialized the modem (and hung up).
  3041.  
  3042.   I changed it to send a modem-init immediately after a session is in fact
  3043.   finished, this means: no more mail to send and/or to receive. After this is
  3044.   done binkley may do whatever it likes to: write a costlog, etc, but i don't
  3045.   wanna charge for this time.
  3046.  
  3047.  
  3048. RH: Borland C 3.1 for DOS
  3049.  
  3050.   Made it compilable and running with BC 3.1 (not so much work)
  3051.  
  3052.  
  3053. RH: Event A=x
  3054.  
  3055.   The possible value for "A=x" has been documented as 0..1800. This maximum of
  3056.   1800 would result in 180,000 1/100 secs (30 minutes). A value of 180,000
  3057.   doesn't fit in a 16 bit integer, however. Therefore I changed binkley to
  3058.   accept only values between 0 and 655.
  3059.  
  3060.  
  3061. SM: "async_os.c"
  3062.  
  3063.   32 bit comm routines are now included with some bugfixes. comTXBlockTimeout()
  3064.   is now multithreaded and com_getbuf() now uses the receive-buffer much
  3065.   better.
  3066.  
  3067.  
  3068. SM: snserver.dll is not necessary anymore
  3069.  
  3070.  
  3071. SM: AfterCall
  3072.  
  3073.   If 'AfterCall <n> <string>' is being used and n>0, Binkley sends <string>
  3074.   between 'PreInit' and 'Init'.
  3075.  
  3076.  
  3077. SM: new config statement 'SharePort'
  3078.  
  3079.   If 'SharePort' is specified and the (internal) 32 bit com-routines are used,
  3080.   binkley opens the com-port as OPEN_SHARE_DENYNONE. This enables binkley to
  3081.   share the com-port with a MDOS - BBS (via vfd.sys or vcfos.sys).
  3082.  
  3083.  
  3084. SM: new config statement 'ModemRing RINGING' replaces 'ModemIgnore RINGING'.
  3085.  
  3086.  
  3087. RH: status field of outbound window
  3088.  
  3089.   Added '?' for status field of outbound window, meaning "undialable system".
  3090.   The message "don't know.." is now displayed only in debug mode.
  3091.  
  3092.  
  3093. RH: session startup
  3094.  
  3095.   Increased speed for session startup by 3 seconds (from formerly 10 to now 7).
  3096.  
  3097.  
  3098. RH: enabled debug to file (formerly "btpe_debug") in async_os.c.
  3099.  
  3100.   If you set the environment variable "BINKDBG=<path+filename>" you'll get a
  3101.   logfile of your com-transmission.
  3102.  
  3103.  
  3104. RH: Removed "NoMNPFilter".
  3105.  
  3106.   See note above about "NoFilter".
  3107.  
  3108.  
  3109. RH: missing in the 2.60 doc:
  3110.  
  3111.   Function Requests are possible if you add a line of that format
  3112.  
  3113.    $<freq-magic> [!<password>] <params,...> %04x %04x %04x
  3114.  
  3115.   To your "Okfiles"-list. This is a very useful and powerful feature, that i
  3116.   lately re-enabled ;)
  3117.  
  3118.   The format of the last three (and required!) params can be choosen at will,
  3119.   but they should exist if you don't like the risk of a hang. They represent
  3120.   the callers addess' "Node", "Net" and "Point".
  3121.  
  3122.   The following line in OKFILES.TXT:
  3123.  
  3124.   $GET_BT32 C:\OS2\CMD.EXE /C c:\zip.cmd  bt32    %04x    %04x    %04x
  3125.   -magic--- ----------command----------- -para1- -para2- -para3- -para4-
  3126.  
  3127.   will invoke this OS/2-Script if a caller frequests "GET_BT32":
  3128.  
  3129.   +----------------------------------------------+----------------------
  3130.   |@SETLOCAL                                     |set some local params
  3131.   |SET BINKLEY=C:\BINKLEY\                       |
  3132.   |SET  SOURCE=C:\BINKLEY\BIN                    |ZIP should be in the PATH
  3133.   |SET     OUT=C:\BINKLEY\OUTBOUND               |
  3134.   |                                              +----------------------
  3135.   |ZIP %OUT%\%1.ZIP %SOURCE%\%1.EXE              |perform ZIP
  3136.   |                                              +----------------------
  3137.   |IF ".%4"==".0000" GOTO NODE                   |if point is 0000, then
  3138.   |                                              |the caller is a node else
  3139.   |MD   %OUT\%2%3.PNT                            |make point directory and
  3140.   |ECHO %OUT%\%1.ZIP>%OUT%\%2%3.PNT\0000%4.QLO   |create a QLO-file with the
  3141.   |ECHO           .>>%OUT%\%2%3.PNT\0000%4.QLO   |zipped filename
  3142.   |EXIT                                          +----------------------
  3143.   |                                              |
  3144.   |:NODE                                         |if it is a node, then do
  3145.   |ECHO %OUT%\%1.ZIP>%OUT%\%2%3.QLO              |do the same for the node
  3146.   |ECHO           .>>%OUT%\%2%3.QLO              |this line makes a
  3147.   |EXIT                                          |"newline" only.
  3148.   +----------------------------------------------+----------------------
  3149.  
  3150.  
  3151. RH: "Processing node ...."
  3152.  
  3153.   Removed that bothering "Processing node ...." from unattended modes status
  3154.   lines. Instead i changed it so, that the dial message looks like:
  3155.  
  3156.    :12:34:45 BINK Dialing 0721821350  (2:2476/7@fidonet -- systemname)
  3157.  
  3158.   That way binkley is completely quiet (if not in debug mode) if the other
  3159.   nodes modem is "undialable".
  3160.  
  3161.  
  3162. RH: xmit_set()
  3163.  
  3164.   Rearranged xmit_set() and added the possiblity of a 'M H' event definition.
  3165.   'M H' will lead to C-mail (CUT and CLO) to non-CM nodes been sent without
  3166.   regarding the costs. Other non-CM mail (DUT and OUT) will be sent only if the
  3167.   costs allow it.
  3168.  
  3169.  
  3170. RH: event flag L
  3171.  
  3172.   Added code to not send mail in case you defined an event with "L=xx", but the
  3173.   assumed cost to transfer the stuff is not EQUAL xx. Formerly you could define
  3174.   L=999 or L<1000, it was exactly the same: all mail was sent if the cost has
  3175.   been assumed to be "less then 1000". But if i configure an event with exact
  3176.   costs, i expect binkley to do that exactly as i configured it: if "L=999" is
  3177.   defined, it shall not dial if cost is 998 or 1000 or even 0. In these cases i
  3178.   would have written "L<1000".
  3179.  
  3180.  
  3181. RH: "HoldAreaNameMunge"
  3182.  
  3183.   Changed "HoldAreaNameMunge" to return a directory name parallel to our "Hold"
  3184.   directory if the remote address contains domains we have not defined (where
  3185.   we have no "abbreviations" for).
  3186.  
  3187.   Formerly all *.BSY flags were created in the parent directory of our "Hold"
  3188.   directory. If the "hold" directory was "\binkley\outbound", then all unknown
  3189.   domains led to \binkley\*.BSY flags.
  3190.  
  3191.   Now they lead to \binkley\outbound.???\*.BSY, where ??? is the zone number
  3192.   (if not "nozones" defined in binkley.cfg).
  3193.  
  3194.   OLD:
  3195.  
  3196.    Setting flag file for 2:2476/8@fidonet
  3197.    MakeDir: Attempting to create \Binkley\Outbound
  3198.    Create flag file \Binkley\Outbound\09ac0008.BSY.
  3199.  
  3200.    Setting flag file for 999:4711/0.815@lachdoch.net
  3201.    MakeDir: Attempting to create \Binkley
  3202.    MakeDir: Attempting to create \Binkley\12670000.PNT
  3203.    Create flag file \Binkley\12670000.PNT\0000032f.BSY.
  3204.  
  3205.   NEW:
  3206.  
  3207.    Setting flag file for 2:2476/8@fidonet
  3208.    MakeDir: Attempting to create \Binkley\Outbound
  3209.    Create flag file \Binkley\Outbound\09ac0008.BSY.
  3210.  
  3211.    Setting flag file for 999:4711/0.815@lachdoch.net
  3212.    MakeDir: Attempting to create \Binkley\Outbound.3e7
  3213.    MakeDir: Attempting to create \Binkley\Outbound.3e7\12670000.PNT
  3214.    Create flag file \Binkley\Outbound.3e7\12670000.PNT\0000032f.BSY.
  3215.  
  3216.  
  3217. RH: Since that "junk character from keyboard" message is removed, one can't
  3218.     check whether BT lives or sleeps or is dead. I changed the "[" and "]"
  3219.     around the task display to pulse. I hope this doesn't bother someone.
  3220.  
  3221.  
  3222. RH: "Clock [<colour>] [<char>]"
  3223.  
  3224.   The screen saver now displays a 7-segment digital clock if you put that
  3225.   statement to binkley.cfg.
  3226.  
  3227.   You can add a colour value for the clock to be displayed.
  3228.  
  3229.   You can also add, after the colour value if any, a char that should be used to
  3230.   display.
  3231.  
  3232.   If you omit both parameters, then a "1" is drawn with '1' chars, a "2" is
  3233.   drawn with '2' chars and so on.
  3234.  
  3235.   Clock      ; displays the clock with default values
  3236.   Clock 31   ; displays a clock white on blue with default chars
  3237.   Clock ░    ; displays a clock grey on black using '░' to draw it.
  3238.   Clock 31 ░ ; displays a clock... ok?
  3239.  
  3240.   Clock ░ 31 ; is *wrong* and will not work as you expected!
  3241.  
  3242.  
  3243. RH: "Unread Netmails Pending"
  3244.  
  3245.   "Unread Netmails Pending" now shows the amount of *received* and not
  3246.   "intransit" unread netmails.
  3247.  
  3248.  
  3249. RH: "cFosCost"
  3250.  
  3251.   Add "cFosCost" to your binkley.cfg to get the real costs of an outbound call.
  3252.   You need an ISDN line and cFos must be the actual "modem". You must configure
  3253.   cFos to get the charge information, though!
  3254.  
  3255.   If "cFosCost" is read before "AfterCall" then it will override and disable
  3256.   any following "AfterCall" statements. Instead it will work as if "AfterCall 3
  3257.   ATi1|" has been defined.
  3258.  
  3259.   If "cFosCost" is read after "AfterCall", then your "AfterCall" string will be
  3260.   used to get the costs.
  3261.  
  3262.   "cFosCost" overrides any event-based cost definitions and cost calculations.
  3263.   You should define a correct "CostUnit".
  3264.  
  3265.  
  3266. RH: changed code when to display "chat available" in the caption field of the
  3267.     "recent activity" window.
  3268.  
  3269.   Obviously not everybody that has HOPT_DEVICE also has chat available. I've
  3270.   seen that with BT EE, that has HOPT_DEVICE but no chat. With the current mode
  3271.   of displaying this information it should be correct in that way, that binkley
  3272.   will not show "chat available" if the other side does not explicitly transmit
  3273.   the string "Remote has chat facility available".
  3274.  
  3275.  
  3276. RH: os2_pm.c
  3277.  
  3278.   Changed OS2_PM.C to load all external DLLs with DosLoadModule and provide an
  3279.   interface to binkley. This way binkley can be compiled "completely" and no
  3280.   functions are missing, if the runtime environement allows it. removed all
  3281.   #definitions for MAX_MCP, OS2SETWINDOWTITLE and LOAD_PM_DLLS. Binkley doesn't
  3282.   need to care about any more.
  3283.  
  3284.  
  3285. RH: Removed support for SNSERVER.DLL completely.
  3286.  
  3287.   Binkley uses its internal pipe code by Steffen Motzer. This code uses an own
  3288.   thread and works perfectly. The config statement "Snoop" and the environment
  3289.   variable "SNOOPPIPE" remain valid and are used for the same purpose.
  3290.  
  3291.  
  3292. RH: Changed the way the names of "Snoop" and "MCPpipe" are evaluated to this:
  3293.  
  3294.   If binkley.cfg contains the statement without a pipe name, then the
  3295.   environment is searched for "SNOOPPIPE" or "MCPPIPE" respectively, else the
  3296.   environment name is ignored.
  3297.  
  3298.   This way you can, but must not, override the environment name. Old behaviour
  3299.   was: if an environment name existed, this one was taken and the name in
  3300.   binkley.cfg was ignored.
  3301.  
  3302.  
  3303. RH: Re-installed support for name search for dialing in non fullscreen session.
  3304.  
  3305.  
  3306. RH: The "blinking" flag around the task number should now work in X, Y and
  3307.     ZModem sessions, too.
  3308.  
  3309.  
  3310. RH: Removed UUE and ASC capabilities of hydra protocol.
  3311.  
  3312.   You can easily enabled them again by #defining HYDRA_UUE in your makefile.
  3313.   This #define HYDRA_UUE does both enabling UUE and ASC and increasing hydras
  3314.   buffers to the then necessary (large!) size.
  3315.  
  3316.  
  3317. RH: "SmartBiDi [Outgoing]"
  3318.  
  3319.   SmartBidi enables SmartBidi behaviour - without this keyword, BT-XE will
  3320.   behave as before.
  3321.  
  3322.   With SmartBidi, BT will disable Hydra and Janus in case of we have no local
  3323.   mail on hold for the remote system if:
  3324.  
  3325.   - it is an inbound call (so all AKAs of remote are known to us [EMSI])
  3326.   or:
  3327.   - we have "NoPickUp" active
  3328.   or:
  3329.   - "SmartBidi Outgoing" has been configured and we do an outbound call.
  3330.     This will check only the amount for the CALLED AKA (no other AKA is known
  3331.     at this moment).
  3332.  
  3333.   Then zmodem will be the fastest method (100 percent eff, whilst hydra and
  3334.   janus have only 95 percent eff.) and is choosen. Since calling a system means
  3335.   that EMSI knows nothing but the called address, and since the called system
  3336.   might have other AKAs, too, for which we might have mail on hold, the
  3337.   statement "SmartBiDi Outgoing" is used to force this behaviour in case we
  3338.   are calling.
  3339.  
  3340.   Be aware that SmartBidi may confuse your links because they are used to get
  3341.   (x)Hydra and now get ZedZap.
  3342.   Also, you won't be able to chat with ZedZap ...
  3343.   Also, sending a file along with a file request to your system (expecting
  3344.   xHydra) won't be nice with SmartBidi enabled, because you will get ZedZap.
  3345.  
  3346. Comment of TJW: shall we really keep this keyword ? As it seems to me, it has
  3347.                 more disadvantages than advantages...
  3348.  
  3349.  
  3350. TJW: Removed superfluous "Application" keyword
  3351.  
  3352.  
  3353. TJW: Removed obsolete "Zone", "Aka", "Point" keywords
  3354.  
  3355.  
  3356. TJW: Removed obsolete "NoZones" keyword
  3357.  
  3358.  
  3359. TJW: added MCP / tasklist messages for outbound rescan / read
  3360.  
  3361.  
  3362. CFS: New keyword: CallBack <node> [<callerid>]
  3363.  
  3364.   If a call from node comes, it is rejected and all mail for 'node' is changed
  3365.   to crash. If there is no mail, a .CLO is created. You'll also need ModemCID
  3366.   and CallerID (to tell Binkley the node's CallerID). Alternativly you can also
  3367.   add the number as the last parameter in CallBack. If you need more than one
  3368.   CallerID for one node, DO NOT use multiple CallBack keywords but multiple
  3369.   CallerID keyword.
  3370.  
  3371.   Example:
  3372.  
  3373.     CallBack 2:341/79 003413782005
  3374.  
  3375.   If 003413782005 (that's me) calls, it is rejected and called back. Be aware
  3376.   that cost and event configuration applies. If calling the node is too
  3377.   expensive or the event is set to receive-only (or the nodelist flags don't
  3378.   allow calling), BT-XE will *not* call, but still reject the call.
  3379.  
  3380.   Remember to define ModemCID or callback will not work. Finally, remember that
  3381.   callerID is used only to identify the call, but the number used to call back
  3382.   is the nodelisted one.
  3383.  
  3384.  
  3385. CFS: Added ModemCostReset.
  3386.  
  3387.   If used, the cost timer will not start after connecting but after the last
  3388.   string specified in ModemCostReset is received from the modem (or after
  3389.   dialing if none is received). If the modem is able to return RINGING, it is a
  3390.   good idea to use these keywords, as it will result in BT-XE knowing exactly
  3391.   the true start of the charges.
  3392.  
  3393.   Be aware that costtimecorrection still applies, so you may want to set it
  3394.   to 0 if ModemCostReset is used.
  3395.  
  3396.   Example:
  3397.  
  3398.       ModemCostReset RINGING
  3399.       ;ModemIgnore   RINGING
  3400.       ;ModemRing     RINGING
  3401.  
  3402.  
  3403. CFS: Added StatsToMsg.
  3404.  
  3405.   BT-XE now has the ability of logging a stat sheet at the end of the day.
  3406.  
  3407.   Syntax: StatsToMsg OurAKA DestAKA <PKT password>
  3408.       or: StatsToMsg OriginAKA Echotag <PKT password>
  3409.  
  3410.   BT-XE now has the ability of logging a stat sheet at the end of the day.
  3411.  
  3412.   Examples:
  3413.  
  3414.     StatsToMsg 2:341/70 BINKLEY.STATS would post the message in the echo
  3415.                                       BINKLEY.STATS.
  3416.  
  3417.   StatsToMsg writes a .PKT in the protected inbound directory, so one can store
  3418.   the message in any messagebase supported by his/her tosser.
  3419.  
  3420.   For echomail, the address is the 'from' address of the PKT. The destination
  3421.   address is always the main address of the system.
  3422.  
  3423.  
  3424. CEH: Added keyword "LocalInbound":
  3425.  
  3426.   Defaulting to ProtInbound, you can now change the path to where Binkley
  3427.   writes Statistic-PKTs to to somewhere else (usually your tosser's local
  3428.   inbound).
  3429.  
  3430.  
  3431. TS: DOS only:
  3432.  
  3433.   Removed config statements (not recognized any more):
  3434.    - MultiLink
  3435.    - TaskView
  3436.    - TopView
  3437.    - Rev3
  3438.  
  3439.   Removed code for the following obsolete multitaskers:
  3440.    - DoubleDOS
  3441.    - MOS386
  3442.    - MultiLink
  3443.    - TaskView
  3444.    - TopView
  3445.  
  3446.   Removed code for obsolete revision 3 type fossils
  3447.  
  3448.  
  3449. TS: all versions
  3450.  
  3451.   Removed config statement `NoFullScreen' (not recognized any more) and the
  3452.   ability to run in line-oriented output mode.
  3453.  
  3454.  
  3455. MT: New Keyword HydraMsgSend <text>
  3456.  
  3457.   Sends a message to the remote system at the end of each hydra-block
  3458.  
  3459.  
  3460. TS: updates MSC700/800 stuff;
  3461.  
  3462.   Now able to produce an overlayed i386 16bit dos exe with MSC800
  3463.  
  3464.  
  3465. MR: Changed config file search "logic"
  3466.  
  3467.   If the environment variable BINKLEY is set then this is binkley's home
  3468.   directory. Otherwise it's the current directory. The config and the event
  3469.   file as well as binkley.ban are taken from binkley's home directory.
  3470.  
  3471.  
  3472. MR: Include keyword
  3473.  
  3474.   Binkley now checks if the given file name already has a complete path
  3475.   (drive:\path\filename) and does no longer simply always add his home
  3476.   directory.
  3477.  
  3478.  
  3479. RH: fixed xmit_setflags() bug
  3480.  
  3481.   "HOLD" and "REQ" files are not to be handled in xmit_setflags() (thanks to
  3482.   Alex Woick who pointed this out).
  3483.  
  3484.  
  3485. RH: fixed some errors in latest XE*.DIF
  3486.  
  3487.   removed the partially included NetWare-Stuff (awaiting Alex' new DIF)
  3488.  
  3489.  
  3490. RH: Updated exceptio.c
  3491.  
  3492.   now it *does* print line numbers
  3493.  
  3494.  
  3495. RH: janus and hydra
  3496.  
  3497.   Removed throughput() calls from janus and hydra. It can't be done this way.
  3498.  
  3499.  
  3500. RH: shells
  3501.  
  3502.   Had the problem that pressing ALT-F2 lead to start a shell (SQUISH SQUASH)
  3503.   and on return binkley could not re-open the COM port. Changed mailer.c to
  3504.   avoid that problem.
  3505.  
  3506.  
  3507. MR: new keyword: "UseCompletePaths"
  3508.  
  3509.   If this keyword was found in the config file, Binkley adds its home
  3510.   directory, when creating BAT or CMD files for BBS Exit/Batch and Extern
  3511.   Exit/Batch. Also, the files created contain Binkley's home directory.
  3512.  
  3513.    Example: home directory: c:\binkley
  3514.             BBSBAT## is always created in c:\binkley
  3515.             BBSBAT## calles c:\binkley\spawnbbs ...
  3516.  
  3517.   Binkley also adds it's home directory to commands called when using BBS Spawn
  3518.   and Extern Spawn.
  3519.  
  3520.    Example: home directory: c:\binkley
  3521.             binkley calls : c:\binkley\spawnbbs ...
  3522.                             c:\binkley\extmail  ...
  3523.  
  3524.  
  3525. MR: Little internal change
  3526.  
  3527.   BBSopt and EXTopt no longer keep the string (e.g. "spawn") but only a flag
  3528.   what to do. This saves about 8 bytes of memory! ;)
  3529.  
  3530.  
  3531. MR: "BBS Batch" now always exits with errorlevel 101.
  3532.  
  3533.   So you can simply use "if errorlevel 101 %binkley%\bbsbat%task%" to call your
  3534.   BBS. But you should check your config to be sure, that you don't use this
  3535.   errorlevel somewhere else...
  3536.  
  3537.  
  3538. MR: ErrLevelShell now works for the funktion keys, too.
  3539.  
  3540.  
  3541. MR: "ErrLevelShell <errlvl> none"
  3542.  
  3543.   Nothing will be done for errorlevel <errlvl>. So you can disable unused
  3544.   function keys if you like.
  3545.  
  3546.  
  3547. MR: I_ALIVE.xx will now (hopefully) be deleted upon all exits.
  3548.  
  3549.  
  3550. MR: language.txt
  3551.  
  3552.   Changed language.txt for use with editors that strip trailing blanks. Please
  3553.   use "\b" instead of them!
  3554.  
  3555.  
  3556. MR: BINK_PM.DLL is now searched in binkley's home directory
  3557.  
  3558.  
  3559. MR: added missing \n to error message used by share_fopen
  3560.  
  3561.  
  3562. TJW: SmartBidi keyword/behaviour
  3563.  
  3564.   Changed SmartBidi keyword/behaviour so that it is disabled if unused, see
  3565.   above.
  3566.  
  3567.  
  3568. CFS: Added colour support for the activity window.
  3569.  
  3570.   Rather than providing it for the programmer, I have added it for the user.
  3571.   This means that one can change the colours by editing the language file.
  3572.  
  3573.   Colours are selected by inserting `new_colour` in the string, for example:
  3574.  
  3575.     `cyan`Password `white`error
  3576.  
  3577.   String replacements take effect before processing the colours, so you may add
  3578.   colours (or remove them) if you wish, i.e.
  3579.  
  3580.     StringRep CONNECT `red`CONNECT`white`
  3581.  
  3582.   would result in something such as
  3583.  
  3584.     CONNECT 64000/ID=003413782005
  3585.  
  3586.   with CONNECT in red and the rest of the line in white.
  3587.  
  3588.   Available colours are:
  3589.  
  3590.     "black", "blue", "green", "cyan", "red", "magenta", "brown", "white",
  3591.     "gray", "brightblue", "brightgreen", "brightcyan", "brightred",
  3592.     "brightmagenta", "yellow" and "brightwhite".
  3593.  
  3594.   Note:  If you use colours in the language file, you have to pay attention:
  3595.   -----
  3596.           1. Do not use colours in front of a log level indicator:
  3597.  
  3598.                WRONG:   E#032L`brightred`*Lost Carrier.
  3599.                CORRECT: E#032L*`brightred`Lost Carrier.
  3600.  
  3601.           2. The whole line INCLUDING the colour tags must be shorter than
  3602.              the screen width. Longer lines will be cut off.
  3603.  
  3604.  
  3605. JNK: "ErrLevelShell <errlvl> poll <node1> <node2>..."
  3606.  
  3607.   Creates poll-file for all nodes <nodex>. Checks if node is listed.
  3608.  
  3609.  
  3610. SM: "ErrLevelShell <errlvl> post \sem32\<name>"
  3611.  
  3612.   Binkley will post the specified Event Semaphore (usefull to start tosser).
  3613.  
  3614.  
  3615. TJW: added some brightred colour to severe error messages (PW error e.g.)
  3616.  
  3617.  
  3618. TJW: caution: new L event flags (only "L" is not valid any more):
  3619.  
  3620.   Li : compares with cost index (V7 "RealCost" value)
  3621.   Lc : compares with cost[cost index] * 1 minute
  3622.   Lt : compares with cost[cost index] * (estimated transfer time)
  3623.  
  3624.   Also made L handling in BT source a bit more "explicit".
  3625.  
  3626.  
  3627. TJW: changed layout of event display in "Transfer Status" window
  3628.  
  3629.  
  3630. MR: New command line keyword: TERM
  3631.  
  3632.   Starts binkley in terminal mode.
  3633.  
  3634.  
  3635. MR: Added Modem Window, new keyword: ShowModemWin
  3636.  
  3637.   Can be switched off and on with Alt+V. If ShowModemWin is found in config,
  3638.   modem window will be switched on upon startup.
  3639.  
  3640.  
  3641. MR: Watcom DOS overlayed version
  3642.  
  3643.   Moved some object files from overlay to root.
  3644.  
  3645.  
  3646. MR: Cosmetical fix: window title
  3647.  
  3648.   Title of recent activity window shouldn't be removed any more when switching
  3649.   on/off chat windows.
  3650.  
  3651.  
  3652. TJW: CSS (current session statistic) window implementation.
  3653.  
  3654.  
  3655. TJW: did some changes in EMSI.C to speed up EMSI handshaking retries
  3656.  
  3657.   (TJW 970309: EMSI data loss checker, EMSI_DAT resend, EMSI_INQ resend)
  3658.  
  3659.   Be careful with this. It worked here, but who knows ...
  3660.  
  3661.  
  3662. CFS: Added a event behaviour setup screen, just press alt-n and see.
  3663.  
  3664.  
  3665. TJW: changed FORCEXIT.%u to FORCEXIT.%02X (same naming convention as other
  3666.      flags)
  3667.  
  3668.  
  3669. TJW: removed single task "support" (TaskNumber==0)
  3670.  
  3671.  
  3672. JNK: "NoTranx"
  3673.  
  3674.   Do not send Tranx info in EMSI-handshake.
  3675.  
  3676.  
  3677. CFS: OS/2 only: Added CID detection directly from CAPI.
  3678.  
  3679.   The scenario where this is useful is the following: An ISDN card (usually
  3680.   used with a mailer task) is connected to an ISDN bus. A modem is connected to
  3681.   the same bus, either via an A/B switch in the NT, or via an A/B switch in the
  3682.   card. In any case, when an analog call comes to be answered by the modem, the
  3683.   modem misses the caller-id.
  3684.  
  3685.   This scenario is the one I have at home, and I think it is common. Since the
  3686.   ISDN card gets the caller-id (I used Jörg-Stefan Sell's Caller-id to see it),
  3687.   it is possible to use it to get the caller-id. The usage is the following:
  3688.  
  3689.    CAPICID EAZs Services Modem_string1 [Modem_string2] ... [Modem_stringN]
  3690.  
  3691.   When a call comes for any of the specified EAZs (of course, only the same
  3692.   used by the modem should be indicated) and for the specified services (list
  3693.   of services is listed below), BT-XE adds /ID=number to all the strings coming
  3694.   from the modem that starts with modem_string.
  3695.  
  3696.   For example:
  3697.  
  3698.     CAPICID 0 T RING CONNECT
  3699.  
  3700.   In my old 14400 it produces the following effect:
  3701.  
  3702.     RING/ID=3780127
  3703.     CONNECT 14400/ARQ/V32/LAPM/V42BIS/ID=3780127
  3704.  
  3705.   The ID addition is performed right at the modem reception part. So it can be
  3706.   used for freepoll, pass it to the BBS and everything that can be done with
  3707.   "real" CIDs from modems.
  3708.  
  3709.   Notes: While it seems to work great here, it is still a bit untested.
  3710.  
  3711.   When this feature is used, BT-XE starts a new thread to answer the CAPI
  3712.   messages, and if one of them is a phone number, BT-XE records it for "future"
  3713.   usage. When a qualified modem string comes, BT-XE just adds the phone number.
  3714.   Thus if a RING is detected by the modem before the CAPI message arrives (this
  3715.   doesn't happen at home, but it's conceivable) it is possible that the RING
  3716.   isn't followed by a ID, or could even be followed by a wrong ID! Be aware of
  3717.   these potential problems and test to see how it works for you. (if it
  3718.   doesn't, let me know :-)). Also note that the stored CID is reset after each
  3719.   call, to avoid getting a RING with the phone number from the previous call.
  3720.  
  3721.   The fake CID change is blocked (i.e. if a new CID comes it is ignored) in a
  3722.   two cases: When we have dialed (the stored CID is changed to the dialed
  3723.   number, so a valid ID is added to the CONNECT), and when we have answered.
  3724.  
  3725.   The valid services to monitor are (you may indicate as many as you wish, even
  3726.   if it is probably nonsense):
  3727.  
  3728.      V -> Videophone       T -> Telephony    A -> A/B services
  3729.      2 -> X.21             4 -> Fax (gr. 4)  I -> Videotext
  3730.      D -> Data transmis.   5 -> X.25         L -> Teletex
  3731.      M -> Mixed mode       R -> Remote ctl.  G -> Graphic telephone service
  3732.      X -> Videotext (new standard).
  3733.  
  3734.  
  3735. MR: "Colors" keyword:
  3736.  
  3737.   Added two new colours (add at the end of "Colors" in Cfg) for modem activity
  3738.   window: sent and received stuff. Please note, that you cannot change the
  3739.   background colour.
  3740.  
  3741.  
  3742. MR: Waiting for modem answers:
  3743.  
  3744.   Binkley checked for key strokes while initializing the modem and getting
  3745.   modem information after sessions. Now this is only done while answering and
  3746.   dialing.
  3747.  
  3748.  
  3749. MR: Init and TermInit
  3750.  
  3751.   Binkley now accepts multiple init strings for mailer and terminal. At the
  3752.   moment up to 5 for each.
  3753.  
  3754.  
  3755. MR: Binkley now always checks for OK when initializing the modem.
  3756.  
  3757.   If no OK was received, the init string will be retransmitted. After three
  3758.   tries, SpawnNoOK will be called if specified.
  3759.  
  3760.  
  3761. MR: New keyword: PreAnswer <string>.
  3762.  
  3763.   Lets you setup the modem before answering a call. Binkley will check for OK.
  3764.  
  3765.  
  3766. MR: New keyword: CallerID <nodenumber> <callerid>.
  3767.  
  3768.   Lets you setup callerids for a node. Used for ConditionalPoll and CallBack.
  3769.   If you need more than one CallerID for one node, simply use mutiple CallerID
  3770.   keywords with the same node number.
  3771.  
  3772.   Note:  Remember to set CallerID for EVERY nodenumber you use with
  3773.   -----  ConditionalPoll (you can still set the callerid with the last
  3774.          parameter of ConditionalPoll) and CallBack!
  3775.  
  3776.  
  3777. MR: CallerID, CallBack and ConditionalPoll
  3778.  
  3779.   ConditionalPoll and CallBack now optionally take a CallerID. You only need to
  3780.   set a CallerID once for each AKA, either with CallerID or ConditionalPoll and
  3781.   CallBack respectivly. Binkley will display an error message if you specify a
  3782.   CallerID twice for an AKA.
  3783.  
  3784.   Note:  YOU MUST USE "ModemCID <string>" to use THESE THREE FEATURES!
  3785.  
  3786.  
  3787. MR: Changed WindowTitleFmt
  3788.  
  3789.   Do NOT use this keyword if you don't want to use this feature. DO use it
  3790.   WITHOUT parameter to use default title format. Use it WITH parameter to use
  3791.   your own title format.
  3792.  
  3793.  
  3794. TJW: changed progress meter optics (after an idea of Timo Maier)
  3795.  
  3796.  
  3797. TJW: IMPORTANT!!! Change your configs:
  3798.  
  3799.   Keywords About, KnownAbout, ProtAbout, Avail, KnownAvail, ProtAvail have been
  3800.   removed!
  3801.  
  3802.   Just add @FILES and @ABOUT to your OKfile / KnownReqList / ProtReqList - as
  3803.   you do it with other magics, too (hint: add FILES and ABOUT magic at the
  3804.   TOP[!] of the OKfile).
  3805.  
  3806.  
  3807. CFS: (OS/2 only) Added CFOS support.
  3808.  
  3809.   If 'CFOSLine' is used the last line will show a status line with data from
  3810.   CFOS: Current ISDN time (based on the last info received from the telco),
  3811.   whether the call is incoming or outgoing, phone number, b-channels being
  3812.   used, control flow support, error correction support, CPS, B1 bps rate (for
  3813.   example 64000), and cost info. I don't have cost info so this is untested.
  3814.  
  3815.   There are three keys available on connections:
  3816.  
  3817.     Alt-R    -> Reset ISDN hardware (terminates all connections)
  3818.     Key Up   -> Add a b-channel
  3819.     Key Down -> Remove a b-channel
  3820.  
  3821.   Note:  CFOS/2 build 1214 or later is required.
  3822.  
  3823.  
  3824. CFS: It is now possible to skip files in Hydra and Zmodem
  3825.  
  3826.   Alt-S -> Skip file but keep all bytes received so far
  3827.   Alt-K -> Skip file and kill it
  3828.  
  3829.  
  3830. CFS: Added StringRepModem.
  3831.  
  3832.   Syntax is the same as StringRep's. StringRepModem replaces a string received
  3833.   from the modem for a different one. Replacement is done inmediately after
  3834.   the string is received, and before it is processed by binkley itself.
  3835.   For example,
  3836.  
  3837.   StringRep RING INCOMING!
  3838.  
  3839.   (senseless example, I know). You would have to change your config file to
  3840.   let BT-XE know that it should answer to INCOMING! instead of RING, otherwise
  3841.   it WILL NOT WORK.
  3842.  
  3843.   Be careful with this command - most possibly you should not use it unless
  3844.   you really need it.
  3845.  
  3846.   If you want to do visual changes (such as adding colours to CONNECT),
  3847.   use StringRep instead.
  3848.  
  3849.  
  3850. TJW: removed "MakeDir" keyword
  3851.  
  3852.   This is default behaviour now!
  3853.  
  3854.  
  3855. TJW: changed efficiency / remaining time calculations
  3856.  
  3857.   Changed efficiency / remaining time calculations to calculate with 8
  3858.   bits/byte (assuming sync transfers) instead of 10 bits/byte (as needed with
  3859.   async transfers, 8n1). This will give lower efficiencies (<100%), but they
  3860.   are more useable than the old ones ...
  3861.  
  3862.  
  3863. MR: CSS progress bars
  3864.  
  3865.   Moved chars for progress bars to language.txt.
  3866.  
  3867.  
  3868. MR: CallerIDs
  3869.  
  3870.   The given CallerIDs now only need to be a substring of the CallerID
  3871.   presented by a caller and do not need to be exactly the same.
  3872.   You can now also define multiple CallerIDs for one node.
  3873.  
  3874.  
  3875. CFS: Added a history window, press alt-h to enter.
  3876.  
  3877.   Colours have the following meaning:
  3878.     Yellow -> Incoming mailer call
  3879.     Red    -> Outgoing mailer call
  3880.     Cyan   -> Fax call
  3881.     Green  -> BBS call
  3882.  
  3883.  
  3884. MR: removed keyword "DTRHigh"
  3885.  
  3886.   If you want the DTR to stay high on exits, use the Keyword "Busy" and don't
  3887.   add a 'v' (see modem command character translation) to drop the DTR.
  3888.  
  3889.   On the other hand if you wish to drop the DTR on exits, you now HAVE to add
  3890.   a 'v' to drop the DTR if you use the keyword "Busy".
  3891.  
  3892.   New default for Busy: v
  3893.  
  3894.  
  3895. MR: REQ files are now only deleted after a successfull session
  3896.  
  3897.  
  3898. MR: new keyword: "HangUp"
  3899.  
  3900.   Use this keyword to define the string to be sent to the modem to hang up. It
  3901.   shouldn't do anything else than sending a CR, drop DTR and raise DTR again
  3902.   with some pause between those actions.
  3903.  
  3904.   Default: |`v~~^`````|
  3905.  
  3906.  
  3907. TJW: added V7+ support - changed Version7 keyword
  3908.  
  3909.   You may activate V7+ support by using: Version7 Plus
  3910.  
  3911.   So just add the "Plus" specifier after the normal Version7 keyword. To use
  3912.   V7+ you additionally need a nodelist compiler generating a V7+ compatible
  3913.   nodex.dtp/*.dtp file.
  3914.  
  3915.   V7+ support will enable BT-XE to access complete raw nodelist data, e.g. for
  3916.   supporting ,U,Txy flags and similar stuff. We just began implementing this,
  3917.   so there isn't much USE of V7+ yet - but this will come later!
  3918.  
  3919.   Concerning your other tools using V7: V7+ is highly compatible with V7 - so
  3920.   there should be NO problems if programs that don't know V7+ (but only V7)
  3921.   access a V7+ nodelist.
  3922.  
  3923.   If you only specify "Version7" (without "Plus"), Binkley will use standard
  3924.   V7 nodelist - as ever (but see also SysopNDX keyword !!!) ...
  3925.  
  3926.  
  3927. MR: multiple PreAnswer keywords
  3928.  
  3929.   Up to 5 PreAnswer strings are allowed now.
  3930.  
  3931.  
  3932. CFS: Added some (more or less) complete stats screens.
  3933.  
  3934.   Press Ctrl-T and then 1-7 to select stat page. The stats screens are based on
  3935.   the data from the history file therefore the more time you have been using a
  3936.   BT-XE with it the better the stats will be.
  3937.  
  3938.   Note:  Stats are system-based, not call-based. For example the 'top mailers'
  3939.   -----  will tell you the mailers that are used by most different systems, not
  3940.          by most different callers, so if someone calls 100 times it is only
  3941.          counted once. So what BT-XE does is build a list of different systems
  3942.          and sort it for each stat. For the mailer stats, the speed stats, etc,
  3943.          which may vary for a given system between different calls, only the
  3944.          *last* entry in the history window counts. So if a guy switch to a
  3945.          different mailer, only the new one is accounted.
  3946.  
  3947.  
  3948. CFS: Added new keyword AutoChatOpen.
  3949.  
  3950.   If used, the chat window will open as soon as the remote types something (so
  3951.   no HCON: lines are logged). autochatopen also disables computer-generated
  3952.   beeps in chat (for chat timeout or close or whatever).
  3953.  
  3954.  
  3955. CFS: Added ChatLogDir directory
  3956.  
  3957.   To indicate the directory where chat sessions are to be stored.
  3958.  
  3959.  
  3960. CFS: Started work on a chat-based command interpreter.
  3961.  
  3962.   It will allow both the local and the remote sysops to do real-time requests,
  3963.   such as attaching or freqing files on the fly.
  3964.  
  3965.   As of now, you may only do
  3966.  
  3967.     /btloc log filename
  3968.  
  3969.   to record the chat session. ChatLogDir must be used in order for this to
  3970.   work.
  3971.  
  3972.   I plan to add some more (useful) commands as soon as possible (I need to do
  3973.   some other things that can't wait because I'm about to install BT-XE in a
  3974.   special enviroment).
  3975.  
  3976.  
  3977. CFS: Added NodeExtraDir directory
  3978.  
  3979.   Allows to "link" a node with a directory. When the node connects, BT-XE will
  3980.   send and delete everything in that directory before the usual .?LO and .?UT
  3981.   stuff.
  3982.  
  3983.    Example: NodeExtraDir 2:2453/470 e:\hauke\
  3984.  
  3985.   Most of the people will have no use for this, however it is very useful if
  3986.   you wish to share the files to send to a node between BT-XE and a FTP server,
  3987.   for example. Just set the home directory in the daemon and the NodeExtraDir
  3988.   in BT-XE to the same path. The user may now get its stuff with the most
  3989.   convenient method each time. No need to choose... Of course, a utility to
  3990.   move .?LO and ?UT files to the remote's directory is a handy tool if you plan
  3991.   to use this :-) I'll provide a good (=one that does more than just moving
  3992.   files) one in the near future.
  3993.  
  3994.   Note:  You should make sure that files are not marked read only, otherwise
  3995.   -----  BT-XE will not be able to delete them and will try to send them each
  3996.          time the node connects.
  3997.  
  3998.   Also, if you are running the DOS or Windows versions, be aware that I don't
  3999.   know what happens if the directory has subdirectories (this means that you
  4000.   should try it and notify - don't expect someone else to do so). The OS/2
  4001.   version will just ignore them so you can build a tree for your FTP server or
  4002.   whatever you need.
  4003.  
  4004.   Note:  These NodeExtraDirs are not visible in the outbound window, nor
  4005.   -----  do they influence anything else like calling or conditional poll.
  4006.          Only their content is sent if a session was estabished with the
  4007.          corresponding node. Not more, not less.
  4008.  
  4009.  
  4010. MR: multiple TimeSync keywords.
  4011.  
  4012.   You now can use multiple TimeSync keywords to define as many sync addresses
  4013.   as you like.
  4014.  
  4015.   Note:  MaxDeltaTSeconds is a global value, you can't define different
  4016.   -----  values for different nodes. The last value is used for all nodes.
  4017.  
  4018.  
  4019. MR: default address for node dialogs
  4020.  
  4021.   Nearly all node dialogs now present a default address. This default address
  4022.   is either the address under your cursor (zoomed pending outbound mail window)
  4023.   or the top address (small pending outbound mail window).
  4024.  
  4025.   If you want to edit the default address, simply use backspace or left arrow.
  4026.   All other keys delete the default address. So if you want to enter a
  4027.   completely different address simply type it in and do not use backspace.
  4028.  
  4029.  
  4030. TS: added free stack / mem space display (DOS-versions only)
  4031.  
  4032.  
  4033. TJW: fixed CPU-hogging of Janus, made Janus (hopefully) SRIF-capable
  4034.  
  4035.  
  4036. TJW: "SysopNDX" keyword
  4037.  
  4038.   If you want Binkley to use the old style "SYSOP.NDX", then you MUST use
  4039.   this keyword. Version7 normally needs this keyword.
  4040.  
  4041.   If this keyword isn't used, Binkley will use <NODEX>.SDX for sysop name
  4042.   lookups. If you use only V7+ software, this should work.
  4043.  
  4044.  
  4045. TS: fixed "CursorRow" bug
  4046.  
  4047.  
  4048. AW: History importer for Maximus 3.0x
  4049.  
  4050.   The program getmax3 imports the last called user from Maximus CBCS 3.0x into
  4051.   the XE history. It must be called after a user logged off and Maximus exited
  4052.   with errorlevel 3 or above (2 and below means: no user was logged on).
  4053.   Help for getmax3 with "getmax3 -?".
  4054.  
  4055.   Example spawnbbs.cmd:
  4056.  
  4057.     maxp max -s%1 -b%2 -p%3 -n%TASK% -t%4 -y%5%6 -e0 -ll:\log\line%TASK%ad.log
  4058.     if errorlevel 3 goto lastuser
  4059.     goto end
  4060.   :lastuser
  4061.     getmax3 /h:%bt%\task\callhist.all
  4062.   :end
  4063.  
  4064.  
  4065. AW: added history importer for the internal fax receiver
  4066.  
  4067.  
  4068.  
  4069.  
  4070. BT 2.60XE/Gamma-XR6
  4071. =-=-=-=-=-=-=-=-=-=
  4072.  
  4073.  
  4074. Bugfixes
  4075. --------
  4076.  
  4077. See knwnbugs.xr5 for a complete list of bugs / problems in XR5. All bugs with
  4078. status 'F' should be fixed in this version.
  4079.  
  4080.  
  4081. New features
  4082. ------------
  4083.  
  4084. CFS: Expanded NodeExtraDir.
  4085.  
  4086.   New syntax is
  4087.  
  4088.      NodeExtraDir address directory [Hold] [Notify]
  4089.  
  4090.   Hold makes BT-XE *not* send the files when calling (obvious, uh?).
  4091.  
  4092.   Notify makes BT-XE generate a message on the fly, notifying the remote of the
  4093.   files being sent. Usually helps the remote to keep his inbound clean, or at
  4094.   least without unknown files.
  4095.  
  4096.  
  4097. CFS: Stats
  4098.  
  4099.   The stats screen nows support going up and down in all lists, by using the
  4100.   arrow keys. This way you can see the complete lists instead of the top
  4101.   systems only. Also, left and right may be used to go to the previous/next
  4102.   screen.
  4103.  
  4104.  
  4105. CFS: Added random node information system.
  4106.  
  4107.   Three new keywords for this:
  4108.  
  4109.      RandomSysop       group,[group,...] Sysop name
  4110.      RandomSystem      group,[group,...] System name
  4111.      RandomMyLocation  group,[group,...] Location
  4112.  
  4113.   The group is an user selected tag that may contain a number of sysop,
  4114.   system and location definitions.
  4115.  
  4116.   BT-XE chooses a group randomly before each call. Then it chooses a
  4117.   sysop name, a system name and a location from that group.
  4118.  
  4119.   A example:
  4120.  
  4121.      RandomSysop     BEACH Carlos "hot" Fernandez
  4122.      RandomSystem    BEACH Enjoying the Spanish summer
  4123.      RandomSystem    BEACH Possibly swimming!
  4124.      RandomLocation  BEACH Somewhere with water
  4125.      RandomLocation  BEACH On vacation!
  4126.  
  4127.      RandomSysop     BT-XE Carlos "coder" Fernandez
  4128.      RandomSysop     BT-XE "C"arlos Fernandez
  4129.      RandomSystem    BT-XE A Binkley-XE Development Site...
  4130.      RandomSystem    BT-XE Can't stop coding BT-XE stuff
  4131.  
  4132.   If one string is ok for two groups, you may separate them with commas,
  4133.   for example
  4134.  
  4135.      RandomLocation  BEACH,BT-XE Madrid, Spain
  4136.  
  4137.   If something is not defined for a group, BT-XE will just pick the default
  4138.   string, defined by Sysop, MyLocation or System (so these keywords are
  4139.   still required).
  4140.  
  4141.  
  4142. CFS: Improved history screen
  4143.  
  4144.   Now it is almost complete or at least very close to what I wanted to do.
  4145.  
  4146.  
  4147. CFS: Added a new stats page.
  4148.  
  4149.  
  4150. CFS: Address
  4151.  
  4152.   Expanded Address with a new optional parameter, 'region'. For example
  4153.  
  4154.      Address 2:341/70 34
  4155.  
  4156.   Adds 2:341/70 to the address list (as always) and 2:34 to the region
  4157.   list. As of now it is only used in for the 8th page of the stats.
  4158.  
  4159.  
  4160. TJW: added DZA capability (DirectZap ZedZap variant)
  4161.  
  4162.  
  4163. TJW: new keyword "NoDirZap" to globally disable DirectZap
  4164.  
  4165.  
  4166. TJW: added keyword "DebugFlags <8 digit hex value>"
  4167.  
  4168.   This sets an internal variable of BT-XE used for debugging.
  4169.   To be used by BT-XE bug hunters together with BT-XE team.
  4170.   *** DO NOT USE IF YOU DON'T KNOW WHAT YOU ARE DOING! ***
  4171.  
  4172.  
  4173. TE:  new keyword "IPRepChar"
  4174.  
  4175.   I added this keyword in reflection of the test listing of IP nodes in
  4176.   the zone 2 nodelist. The problem with these nodes is that MakeNL can't
  4177.   cope with phone numbers with dots in it, so the IP nodes get listed
  4178.   with dashes instead of dots, e.g. 000-192-168-1-1. For existing
  4179.   fidonet configurations, it is no problem to remove the leading "000"
  4180.   (see the Dial keyword), but it is a problem to replace the dashes with
  4181.   points. For this purpose, you can use the keyword "IPRepChar". Simply
  4182.   add
  4183.  
  4184.     IPRepChar -
  4185.  
  4186.   to the configuration of your vmodem task, and every dash will be
  4187.   replaced by \. (which means a single point) when dialing out.
  4188.  
  4189.   Don't use this keyword on a "conventional" modem line!
  4190.  
  4191.  
  4192. CE: added keyword "CheckPath <Errorlevel> <Checktime in sec.>"
  4193.  
  4194.   checkroutines for not existing network drives. If inbound,
  4195.   outbound, flagdir or netdir isn't available in an waiting binkley,
  4196.   because fileserver is down, then binkley terminates immediately.
  4197.   - 'Errorlevel' is the errorlevel when binkley exit. Default is 253,
  4198.     allowed is 1 - 255.
  4199.   - 'Checktime' is the time in seconds between 2 checks. Default is 30,
  4200.     allowed is 1 - (2^15)-1 (short int).
  4201.  
  4202.  
  4203. AW: request via maxfiles.idx with internal request processor
  4204.  
  4205.   Files with full paths in compiled Maximus filebase will be found and sent, if
  4206.   files.dat+files.dmp are present. Previously only the files in the main
  4207.   filearea path could be found. One reason less to use a request processor ;-)
  4208.  
  4209.  
  4210. AW: Maximus 3.0x support with maxfiles.idx request
  4211.  
  4212.   With the new keyword:
  4213.  
  4214.     MaxPrm  <path+filename of max.prm>
  4215.  
  4216.   it is possible to specify a the max.prm of a Maximus 3.0x setup. Then
  4217.   the filearea data is taken from the Maximus setup. No need to generate
  4218.   the Max 2.x-compatible area.dat file any more!
  4219.   It is no problem to specify a Maximus 2.x max.prm with the keyword, it
  4220.   will be auto-detected by BT-XE which version it is.
  4221.   The MaxAreas keyword therefore is obsoleted with this.
  4222.  
  4223.   The request security has been enhanced accordingly:
  4224.  
  4225.     FileSec   class/flags
  4226.     KnownSec  class/flags
  4227.     ProtSec   class/flags
  4228.  
  4229.   class/flags could of course also be numeric_level/flags or only class or
  4230.   only numeric_level.
  4231.  
  4232.   With the new syntax you can specify a Class/Flags combination that is
  4233.   matched against the acs strings in the filearea file. The acs strings
  4234.   are fully interpreted by BT-XE like in Max 3.0x, that means things like:
  4235.   ACS Sysop/A|Twit/B!X|name=testy_tester
  4236.   are supported. The name= option of the acs strings are matched against
  4237.   the sysop name that is transferred in the handshake.
  4238.   If you changed the default classnames of Maximus 3.0x from Twit, Disgrace,
  4239.   and so on to your own classnames, it will work too, as BT-XE will read
  4240.   your Maximus 3.0x access.dat security database and interpret the new
  4241.   classnames and levels.
  4242.  
  4243.   For Maximus 2.x, a level<=>classname reference is now built-in, so you
  4244.   could use now "FileSec Worthy" instead of "FileSec 3", if you like.
  4245.   You can also specify a Maximus 2.x max.prm with "MaxPrm", the version
  4246.   will be auto-detected and the 2.x or 3.x mode chosen as necessary.
  4247.  
  4248.  
  4249. AW: Binkley now transmits offset to UTC in EMSI
  4250.  
  4251.   You should make sure your TZ variable is set correctly, see tz_ibm.doc or
  4252.   tz_watc.doc.
  4253.  
  4254.   In the EMSI handshake now the TZUTC addon like with FD 2.12 or FD 2.20c is
  4255.   sent, telling the offset from local time to UTC. The transaction number
  4256.   itself is local time and so are the timestamps in the history file and the
  4257.   timestamps of disk files.
  4258.  
  4259.   Now the UTC value of the transaction number can be calculated and the time
  4260.   difference to the local system clock is always around +-0 and not multiples
  4261.   of 3600 seconds because the remote time zone was previously unknown/unset.
  4262.  
  4263.  
  4264. MR/AW: NodeTimeZone <addr> <TZ string _without_ TZ=>
  4265.  
  4266.   Use this keyword to set the time zone of a node.
  4267.  
  4268.   If the remote system doesn't send a TZUTC value, the time zone and therefore
  4269.   his time offset to UTC is unknown. With NodeTimeZone you can set the TZ
  4270.   string for this node and you will get correct time difference values for
  4271.   timesync operation.
  4272.   Remember: set your TZ variable correctly to get correct time values.
  4273.  
  4274.   - for systems that transmit only its local time in tranx and that are
  4275.     in the same time zone as your system, you don't need to set NodeTimeZone.
  4276.     Logfile example:
  4277.  
  4278.      : 10 Feb 15:45:03.14 BINK RemTim: Tue, 10 Feb 1998 18:45:01 +0100
  4279.      : 10 Feb 15:45:03.14 BINK LocTim: Tue, 10 Feb 1998 18:45:02 +0100
  4280.      : 10 Feb 15:45:03.14 BINK UTCdif: -1
  4281.  
  4282.   - for systems that transmit its local time in tranx and the TZUTC EMSI Addon,
  4283.     you don't need to set NodeTimeZone. This is the case, if the reported
  4284.     time offsets in logfile are different from one another. Also the time diff
  4285.     is not multiples of 3600 but a small number near +-0.
  4286.     Logfile exampe:
  4287.                                                                  vvvvv
  4288.      : 10 Feb 15:45:03.14 BINK RemTim: Tue, 10 Feb 1998 18:45:01 +0100
  4289.      : 10 Feb 15:45:03.14 BINK LocTim: Tue, 10 Feb 1998 12:45:02 -0500
  4290.      : 10 Feb 15:45:03.14 BINK UTCdif: -1
  4291.  
  4292.   - for systems that transmit only its local time in tranx and that are
  4293.     NOT in the same time zone as your system, set a correct NodeTimeZone for
  4294.     this node.
  4295.     Logfile example:
  4296.  
  4297.      : 10 Feb 15:45:03.14 BINK RemTim: Tue, 10 Feb 1998 18:45:01 +0100
  4298.      : 10 Feb 15:45:03.14 BINK LocTim: Tue, 10 Feb 1998 12:45:02 +0100
  4299.      : 10 Feb 15:45:03.14 BINK UTCdif: +21599
  4300.  
  4301.     If your timezone is TZ=CET-1CDT, set "NodeTimeZone <node> EST5EDT"
  4302.  
  4303.   - for systems that transmit its local time in tranx and a false value in the
  4304.     TZUTC EMSI Addon, set a correct NodeTimeZone for this node. That will
  4305.     override the false value from the handshake.
  4306.  
  4307.   - for systems that falsely transmit UTC time in tranx (instead of his local
  4308.     time), set "NodeTimeZone <node> UTC0" for this node.
  4309.  
  4310.  
  4311. TJW: merged history importer utilities into BTUTIL
  4312.  
  4313.   They are invoked now by: BTUTIL GETHIST ...
  4314.  
  4315.  
  4316. TJW: some new alias keywords
  4317.  
  4318.   Inbound               - same as NetFile
  4319.   Outbound              - same as Hold
  4320.   OutboundRescanPeriod  - same as ReadHoldTime
  4321.   OutboundCache         - same as CacheHold
  4322.  
  4323.   Please use the new keywords because it's likely that we remove the old ones
  4324.   in a future release.
  4325.  
  4326.  
  4327. CE: added keyword "AKAMatching".
  4328.  
  4329.   AKAMatching shows an incomming EMSI caller only your AKA's, if the zone is
  4330.   identical. If the zone is differend, the caller will not see your AKA. This
  4331.   feature is importent for big systems with many AKA's, because you can reduce
  4332.   the number of AKA's for smaller systems with know only 10 or 20 AKA's
  4333.  
  4334.  
  4335. AW: changed the history file (callhist.all) format for the DOS version
  4336.  
  4337.   If you upgrade from the XR5 DOS version, you must convert the history
  4338.   file (callhist.all) before you upgrade to XR6. Use the program
  4339.   xr5toxr6.exe. Use it only if you upgrade from the XR5 DOS version,
  4340.   not from any other version, and use it only once.
  4341.  
  4342.   Due to a small error in the history file definition the format for the
  4343.   XR5 DOS version was slightly different from the OS/2 or Win32 version. The
  4344.   XR6 format is now equal among all three OS versions.
  4345.  
  4346.  
  4347. MR: Enhanced [expression] (partial config inclusion / exclusion).
  4348.  
  4349.   You can now use:
  4350.    - [exp1] & [exp2] - means exp1 AND exp2 must evaluate to TRUE.
  4351.    - [exp1] | [exp2] - means exp1 OR  exp2 must evaluate to TRUE.
  4352.  
  4353.   You can connect as many [exp] with & or | as you like. The evaluation is done
  4354.   from left to right.
  4355.  
  4356.   Examples:
  4357.    [%task%==1]                              ;only task 1 (as usual)
  4358.    [%task%==1] & [%OS%==OS2]                ;only task 1 under OS/2
  4359.    [%task%==1] | [%task%==3]                ;only task 1 or 3
  4360.    [%task%==1] | [%task%==3] & [%OS%==OS2]  ;only task 1 or 3 under OS/2
  4361.    [%OS%==OS2] & [%task%==1] | [%task%==3]  ;only task 1 under OS/2 or task 3
  4362.  
  4363.  
  4364. CE: added Keyword "NodeInboundDir <AKA> <Directory>"
  4365.  
  4366.   NodeInboundDir allowes you to specify an extra inbound directory for an
  4367.   node, to handel his mail as special mail. The directory entry ignores the
  4368.   original inbound entrys (unknown, known and protected) for this node.
  4369.   - AKA is the nodenumber
  4370.   - Directory is the new inbound directory.
  4371.  
  4372.  
  4373. CE: change "StartBlkSize" from max. 2048 to max. 8192 (8k ZModem block at
  4374.     begin)
  4375.  
  4376.  
  4377. CE: added keyword "NoModem"
  4378.  
  4379.   with NoModem you don't need a COM port for Binkley. It is nessesary if you
  4380.   need a schedula without a modem. At the time this keyword is for OS/2 only.
  4381.  
  4382.  
  4383. CE: added "SyncHydraSessions <AKA>"
  4384.  
  4385.   with SyncHydraSessions you will only SEND data while RECEIVEing data in an
  4386.   Hydra session. This is only active in outbound calls.
  4387.  
  4388.  
  4389. CE: added size calculation of NodeExtraDir for #MOH and freepoll
  4390.  
  4391.  
  4392. HJK: Removed keyword "WinFossil"
  4393.  
  4394.   The use of the WinFossil for the Windows version routines now depends on
  4395.   which version is used, the NTCOMM version (for NT) or the WinFossil (for 95).
  4396.  
  4397.  
  4398. CE: added flag-file BTENDSES.%TASK%
  4399.  
  4400.   BTENDSES.xx terminates an active session when sending files to the downlink.
  4401.   It will not kill the session on incomming files!
  4402.  
  4403.  
  4404. HJK: "AfterMail" new style with WIN32
  4405.  
  4406.   AfterMail should also work in the new style now under Win32. Please refer for
  4407.   the syntax to the OS/2 implementation section by RH.
  4408.  
  4409.  
  4410. HJK: "Shell" keyword new style both OS/2 and WIN32
  4411.  
  4412.   Shell keyword now works same as the AfterMail keyword:
  4413.    Old Style: "Shell <any string>"
  4414.    New Style: "Shell [#]<any string>"
  4415.  
  4416.   I changed this to start a detached session of "shell" program. The session is
  4417.   in VIO-mode, independent and gets the starting binkleys environment. It will
  4418.   be started minimized and invisible.
  4419.  
  4420.   To enable detached sessions you have to:
  4421.    1) add the "#" char (this signals your intentions)
  4422.    2) change the command this way: Shell #<program-path>\program.exe
  4423.  
  4424.   Example: Shell #c:\bink\squish\squish.exe
  4425.  
  4426.   If you don't change your config, nothing changes. The char "#" is removed if
  4427.   you don't run OS/2 or WIN32.
  4428.  
  4429.  
  4430. HJK: "WindowTitleFmt" and "SharePort"
  4431.  
  4432.   Those keywords can now also be used in Windows version, "SharePort" works
  4433.   only in the NTCOMM version. With almost the same beheaviour as in the OS/2
  4434.   version.
  4435.  
  4436.  
  4437. SMS: added support for "ExtrnMail <errlv> RING"
  4438.  
  4439.   You may also use ExtrnMail for "RING" now. This is intended for use with a
  4440.   voicebox, e.g. ANSW.EXE.
  4441.   The "RING" is just "RING" and NOT the response from your modem. Even if your
  4442.   modem says "RINGING" on incoming calls you have to use "RING".
  4443.  
  4444.  
  4445. SMS: added CallerID to EXTMAIL.CMD / SPAWNBBS.CMD
  4446.  
  4447.   The CallerID now is passed as %7 to EXTMAIL.CMD and %6 to SPAWNBBS.CMD.
  4448.   You may use the following commands to distinguish CallerID and the extended
  4449.   connect string in the batch:
  4450.  
  4451.     SET CALLERID=%6
  4452.     SET CONNECT=
  4453.     IF NOT %7.==. SET CALLERID=%7
  4454.     IF NOT %7.==. SET CONNECT=%6
  4455.     ECHO CallerID: %CALLERID%, Connect: %CONNECT%
  4456.  
  4457.  
  4458. AW: removed "HoldAfterBadConnect"
  4459.  
  4460.  
  4461.  
  4462.  
  4463. BT 2.60XE/Gamma-XR7
  4464. =-=-=-=-=-=-=-=-=-=
  4465.  
  4466.  
  4467. Bugfixes
  4468. --------
  4469.  
  4470. See knwnbugs.xr6 for a complete list of bugs / problems in XR6. All bugs with
  4471. status 'F' should be fixed in this version.
  4472.  
  4473.  
  4474. New features
  4475. ------------
  4476.  
  4477. JH: new keyword "RejectIgnoreSize <size>"
  4478.  
  4479.   When calling a node and getting a reject, now Binkley checks first if there
  4480.   is more mail for the called node to send than specified here and ignores the
  4481.   reject, that means that normally the node is called again in a few seconds
  4482.   (depending on your other config, which still applies).
  4483.   Size ist given in byte and may be up to 2147483648 (2gb).
  4484.   If you give a negative value this is not active (default behaviour).
  4485.  
  4486.     Example: RejectIgnoreSize 0
  4487.  
  4488.   If you call a node and there's _anything_ for this node to send (size > 0)
  4489.   the reject is ignored.
  4490.  
  4491.  
  4492. HJK: new keyword "FreqLongNames"
  4493.  
  4494.   Makes it possible to request longer filenames (up to 45 characters),
  4495.   for requests from systems that can handle long filenames and certain
  4496.   Unix style systems. When this keyword is in binkley.cfg the old
  4497.   2.60-style request dialog box appears when pressing <ALT><G> with an
  4498.   long field for the filename.
  4499.  
  4500.  
  4501. HJK: keyword "SIOMode" can now also be used with Win32 version
  4502.  
  4503.   Use this if you use CFos and/or have problems with the modem hanging up
  4504.   or DTR control problems
  4505.  
  4506.  
  4507. HJK: removed support for V6 and QuickList nodelists
  4508.  
  4509.   Functions where already out-of-use for ages, they did not even compile.
  4510.   Everyone should use V7(+) nodelists now.
  4511.  
  4512.  
  4513. VRP: Txy support in outbound
  4514.  
  4515.  
  4516. VRP: new keyword: "Online <address> {CM | <start>-<stop>} [<WeekDays>]"
  4517.  
  4518.   Use this keyword to override the online time of a node. This is normally set
  4519.   in the nodelist via the T user flag.
  4520.  
  4521.   <start> and <stop> are the local time in format hh:mm.
  4522.   <WeekDays> (default - all) may be any combination of "Mo Tu We Th Fr Sa Su"
  4523.   or "Wk" == "MoTuWeThFr" or "Wn" == "SaSu"
  4524.  
  4525.   Examples:
  4526.  
  4527.     Online 2:5080/41 20:00-08:00 WkSa
  4528.     Online 2:5080/41 CM Su
  4529.  
  4530.  
  4531. VRP: new keyword: "SendHoldIfCaller"
  4532.  
  4533.   If this keyword is found in the config file, Binkley will also send hut/hlo 
  4534.   bundles on outgoing calls.
  4535.  
  4536.  
  4537. VRP: new keyword: "RestorePoll <flavour>"
  4538.  
  4539.   If this keyword was found in the config file, Binkley will create a 
  4540.   zero-sized ?lo bundle with corresponding flavor in case of an incomplete 
  4541.   outgoing session.
  4542.  
  4543.   <flavor> may be cra[sh], dir[ect] or norm[al]. Default is crash.
  4544.  
  4545.   Example:
  4546.  
  4547.     RestorePoll crash
  4548.  
  4549.  
  4550. VRP: new keyword: "Hidden" (Hidden lines support)
  4551.  
  4552.   Keyword:
  4553.  
  4554.     Hidden <addr> <phone> <mdmflg,..> <fidoflg,..> {CM|<start>-<stop>} [days]
  4555.  
  4556.   <phone> must be 'ready to dial' - no phone translations will be used
  4557.   (like in 'Override' keyword).
  4558.  
  4559.   <mdmflg> and <fidoflg> is the same as used in 'Override' keyword (if not
  4560.   used, must be set to '-').
  4561.  
  4562.   <start>, <stop> and <days> is like in 'Online' keyword. If <start> and
  4563.   <stop> are not used set '-' instead.
  4564.  
  4565.   Examples:
  4566.  
  4567.     Online 2:5080/41 20:00-08:00 WkSa
  4568.     Hidden 2:5080/41 746301 - CM - Su
  4569.  
  4570.  
  4571. VRP: Changed ExtSession behaviour
  4572.  
  4573.   If the external session was successfull, the external mail agent must now
  4574.   set 'esess_ok.<nnn>' flag (where '<nnn>' is Binkley's current task number)
  4575.   in Binkley's flag_dir.
  4576.  
  4577.  
  4578. VRP: new keywords: "NetMailFlag", "ArcMailFlag" and "TicFlag"
  4579.  
  4580.   NetMailFlag [<flagname>]    (default is btnetml.in in flag dir)
  4581.   ArcMailFlag [<flagname>]    (default is btarcml.in in flag dir)
  4582.   TicFlag     [<flagname>]    (default is bttic.in   in flag dir)
  4583.  
  4584.   The flags are set if netmail/arcmail/*.tic files were received in the last
  4585.   session.
  4586.  
  4587.  
  4588. VRP: new keyword: "SaveExtSession [in | out]"
  4589.  
  4590.   If this keyword was found in the config file all external sessions (see
  4591.   "ExtSession" and "ExtrnMail" keywords) will be saved in the CallHist.All
  4592.   history file.
  4593.  
  4594.   Default is "off" (i.e. not to save any data about external sessions in the
  4595.   history file - this is the behaviour as it was before).
  4596.  
  4597.   "SaveExtSession" without any parameter means both, "in" and "out".
  4598.  
  4599.  
  4600. SVM: Rewrite zfree() code for Win32
  4601.  
  4602.    There was no check if the path given is complete and only the first
  4603.    character of drive parameter was used as drive letter which makes some
  4604.    problems with relative path. Now GetFullPathName is used to be sure
  4605.    it's a full path. One should check whenever this will really return the
  4606.    drive on network, not the \\server\share\...
  4607.    Also added support for the drives over than 2G for WINNT 4.0 and Win95
  4608.    OSR2 and higher (FAT32). Also for this case there is a check now not
  4609.    for the drive free space but for the space available for current user
  4610.    in the given directory.
  4611.  
  4612. SVM: Some updates to make Win32 version compile with Watcom
  4613.  
  4614. - Added win32\makefile.w11 for Watcom C 11.0/Win32.
  4615. - Added win32\bt32.rc resource script with Binkley icon.
  4616. - Added Watcom C 11.0 compatibility.
  4617. - Console codepage was set to 437 at startup but never restored. Fixed.
  4618.  
  4619.  
  4620. SMS: fixed SDM netmail area from fidoconfig
  4621.  
  4622.    Importing the (SDM style) netmail area definition from fidoconfig
  4623.    now works.
  4624.  
  4625.  
  4626. CE: fix for outbound view (double AKA's in outbound).
  4627.   
  4628.  
  4629. CE: new Keyword "NoRescan"
  4630.  
  4631.    NoRescan disable the hard rescan for BT-XE. With NoRescan BT will only
  4632.    reread the BTRESCAN.DMP file. At least one line must do a full rescan or
  4633.    all BT lines will show wrong outbound values.
  4634.    This function is only needed for very big systems with a rescantime of
  4635.    more than about 10 seconds for a full rescan.
  4636.  
  4637.  
  4638.  
  4639.  
  4640. ==============================================================================
  4641. ==============================================================================
  4642. ====   --------------------   ================================================
  4643. =====-> Things Still To Do <-=================================================
  4644. ====   --------------------   ================================================
  4645. ==============================================================================
  4646. ==============================================================================
  4647.  
  4648. - for unfixed bugs see knwnbugs.xr6
  4649.  
  4650. - rewriting of terminal stuff from line-oriented output to fullscreen
  4651.   sbuf'd windowed input/output. This is currently a real mess, sorry -
  4652.   please use an external terminal program if you want to call a BBS.
  4653.  
  4654. - "PrivateNet" / Boss* necessary ?
  4655.  
  4656. - Event behaviour screen (Alt-N) : move strings to language.txt & clarify.
  4657.  
  4658. - Write importers from popular BBS packages into history.
  4659.  
  4660. - more V7+ usage / features
  4661.  
  4662.  
  4663. [EOF]
  4664.