AUTOPUMA

Enhancement Script for Telix

Version 1.21

Table of Contents

WHAT IS AUTOPUMA?	1

WHY IS AUTOPUMA?	1

FILES INCLUDED	1

INSTALLATION	2

USING AUTOPUMA	3

AUTOPUMA OPTIONS	3

Show BBS name on status line	3

If phone rings exit with	3

Exit on inactivity	3

Time out even if carrier present?	3

Hang up if no activity for	4

Exit Telix on carrier loss	4

Auto-download protocols	4

Call log	4

User defined string	4

User defined command	4

Visual bells	5

Seconds to delay before exit	5

Show timer or clock on status line	5

Load options from disk	5

Save options to disk	6

Unload Autopuma	6

OTHER OPTIONS	6

AUTO-DOWNLOAD PROTOCOLS	6

General notes about Protocols	6

MPt Downloads	7

BiModem Transfers	7

HS/Link Transfers	9

SZmodem Downloads	9

Caveats about SZmodem	10

Using GSZ or DSZ for Zmodem downloads	10

Caveats about GSZ/DSZ	10

CALL LOGGING	10

AUTOPUMA AND ERRORLEVELS	11

ENTERING VALUES IN THE CONFIGURATION WINDOW	11

CONFIGURING VIA THE ENVIRONMENT	12

RUNNING ANOTHER SCRIPT	12

CONFIGURATION STRINGS	12

RENAMING AUTOPUMA	15

REGISTRATION, SUGGESTIONS, ETC	16

CAVEATS	16

ACKNOWLEDGEMENTS	17

REVISION HISTORY	17

WHAT IS AUTOPUMA?

Autopuma is a script that adds a number of trivial abilities to Telix, such as displaying the BBS name on the status line, automatically starting MPt/Puma, BiModem, and SZmodem or GSZ downloads when the host begins sending, exiting or disconnecting if Telix has not been used, and displaying incoming bells on the screen.

WHY IS AUTOPUMA?

Originally this script simply started Puma (since renamed to MPt) downloads anytime the Puma string was sent by the host, as Telix already does with Zmodem (hence the name, which I have never bothered to change). But I also have a small BBS on the same machine that I use for downloads. Often I would start a download from another BBS then have to leave before the download finished. I'd either have to abort the download to bring up the BBS, or leave with the download still going, and wait until I got back to bring up the BBS. I had some kluges to bring up the board when the download finished, but they required I remember to trigger them before I started the download.

Since I already had this script running "in the background" all the time anyway, I added the ability to monitor activity and bring up the BBS after Telix was left unattended for some amount of time. Then I though it'd be nice if Telix brought up the board for an incoming call. I gave it to a friend who asked for a few more things, then I needed more things...

FILES INCLUDED

AUTOPUMA.SLC	AUTOPUMA script ("resident" portion).

APCONFIG.SLC	Configuration script.

APSMALL.SLC	Small version of AUTOPUMA.SLC.

APSCNFG.SLC	Configuration script for APSMALL.SLC.

APLOG.SLC	Script used by Autopuma for call logging.

BIMODXFR.SLC	Used by Autopuma to start Bimodem and HS/Link transfers.

BIMODXMT.SLC	Bimodem upload script.

BIMODRCV.SLC	Bimodem download script.

BIMODEM.SLC	Script similar to that included with BIMOD124, with minor changes to ensure compatibility with BIMODXMT/BIMODRCV.

BIMODEM.SLT	BIMODEM.SLC script source.

HSLNKXMT.SLC	HS/Link upload script.

HSLNKRCV.SLC	HS/Link download script.

MPTXMT.SLC	MPt upload script.

MPTRCV.SLC	MPt download script.

MPTXMT.SLT	MPTXMT.SLC script source.

MPTRCV.SLT	MPTRCV.SLC script source.

SZMODXMT.SLC	SZmodem upload script.

SZMODRCV.SLC	SZmodem download script.

SZMODXMT.SLT	SZMODXMT.SLC script source.

SZMODRCV.SLT	SZMODRCV.SLC script source.

GSZXMT.SLC	GSZ Zmodem upload script.

GSZRCV.SLC	GSZ Zmodem download script.

GSZXMT.SLT	GSZXMT.SLC script source.

GSZRCV.SLT	GSZRCV.SLC script source.

AUTOPUMA.DOC	This file.

AUTOPUMA.WP5	WordPerfect 5.1 version of this file.

FILE_ID.DIZ	Description file for BBSes that use PCBDescribe or a similar utility.

The difference between the large and small versions is where the code for Autopuma's configuration window resides. This code takes up about 24K of RAM. In the large version it resides in the AUTOPUMA.SLC script, which gives faster response when changing the configuration, but takes up memory you may need for things such as DOS shells and external protocols.

In the small version the configuration window code is in the configuration script, making the resident portion smaller (and the configuration script larger). However the configuration window will not respond as quickly as it does in the large version.

INSTALLATION

Choose the version of AUTOPUMA.SLC and APCONFIG.SLC you want to use, and copy them to the same directory as your other Telix scripts. If you use the small version of Autopuma rename APSMALL.SLC to AUTOPUMA.SLC, and APSCONFIG.SLC to APCONFIG.SLC. If you've never used scripts before you should first specify a script directory. From Telix, press ALT-O and select "Filenames and paths." Select "C" and enter the directory you want to keep scripts in. Make sure you save it ("Write setup to disk") then get back to DOS and copy AUTOPUMA.SLC and APCONFIG.SLC to that directory.

If you want Autopuma to run every time you run Telix, make a batch file (for instance "TLX.BAT") that contains:

TELIX SAUTOPUMA

and run this batch file instead of TELIX.EXE. To take advantage of some Autopuma features you may eventually need to run Telix from a batch file anyway. More on this later.

You may also want to define a key combination to run the configuration script. Press "ALT-K", select <R>egular key table, <E>dit, then choose a key combination (I use ALT-N), and define it as:

@APCONFIG

USING AUTOPUMA

Run Autopuma, either from the DOS command line or batch file with:

TELIX SAUTOPUMA

or from within Telix by pressing ALT-G and giving AUTOPUMA as the script to run.

AUTOPUMA OPTIONS

Run the configuration script (APCONFIG) with ALT-G from within Telix. This will bring up a window with Autopuma's available options.

Options are:

A - Show BBS name on status line........ Yes

If this option is enabled, Telix will display the name of the dialing directory entry that you are currently connected on the status bar. If the name is 14 characters or less it will be displayed in the first 15 characters. Otherwise it's displayed in the first 26 columns.

For unregistered versions, the name is only displayed for 10 seconds.

B - If phone rings exit with............ Once: 100 Twice: 200

This allows Autopuma to force Telix to exit if a call comes in while Telix is offline. If "Once" is set to a non-0 value, and "RING" is received from the modem when there is no carrier, Autopuma will force Telix to exit, returning the value given as a DOS errorlevel. If "Twice" is set to a non-0 value, Autopuma will wait for two rings to come in from the modem, then exit from Telix with that errorlevel. If a second ring does not come in within 7 seconds of the first and an errorlevel is given for "Once", Telix will exit with that errorlevel instead.

A batch file can use the errorlevel to bring up a BBS, or some other software to handle incoming calls.

C - Exit on inactivity.................. After 20:00 with 100

If the time limit is not 0 and Telix detects no local or comm port activity within that time it will exit with given errorlevel.

D - Time out even if carrier present?... No

Usually Autopuma considers an active carrier as activity, and will not exit Telix if one is present even if nothing else is going on. If this option is set to Yes, an active carrier alone will not be considered activity, and Autopuma will exit Telix and hang up on an active connection if nothing is received from the host and no local activity is detected within the time limit given in option C.

E - Hang up if no activity for.......... 0:00

If this is set to a non-0 value and no activity occurs within that time, Autopuma will drop any active carrier.

F - Exit Telix on carrier loss..........	Off

Once, with 100

Always, with 100

This will cause Telix to exit with the given errorlevel when the carrier is lost. I use this when I start a download and I know I won't be around when it finishes to bring up the BBS (most decent BBSes can be told to hang up after a transfer). If the option is set to "Once" and the exit is canceled, it will not reset, and the next time a carrier drops Telix will not exit. If set to "Always" and the exit is canceled the option will reset, wait for another carrier, then try to exit again when it drops.

G - Auto-download protocols............. P, B

These are the letters of the protocols that have been set up as auto-download protocols. Selecting this option displays the menu of available protocols that Autopuma can start automatically when the host begins sending. See AUTO-DOWNLOAD PROTOCOLS on page

H - Call log............................ CALL.LOG

This controls whether Autopuma logs calls made. If on, whenever a connection is made the date, time, name, directory entry and phone numbers (as they appear in the Telix dialing directory) are logged to the specified file. When the connection is dropped the length of the call is written. The intent here was something that looks the call itemization from a phone bill, rather than a Telix usage log.

There are some other things that could be done with this, but I'd like to know if anyone finds the idea useful before I put more effort into it.

I - User defined string................. hang up now

This can be any string that should trigger some action when sent from the host.

J - User defined command................ Hangup

This is the action that the user-defined string will trigger. Available commands are:

Nothing	No action.

Hangup	Hangs up the phone.

Exit	Exits Telix with an errorlevel.

DOS command	Runs a DOS command in a sub-shell.

Script	Runs a SALT script.

Receive File	Receives a file.

Send Text	Sends text out the comm port.

If the command requires additional information (errorlevel to exit with, DOS command or name of script to run, etc.) Autopuma will prompt for it. Autopuma will also ask how long it should delay between receiving the string and performing the command.

Unregistered versions of Autopuma will allow options H and I to be set, but will only display a message when the string comes in.

K - Visual bells........................	Off

Always, 0.5 seconds

If no sound, 0.5 seconds

Autopuma can display "BELL!" in the center of the screen for a user- selectable duration anytime a bell is received. Useful for environments where silence is required, but you still want to know if the host wants your attention.

L - Seconds to delay before exit........ 0:10

In most situations that trigger an exit from Telix, Autopuma will display a countdown timer before exiting to allow a chance to abort. This sets the length of the delay.

M - Show timer or clock on status line.. Neither

Timer

Clock Always

Clock if no Timer

If Telix status bar is enabled, Autopuma can display either the clock time or the length of time Telix has been inactive in the area that usually displays the script name. "Timer" displays the timer if it's relevant, otherwise the script name. "Clock Always" displays the current time. "Clock if no Timer" will display the timer if relevant, otherwise the current time is displayed.

N - Load options from disk.............. AUTOPUMA.CNF

This allows you to recall previously saved Autopuma configurations from a saved file.

O - Save options to disk................ AUTOPUMA.CNF

This will save the current Autopuma settings to a disk file.

P - Unload Autopuma

This removes Autopuma from memory

OTHER OPTIONS

There are one other option available from this menu that is not displayed. By default Autopuma disables the ESC key's ability to abort scripts. On some machines however this slows the script down, sometimes intolerably. ALT-ESC will toggle the enabled/disabled state of the ESC key. This may speed up Autopuma, but will prompt you with "Abort Script?" whenever the ESC key is pressed. The state of the ESC key is saved to the Autopuma configuration file.

AUTO-DOWNLOAD PROTOCOLS

Autopuma can automatically start downloads for certain protocols when the host begins sending. Protocols currently supported are MPt (earlier versions were called Puma), BiModem, HS/Link and SZmodem. To set which protocols Autopuma should start, choose "Select auto-download protocols" from the configuration menu. This brings up a menu that allows you to select the letters you have assigned to the protocols, whether Autopuma should start them automatically, and other information. The menu looks like this:

A - MPt/Puma........... P, On

B - BiModem............ B, On, 5 second delay

C - HS/Link............ H, On, 5 second delay

D - Zmodem............. D, On, resume w/Internal

Select a protocol (Return or Esc to exit)

Select a menu letter to edit a protocol (or if you want to edit a protocol that you have assigned a letter to that is not also a menu letter, you can type the protocol letter instead). Autopuma will ask first for the protocol letter. This is the letter you have assigned to the protocol in the Telix "File transfer protocols" configuration.

Autopuma will then ask if you want auto-downloads for that protocol. If you choose Yes, Autopuma will start a file receive with that protocol whenever the host machine begins sending.

General notes about Protocols

The distribution ZIP file for Autopuma contains Telix scripts for all the protocols it supports. The scripts do not require Autopuma and can be used even if Autopuma is not. Likewise, Autopuma doesn't require the specific scripts included in the ZIP. If you've already installed any of these protocols in Telix using batch files or other scripts, Autopuma should work fine with them.

All the upload scripts included with Autopuma accept multiple file names.

All the download scripts included with Autopuma will recognize the "Zmodem receive crash recovery" switch and pass the appropriate switches to the protocol driver. Note however that not all protocols support crash recovery the same way.

Both the upload and download scripts will sound an alarm on completion similar to the one Telix sounds if sound and alarms are enabled in Telix.

If a carrier is lost while an external protocol is running, Telix may not realize the carrier has dropped when it regains control. To "wake it up", all the scripts use a function that can briefly flip the port Telix uses to another port, then flip it back. This forces Telix to re-examine the port status, and recognize a dropped carrier.

By default the scripts will use COM8 as the port to flip to, or COM7 if COM8 is the port Telix was using. If this causes problems you can set the environment variable FLIPPORT to the port number to flip to. SET FLIPPORT=3 will force the scripts to use COM3 as the temporary port. If FLIPPORT is set to 0 no flip will be done.

Protocols must be installed in Telix in the Configuration Options' "Protocol Options" screen. MPt for instance would look like this:

Key Protocol Upload Download BAT or DL

Name Filename Filename Script Name

-------------------------------------------------------

P Puma/MPt mptxmt mptrcv Script N

MPt Downloads

In order for Autopuma to start an MPt download, you must have either PUMA.EXE 1.00, or MPT.EXE 1.10 or greater, and either batch files or SALT scripts for performing the transfer from Telix. If you use Puma instead of MPt, you can modify the MPt scripts included with Autopuma to use PUMA.EXE. The two programs are currently 100% compatible with each other.

BiModem Transfers

In order for Autopuma to start a Bimodem transfer, you must have BIMODEM.EXE 1.24 or greater, and either batch files or SALT scripts for performing Bimodem transfers from Telix.

When setting BiModem up as an auto-download protocol, Autopuma will also ask for the length of time it should wait for upload files to be entered before starting a download.

The BIMODXFR.SLC script is also required by Autopuma for automatic Bimodem transfers.

To explain why Autopuma initiates Bimodem transfers the way it does, a short explanation of how it handles MPt downloads is required.

Autopuma begins a receive when it receives the handshake string sent by a protocol on the remote end that wants to send. This string is usually different than the handshake sent by the protocol when it wants to receive, so there is no conflict.

On the other hand since Bimodem can transfer files in both directions at the same time, there is no distinct sender or receiver. Because of this Bimodem has only one handshake string. Autopuma can tell the host wants to initiate a transfer, but has no way of knowing if it should simply start a receive or if it should prompt for files to upload.

The approach it takes is this: When a Bimodem transfer is initiated by the remote computer, the user will be prompted to enter files to upload. If there is no response within the time set in Autopuma's configuration, a download is assumed. If files are entered an upload is assumed.

BIMODXMT.SLC and BIMODRCV.SLC will perform Bimodem transfers. Both scripts require BIMODEM.EXE 1.24 or greater. If a BIMODEM.PTH file exists in the Telix directory it will be used in the transfer. After the transfer the scripts will ask if you want to delete BIMODEM.PTH. If there is no response and the transfer returned a successful status, the file is deleted. If the transfer failed, the file is retained.

NOTE: In the box Autopuma displays for entering filenames, strings of up to 241 characters can be entered. The Bimodem scripts included in the Autopuma ZIP file will accept file lists this long, but other Bimodem scripts will not. If you use different scripts to drive Bimodem the file list should not exceed the length of the window.

BIMODEM.SLC is the same as the BIMODEM.SLC included in the Bimodem distribution ZIP file, except it ensures that the BIMODEM.CFG and BIMODEM.PTH files are created in the default Telix directory, which is where BIMODXMT and BIMODRCV expect to find them. This will allow you to mark uploads (and on hosts that permit it, downloads) offline through BiMenu, then connect to the host and start the transfer, letting Autopuma start Bimodem automatically.

HS/Link Transfers

In order for Autopuma to start an HS/Link transfer, you must have HSLINK.EXE 1.0 or greater, and either batch files or SALT scripts for performing HS/Link transfers from Telix. Note that while it's widely available on BBSes, as of this writing HS/Link is still in beta test so take appropriate precautions. This version of Autopuma, and even the current version of HS/Link may not be compatible with future versions of HS/Link.

When setting HS/Link up as an auto-download protocol, Autopuma will also ask for the length of time it should wait for upload files to be entered before starting a download.

The BIMODXFR.SLC script is also required by Autopuma for automatic HS/Link transfers. Since HS/Link is bidirectional Autopuma treats it like Bimodem in many respects. The only significant difference is that if HS/Link on the host has been told to send files it sends a different handshake than if it had been told only to receive, so Autopuma can tell an upload request from a download. It will only start an HS/Link download if the host has files to send.

SZmodem Downloads

In order for Autopuma to start an SZmodem download, you must have SZMODEM.EXE 1.41 or greater, and either batch files or SALT scripts for performing the transfer from Telix.

When setting SZmodem up as an auto-download protocol, Autopuma will ask if Telix' internal Zmodem should be used if the Telix "Zmodem receive crash recovery" option is set. Though SZmodem is compatible with Zmodem, until version 1.60 it had no option to resume an aborted transfer (and even 1.60 does not implement it usefully). By using Zmodem if Telix "Zmodem receive crash recovery", aborted files can still be resumed without disabling SZmodem auto-downloads.

Because SZmodem uses the same handshake string as Zmodem, if the remote computer started a Zmodem send when both Telix "Zmodem auto-downloads" option and Autopuma SZmodem auto-downloads were enabled, which protocol got started would be a matter of who saw the string first. Worse, once the winner finished the transfer, the loser would then start another receive.

To eliminate this problem, Autopuma will disable Zmodem auto-downloads when SZmodem auto-downloads are enabled in the Auto-Download Protocols menu, or when a configuration is loaded that turns on Auto-SZmodem. After that, if Zmodem auto-downloads are enabled without disabling SZmodem auto-downloads, Autopuma will suspend SZmodem auto-downloads.

Caveats about SZmodem:

Though SZmodem 1.60 has a command line switch to specify receive crash recovery, it will only do the resume if the sending system specified a resume as well, and earlier versions of SZmodem already did that. All 1.60 adds is the ability to SUPPRESS a resume that the sender requested. Since most BBSes don't (and shouldn't) use resume options, SZmodem's resume option is not currently very useful.

If an incoming file already exists on the receiving system and file resume is not in effect, SZmodem will skip the file. It has no option to allow renaming the incoming file as Telix will.

On my system SZmodem hangs if the 16550 buffer is enabled. Telix must be told to disable the buffer in DOS shells, and SALT scripts must execute SZmodem with the "dos()" (not "run()") function.

Using GSZ or DSZ for Zmodem downloads.

In order for Autopuma to use GSZ or DSZ as the Zmodem driver, you must have a REGISTERED version of GSZ or DSZ, and either batch files or SALT scripts for performing the transfer from Telix.

If you wish to use DSZ rather than GSZ, substitute the name of a DSZ script. The source for the GSZ script included with Autopuma can be modified to use DSZ.

To make Autopuma use these as the Zmodem drivers, follow the instructions for installing SZmodem, but use the letter you have assigned to the GSZ driver. For "Use Zmodem to resume aborted downloads", answer "N" if the script supports setting the "resume" switch for GSZ if Telix "Zmodem receive crash recovery" is enabled. The scripts included with Autopuma do.

Caveats about GSZ/DSZ:

If an incoming file already exists on the receiving system and file resume is not in effect, by default GSZ will skip the file. A "-c" option is mentioned that is supposed to allow renaming of incoming files, but I can't get it to work. The GSZ scripts included with Autopuma instead use "-n" which will cause GSZ to overwrite the existing file only if the incoming file is newer.

CALL LOGGING

If call logging is enabled, Autopuma will keep track of when, how long, and who you call. Log entries look like this:

09-15-91 23:54 (110) Dead of Night ! 301 277 6703 (00:01)

[1] [2] [3] [4] [5] [6]

1) Date of call

2) Time of call

3) Dialing directory entry number

4) BBS name

5) Phone number

6) Length of call, rounded up to next minute.

AUTOPUMA AND ERRORLEVELS

To be useful, any option that forces Telix to exit with an errorlevel requires Telix to be run from a batch file that uses the "if errorlevel" command to test the errorlevel and perform the appropriate action. For instance, if you want Telix to bring up a BBS if a call comes in, you need to set "A - If phone rings once exit with......" to a non-0 value (say, 100) and run Telix from a batch file that looks like this:

rem run Telix with AUTOPUMA

telix sautopuma

rem if returned 100 run command to start BBS ("board" in this case)

if errorlevel 100 board

ENTERING VALUES IN THE CONFIGURATION WINDOW

Values used as errorlevels cannot exceed 255. Times cannot exceed 99:59:59.

If you need to enter characters into string values that are usually special (i.e. ENTER or ESC), press CTRL-V or CTRL-P, then the character. Characters that must be entered this way are ENTER, ESC, all CTRL characters and any ANSI "ALT<number>" code. The following keys perform these functions:

ENTER: save changes and quit editing

ESC: lose changes and quit editing

Right arrow/CTRL-D: right one position

Left arrow/CTRL-S: left one position

CTRL-right/CTRL-F: right one word

CTRL-left/CTRL-A: left one word

HOME: beginning of string

END: end of string

DEL: delete character at cursor

Backspace: delete character left of cursor

CTRL-DEL: delete from cursor to end of word

CTRL-Backspace: delete from beginning of word to cursor

CTRL-END: delete from cursor to end of line

CTRL-HOME: delete from beginning of line to cursor

INSERT: toggle insert mode

CTRL-P/CTRL-V: insert special character

CTRL-Y: clear entire line

CTRL-U: undo all changes

For numeric and time values:

Grey '+': increment value by one

Grey '-': decrement value by one

For time values

CTRL-Grey '+': increment by one minute

CTRL-Grey '-': decrement by one minute

ALT-Grey '+': increment by one hour

ALT-Grey '-': decrement by one hour

CONFIGURING VIA THE ENVIRONMENT

Autopuma can also be configured partially or entirely through the environment rather than a disk file. The variable AUTOPUMA can be set to a string of options that tell Autopuma what to do. The easiest way to create the configuration string is to configure Autopuma through the configuration window, save the configuration to a file, then copy the configuration file into your batch file (or wherever). The config file is formatted as SET AUTOPUMA=<config string> to allow just that. If you want to edit or create the string yourself, the format is:

SET AUTOPUMA=[option[:arg1][,arg2]...]...

RUNNING ANOTHER SCRIPT

Autopuma can be made to run another script just after it loads, but before it begins it's own processing. If the environment variable AUTOSLC is set, Autopuma will run the script name it contains. If the variable contains a space, all text after the first space is passed to the script as a single string. If there is no argument, Autopuma will pass a null string to the script.

CONFIGURATION STRINGS

BKEY:<letter>,<switch>,<delay>

<letter> is the letter that has been assigned to the Bimodem protocol in Telix' "File transfer protocols" configuration. <switch> is the "auto-downloads enabled" setting (0=off, 1=on). <delay> is the number of seconds that Autopuma will display the upload filename prompt box before it continues with what it assumes is a Bimodem receive.

CFN:<filename>

This specifies the file from which Autopuma will read and write configuration information. When this option is encountered in a configuration string, Autopuma reads the contents of that file and sets the configuration to it before continuing with the original configuration information.

CLOG:<switch>,<logfile>

<switch> is the "call log" setting (0=off, 1=on). <logfile> is the path to the call log file.

DCT:<time>

Sets amount of inactivity after which Autopuma will hang up on a live connection.

DLY:<time>

<time> is the amount of time Autopuma will delay before exiting from Telix.

ECL[:switch]

Tells Autopuma whether or not to exit when a carrier drops. Switch can be:

0 - do not exit

1 - once

2 - always

If ECL is not followed by any value, 2 is assumed.

ECLX:<errorlevel>

<errorlevel> is the errorlevel Telix will return if it exits due to a carrier drop.

HKEY:<letter>,<switch>,<delay>

<letter> is the letter that has been assigned to the HS/Link protocol in Telix' "File transfer protocols" configuration. <switch> is the "auto-downloads enabled" setting (0=off, 1=on). <delay> is the number of seconds that Autopuma will display the upload filename prompt box before it begins an HS/Link download.

IC[:switch]

IC tells Autopuma to ignore a carrier. Autopuma will exit after inactivity (if that option is set) whether a carrier is present or not. <switch> may be 0 (off) or 1 (on), or omitted, which is assumed to be 1.

PKEY:<letter>,<switch>

<letter> is the letter that has been assigned to the MPt or Puma protocol in Telix' "File transfer protocols" configuration. <switch> is the "auto-downloads enabled" setting (0=off, 1=on).

R1X:<errorlevel>

<errorlevel> is the errorlevel Telix should exit with when one ring is received.

R2X:<errorlevel>

<errorlevel> is the errorlevel Telix should exit with when two rings are received.

SBBS[:switch]

SBBS tells Autopuma to display the name of the BBS Telix is currently connected to on the status line. <switch> may be 0 (off) or 1 (on), or omitted, which is assumed to be 1.

SKEY:<letter>,<switch>,<resume>

<letter> is the letter that has been assigned to the Szmodem protocol in Telix' "File transfer protocols" configuration. <switch> is the "auto-downloads enabled" setting (0=off, 1=on). <resume> is whether Zmodem will be used instead of SZmodem if "Zmodem receive crash recovery" is enabled in Telix (0=no, 1=yes).

ST:<switch>

Controls whether Autopuma displays the clock or timer on Telix' status line. <switch> may be:

0 - display neither

1 - display timer if relevant; otherwise nothing

2 - display clock

3 - display timer if relevant; otherwise clock.

TOT:<time>,<errorlevel>

<time> is the length of inactivity after which Autopuma will force Telix to exit. <Errorlevel> is the errorlevel Telix will exit with.

UDS:<string>

<string> is the string that, if received by Telix, will cause the user-defined string to be executed. The string can contain any characters, but the following characters have special meaning to Autopuma and must be quoted:

" (double quote)

' (single quote)

, (comma)

^ (caret)

(space)

Characters are quoted by either enclosing the character in double or single quotes, or immediately preceding the character with a caret (^). The string Enter name (i.e., "Joe Smith") contains spaces, a comma, and quotes that must be quoted. This can be done several ways:

'Enter name (i.e., "Joe Smith")'

<entire string in single quotes>

"Enter name (i.e., ^"Joe Smith^")"

<entire string in double quotes, with internal double quotes preceded by carets>

Enter^ name^ (i.e.^,^ ^"Joe^ Smith^")

<all spaces, quotes, and comma preceded by carets>

Control characters can be represented by a caret followed by a letter, such as "^A" to represent CTRL-A. Characters above ASCII 127 must be typed using ANSI.SYS' "ALT<keypad>" convention in an editor that accepts high ASCII characters.

UDC:<command>,<string>,<delay>

<command> is a number that tells what type of command is to be executed when the user-defined string is received. The meaning of <string> is determined by the value of <command>. Possible values for <command> are:

0 - No command

1 - Hangup. <string> is ignored.

2 - Exit Telix. <string> is the errorlevel to exit with.

3 -	DOS command. <string> is the command to execute. It may contain arguments.

4 -	Telix script. <string> is the script name, and optional arguments.

5 -	Receive file. <string> is the letter of the protocol to use.

6 - Send text. <string> is the text to send.

<string> is entered and quoted the same as the user defined string. <delay> is the time in seconds that Autopuma should wait before performing the action, to allow the user to cancel it.

VB[:switch]

Controls whether or not incoming bells are displayed. <switch> can be:

0 - bells are not displayed

1 - bells are displayed only if sound is off

2 - bells are displayed whether sound is off or not.

If VB is not followed by any value, 1 is assumed.

RENAMING AUTOPUMA

If you want to name the AUTOPUMA.SLC to something else you must also set the environment variable APNAME to the new script name to allow APCONFIG to get the current settings. Type at the command line or add to the batch file that runs Telix:

SET APNAME=<name of autopuma script file>

DISCLAIMER:

AUTOPUMA is provided on an "as is" basis without warranty of any kind, expressed or implied, including but not limited to the implied warranties of merchantability and fitness for a particular purpose. The person using the software bears all risk as to the quality and performance of the software. Should the software prove defective, the user assumes the entire cost of all necessary repair, servicing, or correction. The author will not be liable for any special, incidental, consequential, indirect or similar damages due to loss of data or any other reason, even if the author or an agent of the author has been advised of the possibility of such damages. In no event shall the author's liability for any damages ever exceed the price paid for the license to use the software, regardless of the form of the claim.

REGISTRATION, SUGGESTIONS, ETC

If you use Autopuma on a regular basis, a registration of $10 (or whatever you think it's worth) is requested. $10 gets you a registration number which will activate registered-only features in this and future version of Autopuma. Comments, requests, and suggestions for a better name for this script can be left at:

The Dead of Night BBS

(703) 644-7667

...mailed to:

Donald Mehrtens

5923 Minuteman Rd

Springfield VA 22152

...or sent via CompuServe (which I don't check very often) to ID 72361,1407, or Prodigy (which I almost never check) to BVKH32B.

CAVEATS

There is no direct way to test if a local key has been struck without interfering with Telix's ability to process that key.

Autopuma can only detect local activity indirectly, and may not catch everything so some kinds of activity may not reset the inactivity timer. It catches enough though so that even infrequent activity will keep it from timing out.

If using the small version of Autopuma while running Telix under Windows, and the PIF file is set to "Detect Idle Time" Telix may take excessively long to bring up the configuration window. On my Compaq 386/20 it takes upwards of 2 minutes. Make sure Detect Idle Time is off or use the large version of Autopuma under Windows if you have this problem.

Other scripts that track strings without first freeing all existing track strings may not work if run while Autopuma is loaded, because Autopuma takes up a number of track handles itself. Also, although Autopuma takes a number of precautions against this, if a script does not free all track strings before exiting Autopuma may wind up performing autodownloads or some such in response to receipt of the previous scripts tracks. Results will be unpredictable and probably ugly. If Autopuma starts running wild after you have run another script, hit any key(s) that will bring up some Telix menu or prompt (such as ALT-D), let it sit there for a few seconds, then close it.

If you write your own scripts that you want to be compatible with Autopuma, you should be sure to "track_free (0)" both at the beginning of your script, and before it exits.

ACKNOWLEDGEMENTS

Thanks to Bob Price for his help, suggestions, and testing; To Lori Davis, for her help with this documentation (we programmers don't speak good English); to Colin Sampaleanu for writing a great comm program, and Jeff Woods for supporting it.

REVISION HISTORY

Version 1.21, Nov 21:

Both Autopuma and the HS/Link download script will now eat spurious HS/Link handshakes that would cause Autopuma to restart a download after one was completed.

Apparently the handshake HS/Link sends changes with each version, so versions of HS/Link released after Autopuma 1.20 wouldn't trigger autodownloads. Autopuma is now less specific about what an HS/Link handshake should look like. However as long as HS/Link is in beta test there is no guarantee this won't happen again.

Put the code that forces Telix to re-examine the port status in a separate function, and made the function controllable with the FLIPPORT environment variable.

Version 1.20, Nov 16:

Added support for HS/Link.

Added call logging.

Included scripts for using GSZ as the Zmodem protocol driver.

Added support to the SZmodem scripts for the "resume" options added to SZmodem version 1.60.

Made the protocol scripts recognize Telix "Alarms" settings as well as the "Sound" setting.

Added tiny bit of code to both Autopuma and the protocols scripts to help Telix with a problem it has noticing when a carrier is lost while an external protocol is running. Thanks J.W.

Autopuma wouldn't display the BBS name on a status line at the bottom of the screen in 43 or 50 line mode. Fixed. Thanks J.F.

If you called the same BBS twice in a row, sometimes Autopuma would display "Unknown remote" as the BBS name on the second connection. Fixed.

If you dialed and connected to a second BBS before Telix/Autopuma got a chance to see the carrier drop from the previous BBS, the new BBS name was not properly displayed on the status line. Fixed.

Unsightly messages printed by the SZmodem and MPt/Puma scripts have been removed.

Due to a spelling error the Puma string was not starting Puma/MPt transfer. Fixed.

Added the ability to run a script after Autopuma loads.

Version 1.11, May 27:

String tracked for SZmodem downloads was not specific enough, causing Autopuma to start SZmodem downloads when Zmodem transfers in either direction were started. Fixed.

Version 1.10, May 16:

Moved auto-download protocol options into a separate menu, and added SZmodem support.

Each auto-download protocols is now enabled and disabled through it's own switch, not Telix "Zmodem auto-downloads".

Added option to display the name of the BBS to which Telix is currently connected on the status line.

Changed the user-defined track string command to use a menu to select from the possible actions, rather than typing out "script", "hangup", etc. User-defined track string will only function if Autopuma has been registered.

Autopuma and it's included scripts would not read TELIX.CNF if you were not in the Telix directory, causing some messages to be displayed in black on a black box with a black border. Fixed.

If an auto-download protocol was started manually before Autopuma got a chance to do it, a buffered handshake string could cause Autopuma to restart a download after the manual download finished. The protocol receive scripts included with Autopuma will now kill any waiting handshake strings before returning to Telix.

Found that Telix does not clear the _entry_enum and related variables that store information on who the current connection is to. WHO therefore no longer goes to the lengths it did to get the information from Autopuma.

Autopuma is more resistent to scripts which alter track strings, and more sensitive to local keyboard activity.

Combined both "If phone rings exit with" options on one option line.

Earlier changes to text entry routine to reduce flicker caused numbers edited with grey "+" and "-" keys to be displayed incorrectly. Fixed.

Version 1.02, April 16:

Added a version of Erik Labs BIMODEM.SLC script with modifications to make it compatible with BIMODXMT and BIMODRCV.

Modified BIMODXFR and AUTOPUMA to allow BIMODXFR to exit gracefully if it was run some way other than from AUTOPUMA.

Corrected problem in small version of Autopuma that would ignore "Exit on carrier loss" if it was set to "Once".

Configuration script for small version was displaying it's initial "Please wait" message in black on black colors. Fixed.

Included separate Puma versions of the MPt script for Puma users.

Renamed the Autopuma scripts a little to (hopefully) clarify the difference between the large and small versions.

Version 1.01, April 12:

Changed the name of the PUMA*.SLT scripts to MPT*.SLT, since that is the current name of the protocol. AUTOPUMA remains AUTOPUMA, until I think of something better.

MPt scripts will sound alarms when the transfer completes, similar to the alarm Telix uses when it's internal protocols complete a transfer.

Added support for Bimodem protocol, and Bimodem scripts.

Autopuma now reads default colors from TELIX.CNF on startup. Removed color editor from menu, but left it accessible via ALT-C. Colors are no longer saved in Autopuma configuration files.

Eliminated unnecessary redrawing by the text entry function, reducing flicker.

Time values were accepting times like "10:::::". Fixed.

Text entry function did not allow most legal special characters to be used in file names. Fixed.

Version 1.00, March 16 1991: Initial release.