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<name>	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<port>	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<address>	Sets a non-standard port I/O address for this port. 
		<address> is a hex value.

		Default if this parameter is omitted is the default 
		address for the specified comms port.


-i<IRQ>		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<mode>	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<name>	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<port>	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<mode>	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<mode>
	Applies to 	: CAPTURE and OFFER

	Possible values of <mode> 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<name>
	Applies to 	: CAPTURE

	This function searches for all servers (copies of OFFER) visible 
	on the network. If the server specified by <name> 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





