Oberon CommPak/2 Dynamic Link Library Asynchronous Communications Routine Library for use with TE/2 Version 1.02 Oberon Software 518 Blue Earth Street Mankato, MN 56001-2142 Voice Phone: 507/388-7001 BBS: 507/388-1154 MCI Mail: oberon/413-5847 GEnie Mail: B.FLOWERS CIS: 72510,3500 September 10, 1992 ------------------------------------------------------------- Copyright 1991-92, Oberon Software, Mankato, MN - All Rights Reserved ------------------------------------------------------------- This version of the file COMMPAK2.DLL is a replacement for the file of the same name which is distributed with the Oberon Terminal Emulator/2. The dynalink library contains the routines which TE/2 uses for its low and medium level access to the communication device, terminal emulation, and file transfer protocols. If you are currently using TE/2 version 1.20 or 1.21 you should replace your existing COMMPAK2.DLL with this file. This version of COMMPAK2.DLL is NOT guaranteed to work with any version of TE/2 prior to version 1.20. If you are using a version of TE/2 prior to 1.20, you should obtain the latest version. Please contact Oberon Software if you are unable to locate a copy. Oberon Software will no longer officially support versions of TE/2 prior to Version 1.10.C nor versions of COMMPAK2.DLL prior to Version 0.99. ------------------------------------------------------------- The CommPak/2 Dynamic Link Library is a shareware product of Oberon Software. You may freely use it in conjunction with TE/2 with no further registration commitment than is already implied by your use of TE/2. If you are already a registered user of TE/2, use of this file is completely free. If you have not registered TE/2, you are urged to do so, but this file is considered to be part of the shareware package and does not require its own separate registration. Enhancements to this library will occur from time to time independent of version releases of other Oberon Software products. The most current version of this library, so long as it is compatible with the current released version of TE/2, will always be available on the Oberon User Support BBS (507/388-1154, HST). We will also make sure that new releases of this library appear on GEnie, Compuserve, BIX, and major BBSes around the world as they become available. ------------------------------------------------------------- INSTALLATION: If you have already installed a compatible version of TE/2 (as defined above), simply locate the file COMMPAK2.DLL on your hard disk and replace it with this copy of that file. Please note that if TE/2 is currently running you must exit TE/2 before copying the new file over the existing one. The next time you start TE/2 the new dynamic link library will be used. If you have not yet installed TE/2, please follow the installation instructions contained in the TE/2 documentation and then replace COMMPAK2.DLL as outlined in the previous paragraph. ------------------------------------------------------------- WHAT'S NEW? File Transfer Protocols ======================= In some situations, especially on 20MHz and slower computers or when using TE/2 with a shared modem over a LAN, when a error was encountered by the protocol (notably ZModem), the protocol could enter a state wherein it would request a resend of a packet but not actually get the request transmitted until a sizeable portion (or all) of the incoming file was received at which point the sending protocol would drop back and begin the retransmission. This would result in very poor performance in some cases or an apparent 'lock up' in other cases. This release of Commpak/2 addresses this problem. ----------------------- The following information covers the changes made between Commpak/2 Version 1 .00 and 1.01 in July, 1992. File Transfer Protocols ======================= All file transfer protocols have been reworked somewhat. YModem has been recompiled to remove some overzealous compiler optimizations which were causing troubles in many cases. A "priority contention" between several threads (used in all the protocols) has been resolved which should result in more robustness for all the protocols. ZModem has been heavily worked on to deal with several problems including the occurrence of large numbers of retried packets, CRC errors, and failure to resynchronize after retried packets. Further, the ZModem in Commpak/2 1.00 would fail to work with some other implementations of ZModem such as the DOS program DSZ and the Unix sz if the sending program attempted to escape control characters. This problem has been addressed. This implementation of ZModem will NOT work with the complementary rz/sz which Omen Technologies distributes for VAX VMS systems because those programs contain copyrighted ZModem-90(tm) extensions which insure that these programs will only operate in conjunction with other Omen products. Omen Technologies sells a VAX VMS version of rz/sz which will work with other vendors ZModems. If you need this, you must contact Omen. General notes on the COMMPAK2FLAGS environment variable ======================================================= The two items below both instruct you to set or unset some flags in this environment variable. It would seem to be a good idea to restate the format for this here before proceeding. The variable must be set in the OS/2 environment before TE/2 is executed; Commpak/2 reads the value only at start-up. Thus, you should set the value in your config.sys file or, if you start TE/2 from a batch file, you could set it there. The general format of the variable is: set COMMPAK2FLAGS=:;:; ... where "flag1" and "flag2" are one-letter settings, "val1" and "val2" are the values to which the flags are set and their format depends on the flag in question. You may have as many or as few flags in this list as you need, each flag/value pair is separated from the next by a semicolon. The list itself should be terminated with a semicolon. Thus, to set the VT100 default attribute flag (discussed below) to "23" and the Extended Hardware Buffering flag (also discussed below) to "N", you would use the following statement in your config.sys or start-up batch file: set COMMPAK2FLAGS=V:23;X:N; Currently, the available flags are: Flag Value ---- ----- 'K' Set to 0, 1, or 2 will determine how (or whether) the file transfer protocols sample the keyboard for the ESCape key. 0 implies no keyboard check, 1 will cause it to use a no-wait keyboard read, and 2 will use KbdPeek to check for a keystroke. Default value is 2. 'V' Set to a number from -1 to 255 to set the VT100 default screen attribute. -1 (the default) will enable the default VT100 screen attribute of white on black (7). See discussion below. 'X' Set to 'Y' or 'N'. Default is 'N'. If set to 'Y', this will cause the file transfer protocols to attempt to enable the device driver's Auto-Buffering mode for the 16550 UART. Otherwise, the setting will be left as is. See the discussion below. VT100 ===== People have suggested that it would be more esthetically pleasing if there were a way to override the VT100 default color attribute of White on Black to a setting of the user's choice. As an interim measure, you are now able to set this via the COMMPAK2FLAGS environment variable. To do this set the flag "V" to the decimal value of the attribute you would like the VT100 to use as the default (note, to make this work the best, this should be the same value you use for the TermAttr in TE2.INI). For example, if you like white text on a blue background you should set TermAttr to 23 in TE2.INI and your COMMPAK2FLAGS setting should contain "V:23;" (in TE2.INI you have the option of using the hex notation: 0x17). There is a table in the TE/2 documentation which should help you in deciding what the numeric value of the color attribute you wish to use is. In the next release of TE/2, this will be directly settable from TE/2; the COMMPAK2FLAGS flag is only an interim workaround. Extended Hardware Buffering =========================== Changed default value on "X" flag for COMMPAK2FLAGS: ---------------------------------------------------- The "X" flag (which is set to "Y" or "N" to enable/disable the probe for a 16550 UART when protocols start up) used to default to "Y", it now defaults to "N" because the OS/2 com driver mishandles this on some machines (notably some PS/2 model 70's with a 16450 UART in which case it causes OS/2 to halt!). Thus, if you have been instructed to "set COMMPAK2FLAGS=X:N;", you can now remove this from your config.sys or session start-up if you would like. General note regarding Extended Hardware Buffering -------------------------------------------------- It is probably best to set this via the OS/2 MODE command as is appropriate for your hardware and to set TE/2 and Commpak/2 to not alter the setting. With the change in COMMPAK2FLAGS mentioned above, no further action is required for Commpak/2. For TE/2, you should make sure that the keyword "ExtendedFIFO" is either deleted or "commented out" of your TE2.INI file and/or modem include file. ------------------------------------------------------------- We intend to document the API (Application Program Interface) for CommPak/2 and make it available to interested parties. If you are interested in such a toolkit, fell free to contact Oberon Software via the Oberon BBS for information. ------------------------------------------------------------- The code contained in the accompanying file COMMPAK2.DLL ("the software") and this document are: Copyright (c) 1990-1992 by Oberon Software 518 Blue Earth Street Mankato, MN 56001-2142 USA Portions of the ZModem code are: Copyright (c) 1991-1992 by Chris Laforet and Chris Laforet Software Graham, NC ------------------------------------------------------------- Use of this software for any purpose whatsoever constitutes your unqualified acceptance of the following statements. The author makes no warranty or representation that the software will be error free. The author disclaims any warranties, either express or implied, including but not limited to any implied warranty of merchantability or fitness for any particular purpose. The user agrees to take full responsibility for the selection of and any use whatsoever made of the software. IN NO EVENT WILL THE AUTHOR BE LIABLE FOR ANY DAMAGES WHATSOEVER (INCLUDING WITHOUT LIMITATION DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION OR THE LIKE) ARISING OUT OF THE USE OF, INTERRUPTION IN THE USE OF, OR INABILITY TO USE THIS SOFTWARE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF ANY POSSIBILITY OR LIKELIHOOD OF SUCH DAMAGES.