BETA 000
--------

The UCDAVIS dialer script was too long to implement fully plus I 
couldn't make head nor tail of it. The main bits are implemented but 
the wierd stuff at the top will have to be added manually with a text 
editor after config.prg has run successfully.

Script Candidates
=================

A script must have all critical variables configured for the provider. 
Neither can a script be user or modem specific. User and Modem 
specific information must be generalised.

Maintenance
===========

The names and hierarchical positions of items within the SETUP 
directory are best considered fixed. The programs within SETUP all 
rely heavily on shel_read() to obtain their execution path - the term 
current working directory (cwd) applies to this path *not* the path 
which can be obtained from TOS which can easily be different when 
multitasking. A point about shel_read() ...
 
shel_read() should return the full path including program name and 
drive specification. Under Older Gem's it does not, it returns only 
the program name which is useless. In order to maintain backwards 
compatibility, the string returned from shel_read() is searched for a 
':' and if one is not found, Dgetdrv() and Dgetpath() are used and the 
program name appended which emulates the newer shel_read() for all but 
the silliest circumstances.

The batchfiles used all rely on the cwd. The cwd is obtained and the 
path specified in the batchfile is appended to it to build a fully 
specified name in all cases.

The rest of this text assumes that the contents of SETUP are unchanged 
and that wherever the SETUP directory is written, that the user read 
this as the full path to SETUP.

Adding a new Provider
---------------------

setup\install\provider.dat is a simple batchfile, one line per 
provider. Each line consists of two fields - the first field is the 
path to append to cwd and is delimited by a single space character. 
The second field is all the remaining text until eol and is the actual 
text to display in the list of providers which the user sees in the 
install program. E.G.

scripts\newprov\install.dat New Provider

means that setup\install\scripts\newprov\install.dat is the batchfile 
to use when installing for "New Provider" which will be visible to the 
user to select. The full path built must not exceed 128 characters and 
the length of the text to display in the provider list must not exceed 
40 characters currently.

Providers appear in the display window in the order that they appear 
in provider.dat so it is recommended that the entries are manually 
sorted into alphabetical order (case insensitive) when any non 
alphabetical character preceeds an alphabetical one (ie 3<a etc).
'
The directory setup\install\scripts\newprov should be created. Copy 
default.cfg and dial.scr into it and ensure that the dialer script 
name in default.cfg is actually dial.scr.

Now either create setup\install\scripts\newprov\install.dat with a 
text editor or copy one of the others and modify it.

install.dat consists of one line for each file to be copied, typically 
two lines currently, one for default.cfg and one for dial.scr. Each 
line consists of a source field and a destination field, separated by 
a single space. The source field is a path relative to cwd, the 
destination field consists simply of the destination filename (the 
name can be changed during the copy but there is no reason to 
complicate matters by actually doing so)

The provider is now part of the system. A point to note is that 
install.prg copies the files unchanged to their destinations but 
config.prg will strip out comments so the comments in the originals 
might as well be removed.

A new provider script *must* have the following predefined:

ALLOCMEM    = 150000		reasonable general purpose value.
SERIALPORT  = Modem 1		stands most chance of working.
CDVALID     = TRUE		most modems support it.
DIALFILE    = dial.scr		*must* be this.
CLIENT_IP   = 0.0.0.0		*always* zero.
TTL         = 64		leave all these unchanged ...
PING_TTL    = 255
MTU         = 1006
MSS         = 966
PKT_SIZE    = 2048
DFB_SIZE    = 1024
RCV_WND     = 4096
UP_RESPONSE = 2			*must* be 2 without a good reason.
USERNAME    = {nouser}		recommended text.
HOSTNAME    = {nohost}		recommended text unless the provider 
				assigns dynamic IP in which case this 
				will be fixed and should be left 
				unchanged. If there is a fixed part to 
				the domain then it should be appended. 
				An example is {nohost}.demon.co.uk.
FULLNAME    = {noname}		recommended text.
NAMESERVER  = xxx.xxx.xxx.xxx	*must* be valid.
IRCNICK     = {nonick}		recommended text.
IRCSERVER   = {noserver}	recommended text.
IRCPORT     = 6667		recommended text.
IRCPONGMSG  = WWW installer!	recommended text.

BAUD_RATE    = 19200		*never* exceed this.
HANGUP       = ATH		recommended text.
PREFIX       = ATDT		recommended text.
INIT         = ATZ		recommended text.
CONNECT_WAIT = 35		minimum value.
REDIAL_DELAY = 20		minimum value.
PHONE_NUMBER = 9549666		*always* remove PHONE_NUMBER variables!
SUCCESS      = CDWAIT		*must* be present.
FAILURE      = BUSY		*must* be present.
FAILURE      = NO CARRIER	*must* be present.
FAILURE      = NO DIALTONE	*must* be present.
FIND         = ogin:		leave unchanged.
RESP         = {nohost}		recommended text
FIND         = word:		leave unchanged.
RESP         = {password}	recommended text.
FIND         = ocol:		leave unchanged.
RESP         = slip		leave unchanged.
FIND         = IP		if present, leave unchanged .
RESP         = $GET_IP		if present, leave unchanged.

HTTP_PROXY and HTTP_PROXY_PORT *must* be left unchanged if supplied in 
a script. If they do not exist, or they exist and are not valid, then 
they *must* be removed from the script.

Archaic variables should be stripped to save confusing the end user. 
Comments and blank lines are also stripped along the way so remove 
these also.

