COMROUTE A MODEM SHARING PROGRAM FOR NOVELL NETWARE IPX NETWORKS VERSION 1.00 11/3/95 Copyright c 1995 by R J Crowther TRADEMARKS Netware, Netware Lite, Personal Netware and Novell are registered trademarks and IPX is a trademark of Novell, Inc. Microsoft and MS-DOS are registered trademarks and Windows and Windows for Workgroups are trademarks of Microsoft Corporation. PKUNZIP is a trademark of PKWARE, Inc. INTRODUCTION COMROUTE allows a number of workstations attached to a Novell network to share a modem or other serial (RS-232) device attached to a COM port. Network users are used to the concept of sharing resources : that is the fundamental reason for networking. Novell networks provide sophisticated facilities for sharing storage devices and printers, but not for serial devices such as modems. The "Novell networks" on which COMROUTE works include all those based on the IPX protocol. These include all versions of Netware, Netware Lite and Personal Netware. This version of COMROUTE does not include support for NETBIOS networks such as Windows for Workgroups. A future version of COMROUTE for NETBIOS may be released if there is user demand. Most network applications involve the concept of one or more "clients" or resource users, and "servers" or resource providers. COMROUTE is no different, and has two main parts, OFFER which is the server and CAPTURE which is the client. Note that neither part runs on a Novell 2.x , 3.x or 4.x file server - both are DOS programs which run on workstations. OFFER "takes over" a comms port on the server workstation, and allows clients running "CAPTURE" on other workstations to connect to it. Each copy of OFFER captures a single comms port, and only one client may connect at one time. Both OFFER and CAPTURE are Terminate and Stay Resident programs. This means that the server workstation (as well as the client) can be used as normal while servicing the comms port. Port configuration such as baud rate, number of data bits and so on are automatically handled by the programs. A utility program "UTIL" allows the user to display configuration and statistics, and to unload OFFER or CAPTURE from memory. INSTALLATION Installing the software is simply a matter of using PKUNZIP to extract the files into your preferred directory. PKUNZIP is not included as part of the package, but is available as Shareware. The COMROUTE software makes no assumptions as to the location of the files, and they can be loaded on a file server if required. SOFTWARE LICENCE SHAREWARE VERSION You may install and use this software for 60 days for the purpose of evaluating it. If you find the software useful you must register it, otherwise you must discontinue using it after this period. You are encouraged to copy and share this software, but this documentation must be included. The software has specific limitations set out below. Support is not guaranteed for the Shareware version. Please support the concept of Shareware by purchasing the registered version if you use COMROUTE beyond the evaluation period. REGISTERED VERSION You are licenced to use this software on a single network. Any number of clients may access a single modem or serial port, however one licence must be purchased for each shared modem or serial port operated simultaneously. Support is available to registered users via post or e-mail. See the separate Support section. Free distribution of this version to third parties is not permitted. Please note- the registered software is serial-numbered. Licence violations across a single LAN are detected by the software. SHAREWARE VERSION LIMITATIONS The shareware version has the following limitations : 1) The baud rate is limited to 9600. Any higher baud rate which is requested will default to a setting of 9600 baud. 2) The server will cease to operate after 1 hour - it will disconnect from any active clients, and refuse further connections. The server will also decline to unload, meaning that to re-activate it the server will have to be re- booted. The normal operation of the server PC will otherwise be unaffected. DISCLAIMER The author does not accept any responsibility for loss or damage, direct or consequential, arising from the use of this product, nor from the inability to use it for any reason. In any case, the author's liability will be limited to the sum paid for the licence to use the product. QUICK START Here is the quick way to get started : Assuming you have a modem attached to a workstation via a serial port connected to COM1: and a fully configured serial cable allowing hardware handshaking. The client software will emulate COM1. 1) On the PC with the modem attached (the server) enter OFFER -c1 -nModem -fh1 -c1 specifies COM1 -nModem sets the server name for this port -fh1 enables hardware flow control in RTS/CTS mode 2) On the PC which is to be the client enter CAPTURE -c1 -nModem -c1 specifies that COM1 is to be emulated -nModem sets the server to connect to 3) On the client PC start and configure your comms software to use INT14 and (in this case) port 1. 4) Communicate ! GENERAL DESCRIPTION TSR Operation Both OFFER and CAPTURE programs operate as Terminate and Stay Resident (TSR) programs in DOS, each occupying about 20K of memory. Once each is loaded, it continues to run by processing when DOS is idle, allowing other programs to be loaded. The Novell client programs (NETX or VLM) operate in the same way. OFFER "takes over" the specified serial port on the server workstation. Incoming data from the port is sent to a client workstation running CAPTURE while data from the client is sent to the port. Both OFFER and CAPTURE are Windows compatible. Network Communication The communications between OFFER and CAPTURE are implemented by sending IPX data packets between the workstations. These packets contain data as well as control and configuration information (such as the baud rate). Note that both OFFER and CAPTURE must be on a single network segment, that is no network bridges or routers, or file servers acting as bridges, may intervene between the workstations. A future version may remove this limitation. INT 14 Interface How it works CAPTURE talks to your communications programs via the INT- 14 interface. INT-14 is a hang-over from the earlier days of PCs, as it is the BIOS interface used to talk to the serial ports. In fact, the INT-14 BIOS services proved too slow to be of practical use, as they did not use interrupt processing, so most software vendors wrote code to directly interface to the serial port hardware. This was unfortunate, since the BIOS was supposed to insulate programmers from the specifics of the hardware. However, the BIOS interface suits our purpose, as INT-14 calls can be redirected to a program such as CAPTURE, and this allows the "real" serial hardware to be on a different PC altogether. Performance is not likely to become a problem, provided the network is not overloaded, since Ethernet for example runs at least 100 times faster than a PC serial port can. OFFER uses interrupt-driven serial port handlers to ensure that high serial data rates can be accommodated without problems. For best performance at higher speeds, 16550 FIFO-buffered UARTS are fully supported. In most cases even at 19.2k baud, COMROUTE performance will be indistinguishable from direct hardware connection. Of course, your communications software must support the INT- 14 BIOS interface to be useable with COMROUTE, but many current programs have this option. Int 14 Port Number When you start CAPTURE, you specify a port number with the "-c" option. The communications program you are using needs to be configured to use the same port number. CAPTURE can use any port number between 1 and 9, but not all comms software packages do. Since ports 1 to 4 are likely to be "real" comms ports on the client PC, it is best to use port numbers in the range 5 to 9 provided the comms software supports them. As an example, WinCIM has a "LAN" setting in the Session settings window when you select Int14 as the comms port. Using Windows Both OFFER and CAPTURE are compatible with all versions of Windows. In either case, the TSR program must be loaded in DOS before Windows is started. OFFER may suffer performance degradation when some Windows programs are run. The performance can often be improved by changing the "INT28FILTER=" setting in the [STANDARD] section of the SYSTEM.INI file to a lower value (the default is 10). CAPTURE supports Windows programs which are capable of using the INT-14 interface. Loading in High Memory Both CAPTURE and OFFER can be loaded in high memory above 640K if your 386 memory manager supports this. Flow Control Flow control is the method by which the flow of data between serial devices is regulated. This allows devices that can process incoming data at different rates to hold up the flow of data until they can "catch up". COMROUTE can use four flow control modes. Each of the modes is "bi-directional" - OFFER uses flow control to prevent its own buffers overflowing and also responds to flow control from the connected device. OFFER and CAPTURE have data buffers of the following sizes (not configurable) : OFFER transmit buffer (data to port) : 1024 bytes OFFER receive buffer (data from port) : 1024 bytes CAPTURE receive buffer (data from port) : 512 bytes CAPTURE transmit buffer (data to port) : 256 bytes No flow control : No action is taken if comms buffers overflow, and data may be lost. However, this mode may be suitable for block data transmission (e.g. XMODEM), where the data block size is small enough to fit in OFFER's data buffers. Software flow control (XON/XOF) The software sends an XOF to interrupt the flow of incoming data when its buffers fill up. It sends an XON to restart data flow. If an XOF is received, no further data is transmitted until an XON arrives. Hardware flow control (RTS/CTS) The software controls RTS to stop the flow of incoming data when its buffers fill up. The software reacts to CTS to control the transmission of data. This is the most common form of hardware handshaking, and is suitable for use with most modems. Hardware flow control (DTR/DSR) The software controls DTR to stop the flow of incoming data when its buffers fill up. The software reacts to DSR to control the transmission of data. OFFER Function OFFER is the server program in the COMROUTE package. It runs on a PC which has a modem or other serial device attached to one of its serial ports. Other PCs (clients) may then attach to and utilise this port. OFFER should generally be started before any clients attempt to attach to it. Parameters -n Sets the name by which the port will be known to the network. Up to 16 characters may be used - case is significant. Default if this parameter is omitted is "Comms". -c Sets the port number to be utilised. Ports COM1 to COM4 may be specified. DOS default settings for port address and IRQ will be used unless specified by the -a and -I parameters. The default port if this parameter is omitted is COM1. Defaults addresses and IRQs are : COM1 address 3F8, IRQ 4 COM2 address 2F8, IRQ 3 COM3 address 3E8, IRQ 4 COM4 address 2E8, IRQ 3 -a
Sets a non-standard port I/O address for this port.
is a hex value. Default if this parameter is omitted is the default address for the specified comms port. -i Sets a non-standard IRQ number for the interrupt on this port. Default if this parameter is omitted is the default IRQ number for the specified comms port. -f Specifies the flow control mode for the port. Possible values are : -fn No flow control -fs XON/XOF flow control -fh1 RTS/CTS flow control ** -fh2 DTR/DSR flow control Default if this parameter is omitted is "no flow control". ** RTS/CTS flow control is recommended for use with most modems. CAPTURE Function CAPTURE is the client program in the COMROUTE package. It runs on a PC which has communications software that can be configured to use INT14. CAPTURE locates servers by polling for them. If you specify a server using the -n option, CAPTURE will search for that server. If the server is not specified or not found, CAPTURE will load but will not connect until UTIL is used to specify a connection. Note that you can set the flow control used by the server when loading CAPTURE. This is to allow multiple clients to use different flow-control modes if required. Parameters -n Sets the name of the server to connect to. Default if this parameter is omitted is to load but not to connect to a server. -c Sets the port number to be emulated by CAPTURE. Can be in the range 1 to 9. Default if this parameter is omitted is port 1. -f Specifies the flow control mode for the server port. Possible values are : -fn No flow control -fs XON/XOF flow control -fh1 RTS/CTS flow control ** -fh2 DTR/DSR flow control Default if this parameter is omitted is "no flow control". ** RTS/CTS flow control is recommended for use with most modems. UTIL UTIL is a program which contains display and utility functions for both OFFER and CAPTURE. Its functions are all started by command line options. Unload CAPTURE / OFFER from memory Syntax : UTIL -u Applies to : CAPTURE and OFFER This function unloads CAPTURE or OFFER from memory, provided that no other TSRs have been loaded after them. If necessary, a disconnection is also performed. Disconnect Client from Server Syntax : UTIL -d Applies to : CAPTURE and OFFER This function disconnects (breaks) the link between CAPTURE and OFFER. Another client may then connect. Note that the disconnection may be made at either the client or the server. Display Configuration Syntax : UTIL -c Applies to : OFFER This function displays the configuration of the server. Display Configuration continuously Syntax : UTIL -C Applies to : OFFER This function displays the configuration of the server, refreshing regularly. Press Escape to stop the display. Display Statistics Syntax : UTIL -s Applies to : CAPTURE and OFFER This function displays statistics relating to IPX and serial communications. Display Statistics Continuously Syntax : UTIL -S Applies to : CAPTURE and OFFER This function displays statistics relating to IPX and serial communications, refreshing regularly. Press Escape to stop the display. Change Flow-Control Mode Syntax : UTIL -f Applies to : CAPTURE and OFFER Possible values of are : -fn No flow control -fs XON/XOF flow control -fh1 RTS/CTS flow control ** -fh2 DTR/DSR flow control ** RTS/CTS flow control is recommended for use with most modems. Poll for Servers and select connection Syntax : UTIL -p Applies to : CAPTURE This function searches for all servers (copies of OFFER) visible on the network and lists them. The user can then select one to connect to. Poll for Servers and make connection Syntax : UTIL -P Applies to : CAPTURE This function searches for all servers (copies of OFFER) visible on the network. If the server specified by is found, it is connected to. ERROR MESSAGES CAPTURE Error-CAPTURE already installed CAPTURE is already resident in memory. CAPTURE will not be re-loaded. No servers detected A poll failed to discover any servers on the network. CAPTURE will still be loaded, but will remain inactive until at least one server is available. Connection can then be made using UTIL -p or UTIL -P to poll for servers again. Error-Invalid parameter An invalid command-line parameter was entered. Please correct the parameter and try again. Error-IPX support not present IPX support is not currently loaded. Please refer to your network software manuals. Error-IPX error code An IPX processing or communications error was detected. The error number is displayed. See separate list for codes. Fatal-out of memory The program ran out of heap. Please report this error if encountered. OFFER OFFER is already installed OFFER is already resident in memory. OFFER will not be re-loaded. Fatal : error allocating memory Fatal : out of memory The program ran out of heap. Please report this error if encountered. Error-Invalid parameter An invalid command-line parameter was entered. Please correct the parameter and try again. Fatal comms open error A fatal error was encountered opening the comms port. An error number is displayed. See separate list for codes. Error-IPX support not present IPX support is not currently loaded. Please refer to your network software manuals. Error-IPX error code An IPX processing or communications error was detected. The error number is displayed. See separate list for codes. Licence violation detected Operation suspended More than one copy of OFFER with the same serial number was detected on the network. Please unload all extra copies. Shareware version time-out Operation suspended The one-hour time limit on the shareware version has been reached. It will be necessary to re-boot the server to continue using COMROUTE. UTIL OFFER or CAPTURE are not currently installed OFFER or CAPTURE are not loaded. Please load one of them before running UTIL. -c option is not valid for CAPTURE The -c option only applies to OFFER, which is not loaded on this PC. -p option is not valid for OFFER The -p option only applies to CAPTURE, which is not loaded on this PC. ** FATAL : Invalid parameter An invalid command-line parameter was entered. Please correct the parameter and try again. Error - can't unload OFFER due to TSR installed after it Error - can't unload CAPTURE due to TSR installed after it Another TSR program has been installed after OFFER or CAPTURE. It is not possible to unload at this time. Unload request denied OFFER declined to unload, because of shareware time- out or licence violation detected. Already connected to server using UTIL -d before polling for servers. No servers located - cannot connect Polling failed to locate any available servers on the network. If servers are present, they may already be connected to another client. REGISTRATION Please support the Shareware concept by registering this program if you find it useful. Registering COMROUTE will bring the following benefits : 1) Printed manual (if delivered by mail) 2) Latest registered version of COMROUTE will be delivered. 3) The next major version of COMROUTE will be delivered to you free of charge. 4) Support will be given via e-mail or post. Registration costs œ 40 sterling or $ 60 US. You may register by the following means : 1) By post to : Mr R J Crowther 20, Howe Road Haverhill Suffolk CB9 9NJ England Please send either a personal cheque in sterling, or a money order for $ US. If you have no alternative, send notes/bills. All payments are sent at the sender's risk. Other forms of payment are not accepted at present. Please ask if you have a problem with these forms of payment. 2) On CompuServe, through the SWREG forum. This facility may not be available immediately, so please be patient. SUPPORT I will support registered users in the following ways : 1) By e-mail Please mail your queries to me via 100255,660 on Compuserve, or via the Internet to 100255,660@COMPUSERVE.COM 2) By post to : Mr R J Crowther 20, Howe Road Haverhill Suffolk CB9 9NJ England SUPPORT TO SHAREWARE USERS I may be able to help Shareware users, provided queries are sent by e-mail only. Time may limit the amount of support given to Shareware users - to obtain full support please register ! Release History Version 1.00 Beta release 11/03/95