Addendum to BinkleyTerm Documentation Changes and Additions for BinkleyTerm Version 2.50 Copyright (C) 1991 Bit Bucket Software, Co. INTRODUCTION Once again, the documentation for this latest release of BinkleyTerm is being issued as an addendum to the previous docs. Information contained herein should be considered as superseding any previous documentation. We expect to have a comprehensive update for the BinkleyTerm docs by Q4 1991 or Q1-1992. ------------------------------------------------------------------------ --== WARNING!!! ==-- --== THIS VERSION IS NOT A PLUG IN UPGRADE FOR VERSION 2.40!!! ==-- ------------------------------------------------------------------------ Bink 2.50 will MOST DEFINITELY break your 2.40 batch files, if you're using the "BBS Spawn", "BBS Batch", or "ExtrnMail" methods of calling up your BBS. The way that Bink hands the baton to the BBS has changed - TWO bps rates are now passed to the outside world. Previously, Bink would exit with the following parameters written to the batch file: For the "BBS Batch" and "BBS Spawn" methods, OLD STYLE (v2.40 & earlier): SPAWNBBS %1 %2 %3 %4 %1 = caller's connect rate as reported by the modem %2 = the comm port in use %3 = time to the next event in minutes %4 = extended information in the modem connect string (/ARQ, etc) For the "ExtrnMail" method, OLD STYLE (v2.40 & earlier): EXTMAIL %1 %2 %3 %4 %5 %1 = caller's connect rate as reported by the modem %2 = the comm port in use %3 = time to the next event in minutes %4 = errorlevel exit from the original batch file %5 = extended information in the modem connect string (/ARQ, etc) NOW, BinkleyTerm 2.50 passes the link rate first, and the caller's actual connect rate as the second parameter. For the "BBS Batch" and "BBS Spawn" methods, NEW STYLE (v2.50): SPAWNBBS %1 %2 %3 %4 %5 %1 = speed of the computer-to-modem link rate in bps %2 = caller's connect rate reported by the modem %3 = the comm port in use %4 = time to the next event in minutes %5 = extended information in the modem connect string (/ARQ, etc) For the "ExtrnMail" method, NEW STYLE (v2.50): EXTMAIL %1 %2 %3 %4 %5 %6 %1 = speed of the computer-to-modem link rate in bps %2 = caller's connect rate reported by the modem %3 = the comm port in use %4 = time to the next event in minutes %5 = errorlevel exit from the original batch file %6 = extended information in the modem connect string (/ARQ, etc) NOTE: If you're locking your FOSSIL driver, the link rate and connect rate passed by BinkleyTerm will be the same (unless the connect rate is one of the new HST-reported non-standard rates). Bink has no way of knowing the port's been locked unless it does the locking itself via the "Lockbaud" config verb. Please refer to the detailed link/connect rate table later in this document for further details. For instance, if you previously used this line in your BBS batch file: Opus Bbs -b%1 -p%2 -t%3 Change it to: Opus Bbs -b%2 -p%3 -t%4 Of course, if you're using the "BBS Exit" method of calling up your BBS, none of this affects you. What does affect you is Bink's ability to recognize the new HST connect strings and how they're handled, explained later. --- o --- Why the change to the batch files? There's a high-tech feature offered by USRobotics' Courier HST, HST Dual Standard and Telebit's T2500 modems that, used in combination with Bink's "LockBaud" config verb, will give your callers with high-speed error-correcting modems the speed benefits of a locked port and others will have the responsiveness of a normal connection. If you are using one of these modems, the new "LockBaud" options will allow you to make use of this feature. NOTE: You can continue to use your current floating or locked port setup by leaving the "LockBaud" config verb commented out and ignoring the following. If your HST or HST/DS is the older version with round LEDs, use your favorite comm program (or Bink's terminal mode), type in "AT&$", and see if "&B2" is listed as an option. If it is, you can use "LockBaud /ARQ". All v.42bis-capable and newer rectangular LED HST & HST/DS models support the "&B2" command. If &B2's not listed, try typing in "ATS$", and see if S-Register 27's bitmap options allow the port to be locked at 19200 and/or 38400 bps. If so, use the &B0S27=nnn setup listed below, and you'll be able to lock, but only at connect speeds of 4800 bps or greater, using "LockBaud 4800". Courier HST and HST Dual Standards manufactured prior to February 1989 (those not supporting the S-register 27 lock options) will not be able to utilize the new "LockBaud" options. Here's how to install this new floating/locked setup: 1) DON'T lock your FOSSIL driver. 2) Enable "LockBaud /ARQ" in Binkley.Cfg (newer HST) "Lockbaud 4800" in Binkley.Cfg (older HST) -or- "LockBaud /REL" in Binkley.Cfg (T2500) 3) Store "&A1", "&A2" or "&A3" in non-volatile RAM to enable the /ARQ extended result strings (HST) 4) Store "&B2" in non-volatile RAM (newer HST) Store "&B0S27=128" for 19200 locking (older HST) Store "&B0S27=192" for 38400 locking (older HST) -or- Store "S66=2" in non-volatile RAM (T2500) 5) If your BBS software allows you to pass the port rate separately (as with Maximus v1.02), call up the BBS as follows: Max Bbs -b%2 -p%3 -t%4 -s%1 (where %1 is the port rate and %2 is the connect rate) 6) If your BBS doesn't allow passing the link (port) speed separately from the connect speed (as with Opus), you can use the following kludge in your SPAWNBBS or EXTMAIL batch file (using X00's XU.EXE or the similar utility included with your FOSSIL driver): Rem convert 1-based port from Bink to 0-based for XU If "%3" == "1" SET PORT=0 If "%3" == "2" SET PORT=1 . . Rem it's always OK to lock with XU since unlock follows XU LOCK:%PORT%:%1 Opus Bbs -b%2 -p%3 -t%4 if ERRORLEVEL . . . . Rem unlock the port XU LOCK:%PORT%:OFF Note that Opus uses a 1-based comm port number, but XU & X00 use a 0-based comm port number. In the docs for Opus 1.72a, this alternative method has been described: NOTE: This behavior has NOT been verified! ------------------------------------------------------------------------ New command-line parameter: -a[modem string] This ONLY affects people who are using Binkley 2.5+ and HST/DS modems and the Dual Standard's &B2 option! Binkley 2.50 will be sending the modem connect string infor- mation, the stuff after the baud rate, out as a separate para- meter. I don't remember exactly the sequence, but for Opus 1.72 there are two ways to handle it: (Example! I don't know exactly how Binkley is handling this!) %1 User Baud %2 Port %3 Time to next event %4 Locked Baud %5 Extended modem information. From a batch file you would call Opus as: Opus bbs -b%1 -p%2 -t%3 -a%5 However, Opus will ALSO accept this: Opus bbs -b%1%5 -p%2 -t%3 Either way Opus will see the /ARQ and know that if &B2 has been configured that the baud rate is locked, if the /ARQ is not there, the baud rate will float. ------------------------------------------------------------------------- With "&B2" or "S66=2" enabled, when an HST or T2500 establishes a connection with another error-correcting modem (an /ARQ or /REL connect), it will shift its DTE rate (the speed it uses to talk to your computer) UP to the rate you stored in its non-volatile ram (NVRAM) when you initially set it up. To adjust this stored rate, set your favorite comm program (or Bink's terminal mode) to the desired rate and send the modem an AT AT&W. The modem stores the bps rate of the command in its NVRAM. Each time it makes an /ARQ or /REL connection, it checks NVRAM for the specified DTE rate, and sets it accordingly. For non-/ARQ or non-/REL callers, it sets the DTE rate to the connect rate. For older HSTs set to &B0S27=nnn, when the connect rate is 4800 bps or greater, the DTE rate will be set according to the value of S-register 27 (128 for 19200 bps, 192 for 38400 bps). --- o --- USRobotics Courier HST and HST Dual Standard modems' new CONNECT 14400, CONNECT 12000, and CONNECT 7200 modem result codes are now understood. Bink will pass the new bps rates as the connect rate, but will pass the link rate as the next highest "legal" link rate. For example, here's a table showing how Bink reacts to connects with and without use of the "LockBaud" verb: %1 %2 Modem Connect String Link Rate Connect Rate No "LockBaud /ARQ" & "Baud 38400" (or 19200) CONNECT 14400/ARQ 19200 14400 CONNECT 12000/ARQ 19200 12000 CONNECT 9600 9600 9600 CONNECT 9600/ARQ 9600 9600 CONNECT 7200 9600 7200 CONNECT 7200/ARQ 9600 7200 CONNECT 4800 4800 4800 CONNECT 4800/ARQ 4800 4800 CONNECT 2400 2400 2400 CONNECT 2400/ARQ 2400 2400 Using "LockBaud /ARQ" & "Baud 38400" CONNECT 14400/ARQ 38400 14400 CONNECT 12000/ARQ 38400 12000 CONNECT 9600 9600 9600 CONNECT 9600/ARQ 38400 9600 CONNECT 7200 9600 7200 CONNECT 7200/ARQ 38400 7200 CONNECT 4800 4800 4800 CONNECT 4800/ARQ 38400 4800 CONNECT 2400 2400 2400 CONNECT 2400/ARQ 38400 2400 Using "LockBaud /ARQ" & "Baud 19200" CONNECT 14400/ARQ 19200 14400 CONNECT 12000/ARQ 19200 12000 CONNECT 9600 9600 9600 CONNECT 9600/ARQ 19200 9600 CONNECT 7200 9600 7200 CONNECT 7200/ARQ 19200 7200 CONNECT 4800 4800 4800 CONNECT 4800/ARQ 19200 4800 CONNECT 2400 2400 2400 CONNECT 2400/ARQ 19200 2400 --- o --- CHANGES TO THE CONFIGURATION FILE: Lockbaud Jeff Nonken's Lockbaud ARQ idea has been implemented. The should be that part of the connect string from the modem that identifies an error-free connection. The FOSSIL should NOT be locked if this option is used. For example: Using an HST modem: Baud 38400 Autobaud LockBaud /ARQ With the modem set to &B2, [&A1, &A2 or &A3] (and bps rate 38400 saved in non-volatile RAM) both Bink and the modem are set to 38400 bps on any error-free connection. This allows maximum throughput on MNP5 or v.42bis connections where data compression is used, while non-ARQ sessions enjoy improved interactive performance. On a Telebit T2500: Baud 19200 Autobaud LockBaud /REL With modem register S66 set to 2, the same feature is enabled on the T2500 modem. If you have a modem with more than one response code which indicates an error-free connection, you can use multiple "LockBaud" lines (up to 16). Privatenet If this line is commented out, BinkleyTerm 2.50 offers full 5-D addressing for points. For example, if you are point 5 off my system, your address would be "1:106/2000.5@fidonet.org", expressed in 5-D notation. In other words, the five dimensions are: "zone:net/node.point@domain". Here are the details of how it's implemented: In your private nodelist segment, include points as follows (be SURE that you EXACTLY duplicate the information in the distributed nodelist for your net host and your node): Host,106,Houston_Area,Houston_TX,Allan_Madar,etc,etc,etc ,2000,COMM_Port_One,Houston_TX,Bob_Juge,etc,etc,etc Point,1,Point_1,Houston_TX,John_Smith,etc,etc,etc Point,2,Point_2,Houston_TX,Mike_Jones,etc,etc,etc . . etc Run a nodelist processor which can generate points in V6, V5, or V7 formats, such as Xlaxnode v2.52. What the generated nodelist looks like: NODELIST.IDX (V6) File: Points will be listed as -1/pointnumber in entries following the bossnode. To find a point, you locate an entry for the boss, then search for subsequent -1/??? entries for a match or pointnumber. Because pointnets are now and probably will continue to be inserted only via private lists, you must continue this process until you either find the point or can't find another entry that matches the bossnode. . . netnum/0 . . netnum/nodenum -1/pointnum -1/pointnum -1/pointnum . . NODELIST.SYS (V5) file: In point entries, net is -1, node is the point number NODELIST.DAT (V6) file: In point entries, node flag bit 12 (hex 1000) will be set to indicate that this entry is a point, and the hub node field will contain the point number instead of a hub. Where is the outbound area for points? Let's say you are storing mail for points off of Vince's system (1:132/491). You would do so by creating a directory 008401EB.PNT in your Zone 1 Fidonet outbound directory. (the hex representation of "132" is "84", "491" translates to hex "1EB", so "008401EB" represents 132/491 in hexadecimal) If you were in Zone 1 of Fidonet, a crash packet to Vince's point 12 ("12" is "C" in hex) would be something like: C:\BINKLEY\OUTBOUND\008401EB.PNT\0000000C.CUT * IMPORTANT NOTE: If you're satisfied with the current fakenet method * or just want to wait until other tools are available to manage this * new capability, just leave "PrivateNet" as it is in your config file. Version6 Version 6 nodelist operation. The previous "NewNodeList" verb is also recognized for Version 6 nodelist operation by Bink 2.50 but will NOT be supported in future versions of BinkleyTerm. Version7 Enables support for the new Version 7 compiled nodelist format developed by Doug Boone for Opus 1.70. This format offers a 40% savings in file size compared to Version 6. XlaxNode 2.52 and newer versions of ParseLst can be used to generate Version 7 nodelist files. For comparison, here are the sizes of compiled nodelist files for the full Fidonet Nodelist (Day 221) in Version 6 & Version 7 format: Version 6 NODELIST.DAT 1605248 bytes NODELIST.IDX 50164 bytes FIDOUSER.LST 638786 bytes _______ 2294198 bytes Version 7 NODEX.DAT 794595 bytes NODEX.NDX 191488 bytes SYSOP.NDX 247296 bytes ______ 1233379 bytes 1060819 byte savings NOTE: The "sysop name lookup" feature with Version7 uses the "SYSOP.NDX" file, not the Version6 "FIDOUSER.LST" file. Be sure to use Version7 compiler keywords "Userlist" or "Interlist" if you want this feature supported. BlankWait Sets the number of seconds Binkley will wait before blanking the screen when the "ScreenBlank" config verb is uncommented. StartBlkLen Allows adjustment of the starting Zmodem session block size from a value of 64 bytes to 1024 bytes. Communications on noisy lines often benefit from use of a smaller initial block size. If this verb is commented out, behavior is identical to 2.40. MaxTime Specifies the maximum cumulative time allowed for file request sessions in minutes. This verb can be used in combination with the file request size limiters (MaxBytes, KnownMaxBytes, ProtMaxBytes) as well as the file request quantity limiters (MaxReq, KnownMaxReq, ProtMaxReq). KnownMaxTime See MaxTime above. ProtMaxTime See MaxTime above. RingTries Limits the of unanswered rings Bink detects before it hangs up on an outbound call. Your modem must be able to identify and report "RINGING" for this feature to work. Bink defaults to 4 where this parameter is not otherwise set. (Thanks to Henry Clark and Ron Bemis for this idea). NoSharing Disables file sharing calls in networked environments. NoSize Disables Bink's calculation and display of queued file sizes for the pending outbound window display. If you see a big performance problem associated with this feature, try uncommenting this verb. When in force, the "Q=nnn" schedule flag is also disabled. Serial Bink now defaults to "UNREGISTERED" operation. To disable it now and forever, uncomment the verb "Serial" followed by a of your choice. Vince intends to ALWAYS run the UNREGISTERED version -- proudly. WinSlice Uses Windows' timeslice rather than the MSDOS (int 28) timeslice. Use of a Windows-specific FOSSIL is required to prevent loss of characters, however. --- o --- SCHEDULING EVENTS CHANGES AND ADDITIONS H "High-Priority Crash" - Binkley will send Crash flavored mail IMMEDIATELY, no matter what the cost. All other mail flavors are sent according to cost or other constraints imposed by the current event. This behavior mirrors that of Crashmail under Opus 1.1x+ with one exception - Crashmail call(s) are made at normal intervals during an H event, rather than forcing a repetitive poll as with Alt-M. Q=nnn Inhibits Bink from calling out with less than nnn bytes of data for a node (?LO + ?UT sizes). You should probably have at least one event with Q=0 (the default if none is specified) in order to get the mail out. (Henry Clark gets credit for this idea) OTHER CHANGES AND TWEAKS --- o --- BinkleyTerm now works internally with function codes, rather than scan codes. This means that ALL keyboard behavior can be modified in the ENGLISH.TXT file. Examples are included in that file to illustrate how this is accomplished. Any key combination you wish remapped should have the original and remapped scan codes preceded by the capital letter "U" for Unattended mode, "T" for Terminal mode, or "A" for Ansi escape sequences. The file should then be recompiled into a language file using BTLNG.EXE in the following manner: BTLNG english.txt binkley.lng Replace the original BINKLEY.LNG file with your newly compiled revision, and your keyboard remappings will take effect. --- o --- A new operating-system conditional switch has been added to BTLNG.EXE, the language file compiler: ?DOS at the beginning of a line will tell BTLNG to compile the line if it's being run under DOS ?OS2 at the beginning of a line will tell BTLNG to compile the line if it's being run under OS/2 --- o --- "Doorway" mode is now supported in Bink's Terminal package. When in this mode, all keystrokes are sent out the modem as entered (except for the command used to toggle the mode on & off). If a function key is used, a zero followed by the scan code is sent. The default command to toggle "Doorway" mode on and off is "Alt =" (it can be remapped the same as other Binkley functions). --- o --- An upload/download capability has been added to scripts. It's invoked as follows: Upload x filespec Download x where x is the protocol selection: Z for Zmodem S for SEAlink --- o --- The escape character "\" can be used in a phone number to escape subsequent characters that otherwise would be interpreted by Bink's dialer. To send the "\" backslash character itself, use "\\". --- o --- Incoming call collision response has been improved. If Bink receives a NO DIAL TONE message from the modem when attempting to dial out, it will now attempt to answer. This new behavior does not apply during the first minute after startup or unbusying, to avoid misinterpreting central-office dead lines (caused by keeping the line off-hook for extended periods to give callers a busy signal). --- o --- .BSY protection has been extended over the entire session. Two points to be aware of, however: Inbound FTS-0001 sessions will have to accept a packet before the flag can be test/set. If an outbound area for the calling domain+zone doesn't exist, Bink will attempt to create the flagfile in the flags directory - if you have one defined. This allows Bink to accept all mail, but for ongoing mail operations a separate outbound directory should be created for the zone/domain in question. --- o --- Bink now attempts a DietIfna session ONLY with a remote that indicates the ability to do so based on the capability bit in the system's packet. --- o --- In fullscreen mode, the pending event display area at the bottom of the screen will notify the sysop that there is unread netmail pending. This feature only works on systems that use the fidonet one-file-per-message *.MSG structure. --- o --- An XON (Ctrl-Q) is sent at the start of session whack logic to unstick systems that may have run afoul of "noise" from MNP negotiations between error-correcting modems. What's happening? Occasionally, an XOFF (Ctrl-S) is received during the initial synchronization between modems. This effectively stops communications until an XON is sent in response. In theory, this shouldn't happen, but it sometimes does. The XON is sent as "preventive medicine" to avoid this problem. --- o --- The cost and duration of a call is logged at the end of an outbound session in the format: Session with zone:net/node Time: xx:xx:xx Cost: $xx.xx --- o --- The low-level FOSSIL write routines now have a 1-minute timeout. That is, in the event your modem goes out to lunch on you (it drops the CTS clear to send flow control line and keeps it down for 1 minute or more), Bink should hang up and recover. --- o --- Outdialing begins less than 10 seconds after startup, to help get calls done in high traffic situations. --- o --- While waiting for a call in fullscreen mode under a multitasker, the bottom line of the "Current Settings" window identifies the multitasking software in use. This line changes to an elapsed time indicator during a call, and changes back when the session is concluded. The line was redisplaying the multitasker only after a session concluded with an exit. --- o --- Hitting Alt-A in unattended mode will send the answer string to the modem. --- o --- Bink is more responsive to the key for cancelling operations during session startup and elsewhere. --- o --- The use of for shelling to the local command interpreter has been disabled. ALT-J will still perform a "jump to DOS". --- o --- In fullscreen mode Bink displays the amount of mail queued for each node. --- o --- File sharing is supported in DOS versions greater than 2. Most files are opened in "deny-write" mode. This support is fully implemented in the MSC 6.00A version, approximately 90% in the BorlandC version, and probably 50% in the Watcom and Zortech versions. --- o --- A check is made to make sure there's mail to send to a node before actually dialing out. If not (like maybe it disappeared in a multitasking environment), the entry for that node will disappear. --- o --- Logic was added to ensure a periodic rescan of the outbound area. --- o --- Support is removed for V5, SEAdog and QuickBBS nodelists in distributed .EXE files; however, the source files have a conditional compile switch to generate executables with these features supported. --- o --- Finally threw out the old swapper code and replaced it with Thomas Wagner's excellent public domain code. This gives Bink XMS or EMS swapping by default and swapping to a file if XMS or EMS is not available (or insufficient). It also uses the create-temp-file function in DOS if available, which should make housekeeping a breeze. --- o --- Cleaned up code and MAKEs to allow DOS compilation using NDMAKE and NMAKE with MSC 6.00a (Large model), DOS using BCX (Large model), DOS using WATCOM and WMAKE (Large model), OS/2 using NMAKE with MSC 6.00a (Large model), and OS/2 using WATCOM and WMAKE (Large model). Zortech C DOS (Virtual Memory model) is also supported. --- o --- The FTSC Product Code lookup table has been moved from the executable to ENGLISH.TXT, so that any ongoing changes or additions to these codes (new products between releases) can be made by the user. Simply insert a line beginning with "P" and the product code number, followed by a space and product description. This table controls recognition of what product is calling - Bink's own Product Code passed in the initial YooHoo packet is NOT affected.