home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
550a.lha
/
BackTalk_v1.46
/
BackTalk.doc.pp
/
BackTalk.doc
Wrap
Text File
|
1991-09-08
|
59KB
|
1,441 lines
BackTalk 1.46
August 11, 1991
Copyright 1991 by Steve Ahlstrom and Don Curtis
Copyright and Distribution Notice:
BackTalk is a copyrighted program. BackTalk is freely distributable
provided the following files (listed below) remain UNCHANGED and AS A WHOLE
in LHARCIVE FORM along with this notice.
All rights to the program BackTalk and all files in this archive, except
where specifically noted, remain the property of Steve Ahlstrom and Don
Curtis.
BackTalk may not be sold or distributed for any fee. The exception to this
is that BackTalk may be included on any Amiga User Group Club disks on which
BackTalk is not the only program on the disk and the disk does not sell for
more than $10US.
Disclaimer:
No warranty is offered and no fitness for any particular purpose is claimed.
Every effort has been made for this software to perform as indicated in
the documentation. However, nothing is perfect.
Credits:
Thanks to the creators of the XPR library specification.
Thanks to the authors of the various XPR libraries. Do be aware than that,
depending upon implementation, some of these libraries work better than
others.
Thanks to Khalid Aldoseri for this File Requester library, his considerable
help and expertise with suggestions, coding hints, and support all while he
was constantly donning his gas mask and seeking shelter from SCUD attacks.
And special thanks to the corp of BackTalk testers who include, but are not
limited to, Khalid Aldoseri, Larry, Phillips, Bob Rakosky, Steve Pietrowicz,
Betty Clay, David Art, Brian Bartlett, Vic Wagner, Michael McCormick, and
Rick Stevens.
Files in this LHARCHIVE:
BackTalk This is the terminal program "BackTalk"
BackTalk.info Icon for BackTalk
BackTalk.doc This file
*frqlib.lzh Khalid Aldoseri's File Requester library (ver 3.0).
This is the full distribution of the library,
auxillary programs, user documentation, and
programmer documentation.
Release 3.0 of Khalid's file requester library
is due to be released "any day now" (as of the
the date this is written, 24 Feb 1991). It
is fully backward compatible with previous
versions and with BackTalk's calls to the
library.
*xprquickb.library Jack Rousse's CompuServe QuickB XPR library
updated and modified by Keith Young.
*xprzmodem.library Rick Huebner's XPR Zmodem library version 2.1.
*xprascii.library an ascii XPR library distributed with the
XPR 2.0 specification
About_XPR A text file describing the various user
options for the enclosed XPR libraries
*and various example ARexx scripts
* These files freely distributable and all rights to them remain with
their authors.
---------------------------------------------------------------------------
BackTalk
A general purpose TTY-type telecommunications program for the Amiga
Feature Overview:
- Supports the complete XPR specification. You may use any file transfer
protocol for which there exists an XPR library implementation. At the
time of this writing there exists XPR libraries for CompuServe QuickB,
Zmodem, Xmodem, Kermit, and Ascii.
- Fully supports user selected fonts, including proportional fonts.
- ARexx interface - callable internally and externally
113 ARexx commands and growing
- ARexx scripts callable from FKey macros
- Full featured Review Buffer
- User sizable Review Buffer, from 8k to available ram.
- "Live" Review Buffer. You may use the review buffer while continuing
to interact with the communications window.
- Sizable Review Buffer window
- Program will operate in a 1 or a 2 bit plane custom screen or in
a workbench window.
- If run in a hi-res/interlaced environment, a "split" is provided
(half screen)
- Capture Buffer for saving text to a file
- Chat Window for network conferencing.
- Color requester for loading and saving color choices
- Phone Book limited only by available memory
- Double click dialing
- Phone Book entries carry their own configuration and macro
files
- Real time clock
- A non-graphic Print Screen function
- Print feature for echoing incoming text to a printer
- Screen text is restored when moving from one display configuration
to another or in and out of the Chat Window
Minimum System Requirement:
Amiga 500/1000/2000/3000 with a minimum of 512k and 1 floppy drive
Modem: 300/1200/2400/4800/9600
---------------------------------------------------------------------------
How to Use BackTalk
Before running BackTalk for the first time, decompress frqlib.lzh and place
kd_freq.library, xprquickb.library, xprzmodem.library and xprascii.library
files in your LIBS: logical directory. Library file names are case sensitive,
please do not change them. BackTalk will not run without kd_freq.library and
xprquickb.library.
BackTalk will open its screen/window in whatever resolution your computer
is in at the time the program is run. When BackTalk loads, it looks for 3
files, BT.CFG (its configuration file), BT.MACROS (it's macro key file),
and BT.PHONES (its phone book data file). The S: directory will be
searched for these files. If they do not exist program defaults will be
used.
The most coherent method to document BackTalk is to describe the function
of its menus (from left to right) and their menu items.
Menu: BackTalk
MenuItem: About
Hot Key: Right-Amiga-A
This brings up a "credits" requester containing copyright, support,
and distribution information. This requester also contains
information on the current available chip ram, current available
fast ram, and current buffer size.
MenuItem: Hangup
Hot Key: Right-Amiga-H
This will cause your modem to hang up the phone. This is done by
dropping DTR. If your modem is setup to ignore DTR or you are using
a 3 wire serial cable between your computer and your modem, this
command has detects that dropping DTR had no effect and will then
send the standard Hayes compatible "+++ATH" string to your modem.
MenuItem: Quit
Hot Key: Right-Amiga-Q
This will terminate the program. There are no "Are you sure?"
requesters. Make sure you really want to exit the program before
using this menu item.
Menu: Phone
MenuItem: Dial...
Hot Key: Right-Amiga-P
This brings up the Phone Directory.
The Phone Directory displays 10 entries. If there are more than 10
entries, you may scroll through them using the UP and DOWN arrow keys.
You may select the entry to dial by using the mouse and clicking upon
the entry or by typing the number to the left of the entry from the
keyboard. This will place the entry into the string gadgets below.
You may dial the entry by clicking on the gadget labeled "Dial" or by
typing "D" from the keyboard. The phone number will be sent to the
modem with a terminating carriage return.
If for any reason you do not want the carriage return sent, in the
phone number portion of that entry, place an asterisk (*) as the last
character in the phone number (see "Adding Phone Book Entries" and
"Editing Phone Book Entries" below). When "Dial" is clicked upon or
the letter "D" is typed, the phone number will be sent to the modem
without a terminating carriage return.
Adding Phone Book Entries:
To add a phone book entry, click on the "Add" gadget with the mouse.
This will activate the "System" string gadget. Type in the name and
then type return.
The "Phone" string gadget will now be activated. Enter the phone
number to be dialed and type a return.
The "Comment" string gadget will be activated. Enter a comment if you
wish, and type return.
The "Configuration" gadget will be activated. In this string gadget
enter the name of the configuration file you wish to have activated
for this Phone Book entry. If you do not remember the name of the
configuration file, click on the small gadget immediately to the
right of the "Configuration" string gadget. This will bring up a file
requester defaulted to S:#?.CFG.
The "Macros" gadget will be activated. In this string gadget enter the
name of the macro file you wish to have activated for this Phone Book
entry. If you do not remember the name of the macro file, click on
the small gadget immediately to the left of the "Macros" string gadget.
This will bring up a file requester defaulted to S:#?.MACROS.
The "Modem Prefix" string gadget will be activated. The "Modem Prefix"
string gadget serves two purposes. The information entered here will
be prepended to the phone number when it is sent to the modem. This is
also a "terminator" field for the Phone Book entry. If you do not type
a return in this gadget the Phone Book entry will not be added.
By default, an "ATDT" is placed in the "Modem Prefix" string gadget.
If this is acceptable, just type a carriage return, if not, enter your
dialing prefix and type a carriage return.
You may also enter the new phone entry by clicking again on the
ADD gadget. If the "System" string requester contains text, the
entry will be added. Should you change your mind about adding a
Phone Book entry, click on the DELETE gadget and all information
currently in the string gadgets will be thrown away.
Editing Phone Book Entries:
To edit an existing Phone Book entry, select the entry to be edited by
clicking upon the entry or by typing the number of the entry. The
entry will be placed into the string gadgets below. Click the mouse
on the string gadget you wish to change and make your changes. When
you type a carriage return in the "Modem Prefix" string gadget, the
changes will be accepted.
Deleting Phone Book Entries:
To delete an existing Phone Book entry, select the entry to be deleted
by clicking upon the entry of by typing the number of the entry. The
entry will be placed into the string gadgets below. Click the mouse
on the "Delete" gadget. The entry will be removed from the list.
The Phone Book entries are "hot keyable" from within the requester by
using the number keys 1-1(0). The Dial and Exit gadgets are also hot
keyable using the D and E keys, respectively.
If there have been any changes to the Phone Book those changes will be
written to the file BT.PHONES when you exit the Phone Book (by using
the Dial or Exit gadgets).
MenuItem: Redial
Hot Key: Right-Amiga-$
This will cause the last dialed Phone Book entry to be dialed again.
This will not cause the associated configuration or macros file
to be read.
Menu: Serial
MenuItem: Serial Definitions...
Hot Key: Right-Amiga-*
This brings up the Serial Definitions requester. Most of the items
within this requester are self explanatory.
If you are using a modem or a serial card that requires the use of a
serial device driver other than the CBM supplied "serial.device" make
sure that device driver is located in your DEVS: directory. Enter
the name of the device driver (the name is case sensitive) into the
"Device Name" string gadget. If a unit number other than 0 is
required, enter the unit number into the "Unit #" string gadget (check
the documentation for your non-CBM supplied device driver for this
information.
NOTE 1: There appears to be a problem with CBM's serial.device that
is distributed with the A2232 card. The symptom is that when
a unit number other than 0 is being used, attempting to close
and reopen the port while online will cause BackTalk to hang.
NOTE 2: BackTalk opens the serial port in SHARED mode, thus, one of
the first things it does it check to see if the serial port is
already in use (on-line). BackTalk does this by checking the
state of the Carrier Detect line. Thus, IF you have your modem
configured to have the Carrier Detect line held ON all the time
(this is the default configuration for many modems!), BackTalk
will take the current serial parameters and use them, you will
NOT be able to change them.
If you're not really on-line, but have the Carrier Detect line
set HIGH all the time, the serial port will open with the values
you've saved using the Amiga's Serial Preferences (saved by
running the PREFERENCES program). If you must keep your modem
configured with the Carrier Detect line HIGH all the time, use
PREFERENCES to set your serial parameters.
The best solution is, of course, to have the modem configured so
the Carrier Detect line shows the true state of connection. On
a Hayes Compatible modem, this is done via the AT&C1 command
followed by the AT&W command to save that setting.
To exit the Serial Definitions requester, click on the Cancel or Use
gadgets, or type the letter C or U. If you have made changes and
selected "Use", those changes will go into effect immediately. By
selecting "Cancel" all changes will be negated and your serial
definitions will remain as they were before you entered the Serial
Definitions requester.
MenuItem: Send Break
Hot Key: Right-Amiga-~ (tilde)
This sends a break signal.
Menu: Files
MenuItem: Protocols...
Hot Key: NONE
BackTalk utilizes the XPR protocol specification. This menu item will
bring up a file requester from which you may load the xpr library you
would like to use. By default, the file requester will display files
in LIBS: that begin with XPR#?.
MenuItem: Receive File...
Hot Key: Right-Amiga-D
When selected you will be presented with a file requester for you to
indicate the path and file name of where the download will be written.
Some transfer protocols are "autostart" meaning that when you tell
the system you are calling that you want to download a file the file
transfer starts automatically. You will be prompted for the location
of where the file will be written.
An example of an autostart protocol is CompuServe QuickB protocol.
You would simply type "DOW filename", Compuserve will respond with
"Filename for your computer". You would respond with the
path/filename of the file you are downloading. The transfer will
start automatically at that point.
MenuItem: Send File...
Hot Key: Right-Amiga-U
Same as Receive File... only in the reverse direction.
MenuItem: Capture On
Hot Key: Right-Amiga-O
A file requester will be presented with the default path and filename
taken from the path and filename you indicated in the Global Options
requester (more on the Global Options requester later). If this is
acceptable, hit return and the capture file will be opened. If it is
not acceptable, enter the desired path and filename.
Should you open a capture file, and that file already exists, the
new information will be appended to the existing file rather than
overwriting the existing file.
MenuItem: Capture Off
Hot Key: Right-Amiga-C
This turns off the capture buffer and closes the capture file.
MenuItem: Change Current Directory
Hot Key: None
This brings up a string requester into which you enter the
directory path you'd like to be the new current directory.
MenuItem: Selected Protocol Options
Hot Key: None
All of the XPR libraries have options that the user may select
on a "run time" basis. Using this item you will be presented
with a requester with various options that the currently
selected protocol offers.
ALSO SEE: The SETXPR ARexx command and the text file About_XPR.
Menu: Review
MenuItem: Show Review
Hot Key: Right-Amiga-R
This opens the Review Buffer. The Review Buffer is a circular buffer,
user sizable. You may move around in the Review Buffer by using the
up arrow and down arrow keys to scroll a line at a time. Shifted up
or down arrows will scroll a page at a time. ALT up and down arrow
will move you to top or bottom of file, respectively. Clicking the
mouse upper half of the display will scroll the display up one page.
Clicking the mouse in the lower half of the display will scroll the
display down one page.
A menu called "Size" is available. The menu item below will either
be "FULL" or "HALF". Select this item if you want to change the
size of the Review Buffer's window. This will cause the Review
Buffer's window to be the full size of the communications window or
half the size of the communications window. You may also size the
Review Buffer's window by using the sizing gadget in the lower
right corner.
NOTE: When you use the "Save Configuration" menu item located
in the Configuration menu, the current setting of the
Size variable will be saved in the configuration file.
You may exit the Review Buffer via the menu. Other methods to exit
the Review Buffer is to type Right-Amiga-Q, type ESC, or type HELP.
If you are running in a workbench window, there will also be a
Close Box in the upper left corner.
NOTE: The Review Buffer is "live", meaning that you may scroll around
in the buffer while text continues to come into the serial
port. When the Review Buffer's window is opened, only that
text which is currently in the review buffer will be displayed.
Text which subsequently is received will continue to be added
to the Review Buffer but will not be displayable until you
close and reopen the Review Buffer window.
MenuItem: Save Review
Hot Key: NONE
This brings up a file requester with the path "RAM:ReviewBuff" as
the default. If this is acceptable hit return or click on the
SAVE button. If it is not acceptable, enter the desired path and
file.
MenuItem: Size Review Buffer
Hot Key: NONE
Enter the size you want the Review Buffer to be _in bytes_. The
minimum size is 8k, the maximum is available memory size. If the
attempted allocation fails, the program will automatically subtract
8k the given size and try again, repeating as necessary until the
the allocation succeeds.
NOTE: When changing the size of the Review Buffer, all information
currently in the Review Buffer will be destroyed.
Menu: Print
MenuItem: Print Screen
Hot Key: Right-Amiga-Z
This will send what is currently displayed on BackTalk's screen to
your prt:.
MenuItem: Print Review
Hot Key: Right-Amiga-!
This will send the contents of the Review Buffer to prt:.
MenuItem: Echo Printer
Hot Key: Right-Amiga-E
All text that is displayed on BackTalk's screen will be echoed to
prt:.
Menu: Configuration
MenuItem: Global Options
Hot Key: NONE
This brings up the Global Options requester. Here you specify
the default Upload and Download directories and the default name
of the Capture file.
When BackTalk is first run, it takes note of the current directory.
It then will change the current directory to the path defined in
the "Download Directory" string gadget. When BackTalk terminates,
it sets current directory to what it was before.
NOTE: If you use the Change Current Directory menu item from
the Files menu, the current directory will be set to
that directory. On program termination, current directory
will be restored to what it was when the program was
run.
BackTalk utilizes proportional fonts. Even if the font you have
selected is not proportional, it is treated as such. When using
the Chat Window (described in more detail later) lines are
"auto sent" when a maximum line length is reached. This line
length is based upon the pixel length of the line, not the
character length of the line. You may, in the Global Options
requester, specify at what pixel length the line should be sent.
You are shown the current maximum line length, in pixels, that
is possible (based upon your horizontal resolution) and may enter
a different value in the string gadget. This feature is basicly
a trial and error adventure depending on the font you are using.
When using the Chat Window, as mentioned above, lines are auto sent
if a maximum line length is reached before a carriage return is
entered. You may elect to have a "..." automatically appended to
all lines that are auto sent from the Chat Window. Appending the
dots is especially useful when in a conferencing area to indicate to
others that you are not through typing. However, it can become a
nuisance if you are leaving a message while using the Chat Window.
In the Global Options requester you may select to have the dots
appended or not.
Also in the Global Options requester are two string gadgets, labeled
"Modem Init Command" and "Modem Exit Command". Whatever string is
in the Moden Init Command string gadget will be sent to the serial
port immediately upon starting BackTalk. The Modem Exit Command
string will be sent to the serial port just prior to terminating
BackTalk. If you do not want these strings to be sent, clear
these string gadgets.
MenuItem: Split
Hot Key: Right-Amiga-S
If you are running BackTalk in a hi resolution/interlaced mode, the
Split command will reduce the size of BackTalk's window to half
screen. Split is a toggle. If BackTalk is in half size mode,
selecting split again will return it to full screen size.
The state of this item is saved in the BT.CFG file.
MenuItem: Screen Type
SubItem: 1 Bit Plane
Hot Key: Right-Amiga-1
Causes BackTalk to be run in a 1 bit plane custom screen.
The state of this item is saved in the BT.CFG file.
SubItem: 2 Bit Plane
Hot Key: Right-Amiga-2
Causes BackTalk to be run in a 2 bit plane custom screen.
The state of this item is saved in the BT.CFG file.
SubItem: Workbench
Hot Key: Right-Amiga-3
Causes BackTalk to be run in a workbench window.
The state of this item is saved in the BT.CFG file.
MenuItem: Borders On/Off
Hot Key: Right-Amiga-B
This is a toggle which turns the window borders on or off.
The state of this item is saved in the BT.CFG file.
MenuItem: Set Colors
Hot Key: NONE
This brings up a color requester. You may change the colors of the
program with this requester. This menu item is ghosted if you are
running BackTalk from a workbench window.
The state of this item is saved in the BT.CFG file.
MenuItem: Fonts
SubItem: Diskfonts...
Hot Key: Right-Amiga-F
This brings up a file requester defaulted to FONTS:. Select the
font you wish to use, then select the point size, and click
on use. The state of this item is saved in the BT.CFG file.
SubItem: Topaz 8
Hot Key: Right-Amiga-8
Since Topaz is a rom font it will not show up in the Fonts
file requester. This item will select the Topaz 8 font.
The state of this item is saved in the BT.CFG file.
SubItem: Topaz 9
Hot Key: Right-Amiga-9
Since Topaz is a rom font it will not show up in the Fonts
file requester. This item will select the Topaz 9 font.
The state of this item is saved in the BT.CFG file.
MenuItem: Macros
SubItem: Load Macros
Hot Key: NONE
This brings up the a file requester. You may choose the macro
the macro file you want to be active.
NOTE: Macro files may be in any directory and named in any
way you would like. However, it is recommended that
you place your macros files in S: and that you use
the extension ".macro". When the file requester is
presented it will be defaulted to S:#?.macros.
SubItem: Edit Macros
Hot Key: NONE
This brings up the Macros requester. Simply click on the FKey
gadget of your choice, or type the associated F-key, enter the
text into the string gadget and type return in the string gadget.
To enter a carriage return into your macros, type a ^M (either
the 2 separate characters ^ and M or the 2 keys together. The
same goes for any control character you'd like to embed in a macro).
If you exit the Macro requester by selecting SAVE a file requester
will be presented with the name of the currently selected macro file.
A macro may contain the command to execute an ARexx script. The
delimiter for ARexx script names is the backslash (\).
An example ...
This is a test \do_something\and another test.
If the above is your macro, "This is a test " will be sent as a
normal macro string. Then the ARexx script "do_something" will be
run, then the text "and another test" will be sent as a normal macro
string.
NOTE 1: If you need to send a backslash as part of your macro and
it's not to be used as an ARexx scriptname delimiter, preface
the backslash with another backslash, ie., \\.
NOTE 2: The ARexx script name need not contain the path nor the
extension. The path is assumed to be REXX: and the extension
is assumed to be .BT.
MenuItem: Chat Window
Hot Key: Right-Amiga-W
This toggles the Chat Window on and off. Text typed into the Chat
Window will be sent to the serial port when a carriage return is
typed or when the length of the line exceeds the maximum line length
(see Global Options for more information on the maximum line length).
Because lines are auto sent from the Chat Window an insert mode
is not provided. You may move the cursor on the line in the Chat
Window with the left and right arrow keys. If you type over text you
will be "typing over text" rather than inserting new text.
A ctrl-X typed in the Chat Window will clear the current line.
A ctrl-Y typed in the Chat Window will delete the text from the cursor
position to the end of the line.
The Chat Window features a 20 line Chat History Buffer. This is a
circular buffer. You move through previously send line by using the
the up and down arrow keys.
Using the Chat Window in Compuserve's Conferenicng or CB areas:
If the beginning of a line is "/sen nn" (where nn is a "job number")
and the line is auto sent before a carriage return is entered, the
unsent text will be wrapped to the next line and PREpended with
the "/sen nn" from the previous line. This helps prevent embarassing
moments if the first /sen line is auto sent and the user neglects to
type "/sen nn" on the following line.
Sending control characters from the Chat Window to the serial port is
sometimes necessary. BackTalk will send ctrl-C, ctrl-O, ctrl-P, ctrl-Q,
ctrl-S, ctrl-Z, and ESC from the Chat Window to the serial port.
All others are ignored.
When the Chat Window is active, a gadget labeled /SEN is located
on the right side of the bottom status line. When the /SEN gadget
is clicked upon a string gadget will appear to it's right. This
gadget is used to make it more convenient to have a /SEN converation
(private conversation) with someone in CompuServe's Conferencing or
CB areas. When the the /SEN gadget is activated and a job number
is entered into the string gadget, all lines in the Chat Window will
be prepended with "/SEN nn" (where nn is the job number).
The state of this item is saved in the BT.CFG file.
MenuItem: Append "..."
Hot Key: Right-Amiga-. (period)
This function was decribed in more detail under Global Options.
It is another way (that is "hot keyable") to turn on and off the
append dots feature of lines auto sent from the Chat Window. When
this option is selected a "box" will appear on the far right side of
the Chat Window bar (the bar separates the main communications window
from the Chat Window). This gives you a visual indication that you
have selected the Send Dots feature.
The state of this item is saved in the BT.CFG file.
MenuItem: Double Click XON/XOFF
Hot Key: NONE
A check marked menu item that toggles on and off the ability to double
click the mouse to send an xon/xoff. The state of this item is saved
in the BT.CFG file.
MenuItem: CTRL-U From Chat
Hot Key: NONE
A check marked menu item that prepends a ^U to all lines sent from
the Chat Window. This option is CompuServe specific. If you are using
the Chat Window and you are experiencing line noise, a ^U will clear
CompuServe's input buffer (get rid of the noise) before you line is
sent. The state of this item is saved in the BT.CFG file.
MenuItem: Load Configuration
Hot Key: NONE
Selecting this item will present a file requester. You may choose
a configuration file to be loaded and "take effect".
NOTE: Configuration files may be in any directory and named in any
way you would like. However, it is recommended that you place
your configuration files in S: and that you use the extension
".cfg". When the file requester is presented it will be
defaulted to S:#?.cfg.
MenuItem: Save Configuration
Hot Key: NONE
Selecting this item causes all current user selectable options to
be written to the file BT.CFG. This includes the current selection
of protocol, colors, fonts, split or full window, 1 bit plane screen,
2 bit plane screen, or workbench screen, modem init and modem exit
strings, what window off or on, borders off or on, send dots off or
on, all serial parameters -- ANYTHING the user may select or change
from the default configuration.
NOTE: As of BackTalk 1.30, a version check is made when BT.CFG
is read from disk. If your BT.CFG file was written with a version
of BackTalk prior to 1.30 you will be presented with a requester
informing you that the file format is incompatible. The program
will then use the internal default values. However, the next time
you use select "Save Configuration" the new file format will be
written to disk. This was added in anticipation of future additions
to the BT.CFG file.
---------------------------------------------------------------------------
Other Features and Functions
ARexx:
Using internal scripts ...
When BackTalk is run it attempts to open the ARexx port "REXX". If this
port is found an new menu is added, ARexx. Under this menu is one menuitem,
"ARexx...". When this is selected a file requester is presented.
The file requester is defaulted to the REXX: directory and only filenames
with an extension of .BT are displayed. .BT is the recognized extension
for BackTalk specific ARexx scripts.
Using external scripts ...
Since BackTalk may be run more than once, different iterations of the progrm
will have a uniquely named ARexx port. In the first iteration it is
named BT_REXX. The second iteration is BT_REXX2, the third is
BT_REXX3, etc.
Quote all string arguments in your BackTalk ARexx scripts.
NOTE: All <string> arguments are case sensitive EXCEPT those used
with the ONSTRING and OFFSTRING commands.
Following are the ARexx command currently supported:
WAITFOR Usage: WAITFOR <string>
This command waits for the string. ARexx is not replied to
until this string is found.
ONSTRING Usage: ONSTRING <string>
Sends a message to ARexx whenever <string> is encountered in the
serial input stream. Your ARexx program must open a port named
BT_msg. When a match is found, BackTalk will send a message
to BT_msg, arg0 will be MATCH.
You may embed control characters within <string>. To do so, use
the ^ (caret) then the character. (ie, "John^M^J(" will cause the
serial input stream to be searched for "John" followed by an
0x0d (^M/carriage return), a 0x0a (^J), and a left parenthesis.
If you want to search the input stream for a ^ (caret) itself,
use "^^". IE., to search for "2^2" your string would be entered
as "2^^2". Each caret to be searched for must be preceeded with
another caret so the program knows you really want to search for
a caret and not to interpret it as the next character being a
control character.
NOTE 1: If you call ONSTRING(n) while an existing ONSTRING(n) command is
running you will not add a second string to the search but
will change the search string for the currently running
iteration of ONSTRING(n).
IE., ONSTRING "JOE" (input stream being searched for "JOE")
ONSTRING "MOE" (input strean now being searched for "MOE")
NOTE 2: There is only 1 port for BackTalk to send messages to
your ARexx script, that being "BT_msg". You should
include something like the following in your scripts
that use ONSTRING(n) and OFFSTRING(n) in case another
script you've got running is already using the port.
if ~openport("BT_msg") then do
MESSAGE "PORT ALREADY IN USE"
exit
end
If you don't and just assume the port opened without
checking the return value, or you ignore the return
value and try to use it anyway, all sorts of strange
things may happen.
The length of the ONSTRINGn/OFFSTRINGn arguments can
be up to 64 characters. They are NOT case sensitive.
ONSTRING1 Usage: ONSTRING1 <string>
Works exactly as described for ONSTRING except the message sent to your
ARexx script will be MATCH1.
ONSTRING2 Usage: ONSTRING2 <string>
Works exactly as described for ONSTRING except the message sent to your
ARexx script will be MATCH2.
ONSTRING3 Usage: ONSTRING3 <string>
Works exactly as described for ONSTRING except the message sent to your
ARexx script will be MATCH3.
ONSTRING4 Usage: ONSTRING4 <string>
Works exactly as described for ONSTRING except the message sent to your
ARexx script will be MATCH4.
ONSTRING5 Usage: ONSTRING5 <string>
Works exactly as described for ONSTRING except the message sent to your
ARexx script will be MATCH5.
ONSTRING6 Usage: ONSTRING6 <string>
Works exactly as described for ONSTRING except the message sent to your
ARexx script will be MATCH6.
ONSTRING7 Usage: ONSTRING7 <string>
Works exactly as described for ONSTRING except the message sent to your
ARexx script will be MATCH7.
ONSTRING8 Usage: ONSTRING8 <string>
Works exactly as described for ONSTRING except the message sent to your
ARexx script will be MATCH8.
ONSTRING9 Usage: ONSTRING9 <string>
Works exactly as described for ONSTRING except the message sent to your
ARexx script will be MATCH9.
ONSTRING10 Usage: ONSTRING10 <string>
Works exactly as described for ONSTRING except the message sent to your
ARexx script will be MATCH10.
ONSTRING11 Usage: ONSTRING11 <string>
Works exactly as described for ONSTRING except the message sent to your
ARexx script will be MATCH11.
ONSTRING12 Usage: ONSTRING12 <string>
Works exactly as described for ONSTRING except the message sent to your
ARexx script will be MATCH12.
ONSTRING13 Usage: ONSTRING13 <string>
Works exactly as described for ONSTRING except the message sent to your
ARexx script will be MATCH13.
ONSTRING14 Usage: ONSTRING14 <string>
Works exactly as described for ONSTRING except the message sent to your
ARexx script will be MATCH14.
ONSTRING15 Usage: ONSTRING15 <string>
Works exactly as described for ONSTRING except the message sent to your
ARexx script will be MATCH15.
ONSTRING16 Usage: ONSTRING16 <string>
Works exactly as described for ONSTRING except the message sent to your
ARexx script will be MATCH16.
ONSTRING17 Usage: ONSTRING17 <string>
Works exactly as described for ONSTRING except the message sent to your
ARexx script will be MATCH17.
ONSTRING18 Usage: ONSTRING18 <string>
Works exactly as described for ONSTRING except the message sent to your
ARexx script will be MATCH18.
ONSTRING19 Usage: ONSTRING19 <string>
Works exactly as described for ONSTRING except the message sent to your
ARexx script will be MATCH19.
OFFSTRING Usage: OFFSTRING <no argument> | <string>
This causes BackTalk to terminate the ONSTRING command.
If an argument is given to OFFSTRING it will be searched for in the
serial input string. When found BackTalk will send a message to
ARexx which will terminate the ONSTRING command. If no argument
is given to OFFSTRING a message will be sent to ARexx immediately
to terminate the ONSTRING command.
When the message is sent to ARexx it is sent to a port that ARexx
has opened named "BT_msg". Arg0 will contain "OFF".
You may embed control characters within <string>. To do so, use
the ^ (caret) then the character. (ie, "John^M^J(" will cause the
serial input stream to be searched for "John" followed by an
0x0d (^M/carriage return), a 0x0a (^J), and a left parenthesis.
If you want to search the input stream for a ^ (caret) itself,
use "^^". IE., to search for "2^2" your string would be entered
as "2^^2". Each caret to be searched for must be preceeded with
another caret so the program knows you really want to search for
a caret and not to interpret it as the next character being a
control character.
NOTE: If you give OFFSTRINGn an argument ...
The input stream is searched for the argument string.
When it is found a message is sent to ARexx and the
corresponding ONSTRINGn (it it exists) is cleared.
If you change the argument to OFFSTRINGn before a match
is found in the input stream, all you have done is changed
the search string and NOT cleared the corresponding
ONSTRING (if it exists). This means you may do a
OFFSTRING "test"
if later in your ARexx script you do a
OFFSTRING "news"
BEFORE a match on "test" is made, you will have changed
the search criteria from "test" to "news".
If you do NOT give OFFSTRINGn an argument ...
A message is sent to ARexx immediately and the
corresponding ONSTRINGn (if it exists) is cleared.
What this means is that OFFSTRINGn can be used as a "one shot"
"signal me when this string is found". Very much like WAITFOR
with the exception being that your ARexx script will have to
be looking for the message from BackTalk signaling the string
was found. (WAITFOR does not reply to ARexx until the string
is found and therefore effectively stops further execution of
your ARexx script until a match is found).
OFFSTRING1 Usage: OFFSTRING1 <no argument> | <string>
Works exactly as described for OFFSTRING except the message sent to your
ARexx script will be OFF1.
OFFSTRING2 Usage: OFFSTRING2 <no argument> | <string>
Works exactly as described for OFFSTRING except the message sent to your
ARexx script will be OFF2.
OFFSTRING3 Usage: OFFSTRING3 <no argument> | <string>
Works exactly as described for OFFSTRING except the message sent to your
ARexx script will be OFF3.
OFFSTRING4 Usage: OFFSTRING4 <no argument> | <string>
Works exactly as described for OFFSTRING except the message sent to your
ARexx script will be OFF4.
OFFSTRING5 Usage: OFFSTRING5 <no argument> | <string>
Works exactly as described for OFFSTRING except the message sent to your
ARexx script will be OFF5.
OFFSTRING6 Usage: OFFSTRING6 <no argument> | <string>
Works exactly as described for OFFSTRING except the message sent to your
ARexx script will be OFF6.
OFFSTRING7 Usage: OFFSTRING7 <no argument> | <string>
Works exactly as described for OFFSTRING except the message sent to your
ARexx script will be OFF7.
OFFSTRING8 Usage: OFFSTRING8 <no argument> | <string>
Works exactly as described for OFFSTRING except the message sent to your
ARexx script will be OFF8.
OFFSTRING9 Usage: OFFSTRING9 <no argument> | <string>
Works exactly as described for OFFSTRING except the message sent to your
ARexx script will be OFF9.
OFFSTRING10 Usage: OFFSTRING10 <no argument> | <string>
Works exactly as described for OFFSTRING except the message sent to your
ARexx script will be OFF10.
OFFSTRING11 Usage: OFFSTRING11 <no argument> | <string>
Works exactly as described for OFFSTRING except the message sent to your
ARexx script will be OFF11.
OFFSTRING12 Usage: OFFSTRING12 <no argument> | <string>
Works exactly as described for OFFSTRING except the message sent to your
ARexx script will be OFF12.
OFFSTRING13 Usage: OFFSTRING13 <no argument> | <string>
Works exactly as described for OFFSTRING except the message sent to your
ARexx script will be OFF13.
OFFSTRING14 Usage: OFFSTRING14 <no argument> | <string>
Works exactly as described for OFFSTRING except the message sent to your
ARexx script will be OFF14.
OFFSTRING15 Usage: OFFSTRING15 <no argument> | <string>
Works exactly as described for OFFSTRING except the message sent to your
ARexx script will be OFF15.
OFFSTRING16 Usage: OFFSTRING16 <no argument> | <string>
Works exactly as described for OFFSTRING except the message sent to your
ARexx script will be OFF16.
OFFSTRING17 Usage: OFFSTRING17 <no argument> | <string>
Works exactly as described for OFFSTRING except the message sent to your
ARexx script will be OFF17.
OFFSTRING18 Usage: OFFSTRING18 <no argument> | <string>
Works exactly as described for OFFSTRING except the message sent to your
ARexx script will be OFF18.
OFFSTRING19 Usage: OFFSTRING19 <no argument> | <string>
Works exactly as described for OFFSTRING except the message sent to your
ARexx script will be OFF19.
OFFSTRINGALL Usage: OFFSTRINGALL
This will clear all outstanding OFFSTRINGn and ONSTRINGn
calls. To be used if RESET does too much for your needs.
It is HIGHLY recommended you use either OFFSTRINGALL or
RESET immediately before exiting your ARexx script if
ONSTRINGn and/or OFFSTRINGn were used in the script.
RESET Usage: RESET
This is recommended to be used immediately before the "exit" command
in your ARexx scripts. It will clear all outstanding ONSTRINGn and
OFFSTRINGn calls, restore screen display if DISPLAYOFF was called,
and UNBLOCK user input if BLOCK was called. The main purpose of this
command is to tell BackTalk that the script has terminated and there
is no longer any reason to be checking the input stream for matches
if you had used ONSTRINGn/OFFSTRINGn. Of course, RESET can be used
at any time in an ARexx script if you wish the above actions to take
place.
SEND Usage: SEND <string>
Sends a string to the serial port with a terminating carriage return.
If the first character of <string> is a ^ (caret) the following
character will immediately be sent as a control character and any
text following that 2 character sequence will be ignored. No carriage
return is sent after a control character regardless of whether SEND
or SENDNCR was used.
SENDNCR Usage: SENDNCR <string>
The same as SEND however does not send a terminating carriage return
MESSAGE Usage: MESSAGE <string>
Sends a text message to the screen and to the review buffer
but does not send it to the serial port.
FKEY Usage: FKEY <Fn | SFn>
This will send one of BackTalk's fkey macros
Returns a non-zero on failure.
LMACROS Usage: LMACROS <path/filename>
This will load in an alternate set of macros.
Returns a non-zero on failure.
LCONFIG Usage: LCONFIG <path/filename>
This will load in an alternate configuration.
Returns a non-zero on failure.
CDIR Usage: CDIR <drive/path>
Changes the current directory. Returns non-zero on failure.
FONT Usage: FONT <fontname> <size> (ie, FONT "courier" "13")
Will load in a new font. If the point size argument is missing
no change will be made and an error of "5" will be returned. If
the font name cannot be found the font will be changed to Topaz 8 and
and error of 10 will be returned.
OPENCAPTURE Usage: OPENCAPTURE <filename | default from global options>
Returns a non-zero on failure.
CLOSECAPTURE Usage: CLOSECAPTURE
closes the capture file
DISPLAYOFF Usage: DISPLAYOFF
this turns off screen output. Scrolling, cursor
positioning, etc. still takes place, just no text
is output to the screen.
DISPLAYON Usage:
resume text display
GETSTRING Usage: GETSTRING <no argument> | <string>
Brings up a string requester and returns the string to ARexx.
The argument for this command is the prompt string for the requester.
You may remember why the requester popped up requesting input but
other users of your script might not. If no argument is given the
default text is "Enter your text". An error code of 10 is returned
if the requester failed to display.
GETFILENAME Usage: GETFILENAME <no argument | path>
Brings up a file requester and returns the full path to ARexx.
If cancel is clicked in the file requester a null string is returned.
PROTOCOL Usage: PROTOCOL <xprlibrary name> (ie., PROTOCOL "xprascii")
Selects and loads the specified XPR library. The ".library" is not
needed in the argument (but nothing is harmed if it's there). If the
specified library cannot be loaded for some reason, the xprquickb.library
will be loaded. If this is the case an error of 10 will be returned,
otherwise the result will be 0.
SETXPR Usage: SETXPR <string>
This will send string containing the codes for various user definable
options for the currently loaded XPR library. NO checking is made
to determine which library is currently active, just that there IS a
library loaded. This function is probably best used immediately
after a PROTOCOL call. For details on just what user definable
options each individual XPR protocol offers, and their codes,
see the file "ABOUT_XPR".
DOWNLOAD Usage: DOWNLOAD <path/filename>
The argument the path/name of the file that is written to your computer.
If no path/filename argument is given a file requester will be presented
for you to enter the path/name. If you select Cancel on the file requester
or select USE with no filename selected a non-zero error code will be
returned.
NOTE: If the protocol selected is an "auto-start" protocol (currently
xprquickb and xprzmodem are the only two currently available in
XPR format that I know of) this function will return immediately
with an error code of 0. If the protocol is not an auto-start
protocol this function will return with a 0 after completion of
the file transfer.
UPLOAD Usage: UPLOAD <path/filename>
The argument the path/name of the file that is sent from your computer.
If no path/filename argument is given a file requester will be presented
for you to enter the path/name. If you select Cancel on the file requester
or select USE with no filename selected a non-zero error code will be
returned.
NOTE: See the NOTE for DOWNLOAD.
BAUD Usage: BAUD <rate>
Returns a non-zero on failure.
PARITY Usage: PARITY <Odd | Even | None>
Returns a non-zero on failure.
DUPLEX Usage: DUPLEX <Full | Half>
Returns a non-zero on failure.
DLENGTH Usage: DLENGTH <7 | 8>
Returns a non-zero on failure.
STOPBITS Usage: STOPBITS <1 | 2>
Returns a non-zero on failure.
DEVICENAME <string> Usage: DEVICENAME <device.name>
Should this command fail, the program will read bt.cfg and use
those values to reopen the serial port. Of course, this will
negate any changes you may have made previously via the
PARITY, DUPLEX, DLENGTH, BAUD, and STOPBITS command.
UNITNUMBER <number> Usage: UNITNUMBER <number>
This command has the same caveat as DEVICENAME. If it fails
bt.cfg will be read and the serial port reopened with those
values. A strange thing with unit number, tho. Serial.device
will allow you to open using unit number 1, so the change is
successful altho BackTalk no longer talks to the modem.
PRINTERON Usage: PRINTERON
turns on echo to printer
PRINTEROFF Usage: PRINTEROFF
turns off echo to printer
BEEP Usage: BEEP
Flashes all screens
CLEARSCREEN Usage: CLEARSCREEN
Clears the communications window. If the Chat Window is present it will
clear up to the Chat Bar.
BLOCK Usage: BLOCK
This function blocks all user input to BackTalk.
Block removes the menustrip and ignores all keyboard input.
Note: Make sure that you issue either the UNBLOCK command or
the QUIT command before the ARexx script ends otherwise
you will not be able to communicate at all with BackTalk.
UNBLOCK Usage: UNBLOCK
Restores the menustrip and again pays attention to keyboard input.
SCREENTOBACK Usage: SCREENTOBACK
If BackTalk is running in a non-workbench screen, this will push
the screen to the back.
SCREENTOFRONT Usage: SCREENTOFRONT
If BackTalk is running in a non-workbench screen, this will push
the screen to the front.
HANGUP Usage: HANGUP
This command works just like the Hangup menu item.
It drops DTR. If CD was never set (dip flipped or using a 3 wire cable)
it will wait 60 ticks then send a "+++", delay(60), "ATH\r\n".
QUIT Usage: QUIT
It does what it says, it will shutdown the program.
DOTS Usage: DOTS
This is a toggle. If the "Append ..." feature is enabled this will
turn it off. If it is not enabled, this will turn it on.
BORDER Usage: BORDER
This is a toggle. If the window borders are displayed this will remove
them. If the borders are not displayed this will a set them.
CHAT Usage: CHAT
This is a toggle. If the chat window is up, this removes it. If it is
not enabled this enables it.
CLICK Usage: CLICK
This is a toggle. If the "Double Click XON/XOFF" feature is set this
turns it off. If it is off, this turns it on.
SENDU Usage: SENDU
This is a toggle. If the "Preface lines from chat window with ^U" is set
this turns it off. If it is off, this turns it on.
SPLIT Usage: SPLIT
This is a toggle. If you are running on an interlaced system, SPLIT will
toggle from full screen display to half screen display and back again.
BITPLANE1 Usage: BITPLANE1
Causes BackTalk to be run in a 1 bitplane custom screen.
BITPLANE2 Usage: BITPLANE2
Causes BackTalk to be run in a 2 bitplane custom screen.
WBWINDOW Usage: WBWINDOW
Causes BackTalk to be run in a Workbench window.
QSCREEN Usage: QSCREEN
Returns the string "SCREEN" or "WORKBENCH" indicating in what screen mode
the program is currently running.
QSIZE Usage: QSIZE
Checks whether the program is running with a half or full sized window.
Returns the string "HALF" or "FULL".
QLACE Usage: QLACE
Checks the interlace flag. Returns the string "ON" or "OFF".
QDEPTH Usage: QDEPTH
If the program is running on a custom screen, returns, as a string, the
number of bit planes. If running in a workbench window, it returns a
null string.
QFONTNAME Usage: QFONTNAME
Returns the name of the currently selected font.
QFONTSIZE Usage: QFONTSIZE
Returns the size of the currently selected font.
QCHAT Usage: QCHAT
Returns the "ON" or "OFF" state of chat window.
QBORDER Usage: QBORDER
Returns the "ON" or "OFF" state of the window borders.
QDUPLEX Usage: QDUPLEX
Returns the "FULL" or "HALF" state of the duplex.
QBAUD Usage: QBAUD
Returns the current baud rate.
QWLENGTH Usage: QWLENGTH
Returns the current word length setting.
QSTOPBITS Usage: QSTOPBITS
Returns the current stop bit setting.
QPARITY Usage: QPARITY
Returns the current parity setting, "NONE", "ODD", or "EVEN".
QCD Usage: QCD
Returns the state of Carrier Detect. Returns the string "ON" if
you are online, "OFF" if you aren't.
QDEVICENAME Usage: QDEVICENAME
Returns the name of the currently seleced serial device.
QUNITNUMBER Usage: QUNITNUMBER
Returns the currently selected serial device unit number.
QPROTOCOL Usage: QPROTOCOL
Returns the currently selected XPR protocol.
QDOTS Usage: QDOTS
Returns the state of "Append ...". "ON" or "OFF".
QPIXELS Usage: QPIXELS
Returns the currently selected pixel length wrap point.
QCAPTURE Usage: QCAPTURE
Returns the name of the default capture path/file
QDOWNLOAD Usage: QDOWNLOAD
Returns the name of the default download path
QUPLOAD Usage: QUPLOAD
Returns the name of the default upload path
QCLICK Usage: QCLICK
Returns the current state of the "Double Click XON/XOFF" feature,
"ON", or "OFF".
QSENDU Usage: QSENDU
Returns the current state of the "prepend ^U to chat lines" feature,
"ON", of "OFF"
QSADDRESS Usage: QSADDRESS
If BackTalk is currently running in a custom screen, this
returns the hex address of that screen. If the program is
running in a workbench window, this command returns a null string.
!!!!! IMPORTANT !!!!!
In all of your ARexx scripts that call ONSTRINGn and/or OFFSTRINGn,
make sure that in your getpkt() loop you've got something similiar to...
when arg0 = 'DIE' then do
closeport("BT_msg")
/* other clean up stuff here */
exit
end
This is _VERY_ important. If you have an ARexx script running that is
waiting for events (currently the only implemented BackTalk ARexx calls
that will generate these events are the ONSTRINGn and OFFSTRINGn calls)
and you terminate BackTalk, BackTalk will not be able to fully terminate
until your ARexx script exits the getpkt() loop. During BackTalk's
termination process, it will check if the port BT_msg is open. If it
is, BackTalk will send the "DIE" message to BT_msg. It is up to your
script to properly exit the getpkt() loop and terminate. The termination
of the ARexx script will signal BackTalk to complete its termination
process.
---------------------------------------------------------------------------
Following is an example ARexx script:
/* Start BackTalk ARexx script */
options results
address command "run BackTalk"
waitforport BT_REXX
if ~show('l', "rexxsupport.library") then
addlib('rexxsupport.library',0,-30,0)
address BT_REXX
BLOCK
QSIZE
if result = "FULL" then
SPLIT
call delay 100
GETSTRING "Enter the phone number to dial"
num = result
SENDNCR "atmdt "
SEND num
WAITFOR "CONNECT"
call delay 50
SENDNCR "^C"
WAITFOR "User ID:"
call delay 50
DISPLAYOFF
FKEY F2 /* this is an fkey macro, it sends my ppn and password */
/* in the form of 77777,1234\\password */
call delay 100
DISPLAYON
FONT "Courier" "13"
SEND "G AmigaUser"
WAITFOR "Forum !"
OPENCAPTURE "ram:testing"
SEND "RN"
WAITFOR "Forum !"
CLOSECAPTURE
SEND "BYE"
QUIT
(More scripts are included in the archive and will likely change from
release to release. Remember, scripts ending in .REXX are meant to be
run external to BackTalk, those ending in .BT are meant to be run from
within BackTalk)
---------------------------------------------------------------------------
Scroll Lock:
When a ^S is sent to the serial port, a text message, "Scroll Lock On" is
displayed on the left side of bottom status line. This is just a visual
indication that a ^S has been send and incoming text will not be resumed
until a ^Q is sent.
Mouse double click:
Double clicking the left mouse button sends a ^S to the modem. Double
clicking again sends a ^Q. This feature is user selectable via the
Configuration menu. The state of this item will be saved in BT.CFG.
Hot keyable requesters:
All gadget "buttons" in requesters in BackTalk, except for 2 exceptions
previously noted, are "hot keyable". Just type the first letter in the name
of the gadget.
ARexx Entrance and Exit Scripts:
If ARexx is available on your system, when you startup BackTalk, it will
look in REXX: for an ARexx script named BTstartup.bt. If the ARexx script
exists it will be run.
When terminating Backtalk, if ARexx is available on your system, BackTalk
will look for a file in REXX: named BTexit.bt. If found, the script
will be run before BackTalk terminates.
---------------------------------------------------------------------------
Many enhancements are planned for the future. Please don't be shy with
enhancement requests and bug reports.