home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d7xx
/
d725
/
term.lha
/
Term
/
term.doc
< prev
next >
Wrap
Text File
|
1992-09-05
|
82KB
|
2,371 lines
Copyright (C) 1990-1992 Olaf Barthel & MXM
Important information
***********************
I have placed the following information at the beginning of this
document so nobody can claim not to have found them.
Name changes
=============
For compliance with existing design guidelines, the names of
configuration files and the preferred storage directory have changed.
`term' will now store and read configuration files in the `TERM:config'
drawer (well, unless there is a `TERMPATH' variable which lead to a
different path... see below). If no `TERM:' device is available,
`term' will assign `TERM:' to the directory it was started from. If no
`TERM:config' drawer is available, it will be created.
The following names have changed:
`Preferences.term'
`term_preferences.iff'
The new name is `term.prefs'
`Phonebook.term'
`term_phonebook.iff'
The new name is `phonebook.prefs'
`Hotkeys.term'
`term_hotkeys.iff'
The new name is `hotkeys.prefs'
`Speech.term'
`term_speech.iff'
The new name is `speech.prefs'
`Macros.term'
`term_macros.iff'
The new name is `macros.prefs'
`Fast!Macros.term'
`term_fastmacros.iff'
The new name is `fastmacros.prefs'
The carrier signal
===================
Starting with revision 2.3 the `Check carrier' switch in the Modem
panel has a new function. If enabled, the carrier signal will be
checked during a file transfer (upload, download). If the signal gets
lost, the transfer will be aborted. If you wish to do a null-modem
transfer make sure that the switch is disabled or the transfer will be
finished before it has even started.
High-speed mode
================
Enabling the so-called `High-speed mode' in the Serial panel always
had the effect of defaulting the serial parameters to eight bits per
char, one stop bit, no parity. Up to v2.3 `term' would not display the
changes. Please do not wonder that this switch also affects other serial
parameters.
Background
***********
This program is a product of anger and despair; I was unable to find
a telecommunications program to suit my personal needs -- neither in the
commercial area, nor in the public-domain.
Most programs had a lot of extras but lacked other more important,
perhaps more sensible features (just to take an example: in revision
2.20c and after four years of constant development `Handshake' still
fails to use the current keymap settings and also strips the high order
bit when receiving text -- sorry Eric, that's why I never registered!).
I have hesitated for a long time before starting my first attempt at
writing my very own telecommunications program. When Kickstart 2.x was
about to become widely available I took the opportunity to create
`term' always trying to use the new OS routines wherever possible.
While this started to be quite a difficult task it also was a lot of
fun (imagine Columbus wrecking his fleet four times on his journey to
the West Indies due to unexpected leakages in all vessels and sudden
changes in the ships' sailing manuals -- that's how I felt!).
As far as computer-telecommunications are concerned, Germany appears
to be a developing country. This is partly due to the Deutsche
Bundespost, the federal mail/phone company whose telecommunications
monopoly used to be protected by federal law. Until 1989 you would
risk a heavy penalty if using a non-registered modem or telephone
instead of the Bundespost-supplied hardware. So, if you have any
complaints, or miss a few extremely important features in `term', don't
boo and hiss, I am not as long in the telecomm business as you are (I
have yet seen only a single `DEC VT-101' from afar!). Tell me what you
need and I will try to add it in the next revision.
This project was started at December 24 1990 and completed by
January 25 1991. I used the following tools to create `term': SAS/C
5.10b, WShell, CygnusEd Professional Release 2 & ARexx.
Acknowledgements
*****************
My thanks go to the following people for their invaluable help and
assistance: Andreas Kirchwitz, Christoph Teuber, Christopher Wichura,
Garry Glendown, Germar Morgenthaler, Henning Hucke, Holger Lubitz,
Juergen Otte, Marc-Christian Schroer, Markus Stoll, Martin Berndt,
Matthias Zepf, Michael Vaeth, Michael Wolfgang Hohmann,, Oliver Wagner,
Peter Fischer, Ralf Thanner,, Roby Leemann & AUGS, Stefan Becker,
Thorsten Seidel, Till `Dill-Prince' Prinzler, Udo Wolt, Ueli Kaufmann,
Veith Schoergenhummer, Volker Ulle & the Aquila Sysop Team and to all
those who supplied libraries & control sequence tables.
Special thanks go to John Burton of Papua New Guinea who revised and
rewrote certain parts of the program, in particular the terminal
emulation routines.
The xpr-libraries were created by Kenneth Osterberg & Markus Pietz
(`jmodem'), Marco Papa & Stephen Walton (`kermit'), Jack Rouse
(`quickb'), Marc Boucher (`xmodem'), Ueli Kaufmann (`ascii', `ymodem' &
`vms') and Rick Huebner & William M. Perkins (`zmodem').
The xpr-standard was created by Willy Langeveld, I borrowed a single
routine (`ahtoi') from Matthew Dillon's `DMouse' program, the quicksort
routine (`QuickSort.asm') was written by David Jones, the touch-tone
dialing routines are based on the article `DTMF -- A Program for
Generating Touch-Tone Signals' by Adam Levin, the touch tone period and
cycle values are Copyright (C) 1989 by Commodore-Amiga, Inc.
The current implementation of the external terminal emulation
library interface was developed by Ueli Kaufmann, who also wrote the
external terminal emulation libraries supplied with `term'. Without
the invaluable help of Martin Berndt the library interface would
probably not be working at all.
Special thanks go to Leo Schwab who discovered means to use
interleaved bitmaps in a system-integrated manner.
Since time did not permit me to translate the full original German
documentation into English, I had asked the Z-Net Amiga community for
help. As a result this document was translated by three different
authors (in order of translation): me, Marc Schroer and Henning Hucke.
Garry Glendown took care of the termRexx documentation -- thanks to all
of you!
Source code
************
Since there are still only very few well-documented examples (or
general programming examples) for Kickstart 2.x I have decided to
include the full `C' source code with the `term' distribution.
The source code is *not* intended for commercial use. If you are
about to include portions in commercial programs you will need to ask
me for permission. Still you may use parts of the source code for
non-commercial software development without my consent.
I sincerely hope that the release of the full `term' source code
will give Kickstart 2.x a better start (I've overcome quite a lot of
obstacles) so that more programs to use the new OS features will be
available soon.
Program updates
****************
Whenever a new release of `term' becomes available I will try to
make it known in the telecommunications networks. To order a copy send
a self addressed envelope, an international mail reply coupon and two
3.5" disks to the author.
The most current `term' release will be available through ftp from
`ftp.informatik.uni-oldenburg.de' (`134.106.1.9'), look into the
`/pub/amiga/term' directory.
Operating the program
**********************
`term' can be controlled both by mouse and keyboard. With very few
exceptions each operation requiring mouse control can also be executed
using keyboard shortcuts.
The program can be started both from Workbench and from Shell.
Kickstart 2.x is required to run `term'. The program will refuse to
work if executed under control of Kickstart 1.3 and below!
At least Kickstart 2.04 (revision 37.175) and Workbench 2.04
(revision 37.67) are required to execute `term' successfully. Earlier
developer Kickstart revisions or the Kickstart release installed on the
older A3000 models will probably not work (try it if you want -- but
don't complain!).
If called from Shell `term' will detach itself immediately allowing
the Shell window to be closed afterwards. This effect can be avoided
if `KEEPIO' is entered in the command line (`term keepio').
Usually, running `term' twice will cause the screen of the other
program to be popped to the front instead of creating a second `term'
process. To avoid this effect, enter `DONTPOP' as a calling parameter
(e.g. `term dontpop'). If called from Workbench, each program will run
as a separate process.
If `term' is to read its configuration files from a special
directory on startup, you can pass it the `SETTINGS' keyword and the
name of the directory to use (e.g. `term settings work:term').
Keyboard control
*****************
Starting with revision 2.2 almost any action can be executed both by
mouse and by keyboard. Each element of the user interface in whose
title an underlined character can be found can be controlled or
activated by pressing the corresponding key. If the object in question
is a list view or scroll bar, pressing the key along with a `Shift' key
will scroll the list/bar back and forth. Pressing the `Tab' key will
activate the first string gadget on the screen.
Screen
*******
The `term' main screen always opens to the full text-overscan size
(which can be set using the `Overscan' tool in the `Prefs' drawer).
At the bottom of the screen a small window displays a few basic
parameters. These are:
`Status'
The current program operating status. This includes `Ready',
`Holding' (`Control+S' was pressed), `Dialing' (the dialing
function is at work), `Upload' (data is being sent), `Download'
(data is being received), `Breaking' (a break signal is
transmitted across the serial line) and `Hanging up' (connection
is being cancelled).
`Font'
The currently active screen font used for text/graphics rendering.
`Protocol'
The currently set data transfer protocol.
`Emulation'
The currently active terminal emulation mode.
`Baud rate'
The data transfer rate in bits per second.
`Parameters'
The current serial parameters (Data bits-Parity-Stop bits).
`Time'
The current time of day.
`Online'
The time elapsed after a connection was successfully established.
This counter will be stopped as soon as the connection is
cancelled (e.g. by hanging up) and is reset to 00:00:00 as soon
as a new connection is made.
Every five seconds the time display will change to a calling fee
display and the other way round.
The screen itself is opened as a public screen (called `TERM') which
is available to other programs for their purposes. If more than one
`term' process is running, the public screen name will change according
to the number of the program (i.e. the first `term' to be started will
call the scren `TERM', the second one will call it `TERM.1', the third
one `TERM.2', etc.). The screen title bar will also display the name of
the public screen.
Menus
******
For each requester and input window there exists a set of menu items
to execute the commands associated with the buttons, dials and gauges
in the requester/window. Press the right mouse button to have a look
at the commands and their shortcuts.
The following text is to describe the menu items available in the
`term' main menu.
Project
========
`Save screen as Picture/Text'
This menu serves to save the current terminal window contents
either as plain ASCII text file or as a picture file.
`Print Screen/Clipboard'
These menu entries are to output text on the printer. You can
either print the contents of the main screen or the contents of
the clipboard.
`Capture to File/Printer'
Selecting one of these menu entries will toggle capturing incoming
text to the printer and/or a file on disk.
`Iconify'
Closes all screens and windows `term' has currently open, resets
and releases the serial driver and puts an icon into the Workbench
window. Double-clicking this icon will cause `term' to wake up
and to return the state is was in before iconification took place.
*While `term' is iconified, all incoming synchronous
ARexx-commands will be queued and the corresponding ARexx programs
will appear to `hang'. As soon as `term' is `awake' again pending
commands will be processed again.*
`About'
Shows some information on the program.
`Quit'
Terminates the program, hold down a `Shift' key to quit
immediately, otherwise you will be prompted to confirm your
decision.
After selecting the `Quit' menu item the program may take a few
seconds to exit since the contents of the Text buffer are freed first.
Edit
=====
`Paste'
Pastes the contents of the clipboard at the current cursor
position provided that the clipboard contains text data.
Commands
=========
`Execute AmigaDOS command'
Enter the command you want to execute and its command line
arguments here.
`Execute ARexx command'
This function calls the ARexx server to execute a script file. If
the first input character is a ` or " the input will be considered
as a small program in a single line. Note that this function will
not be available if the ARexx server isn't running.
The ARexx command set supported by `term' is described in the file
`termRexx.doc'.
`Set console window'
Whenever an AmigaDOS/ARexx command is executed an output window is
opened. This menu item will bring up a requester allowing you to
edit the size and position of the window to be opened (consult
your AmigaDOS manual for a description of the window position
string). If you do not want the window to appear, simply enter
`NIL:'.
The menu functions `Execute AmigaDOS command' and `Execute ARexx
command' allow you to select the name of the file to be executed by
clicking on the `Load file' gadget.
Phone
======
`Phonebook'
The phonebook is one of the most powerful and complex functions of
`term' and will be described later in this document (see
Phonebook).
`Redial'
Dialing list entries which the dialing routine was unable to
establish a connection to are once again passed to the dialer.
`Dial'
To dial a single phone number select this menu item. The phone
number entered will be passed to the dialing routine.
`Play phone number'
Outputs a telephone number using touch-tone dial coding on the
Amiga audio hardware.
`Send break'
Sends a `break' signal across the serial line.
`Hang up'
Tells the modem to hang up the serial line.
`Flush receive buffer'
Tells the serial driver to drop its input buffer contents and
resets the state of the internal serial buffers.
`Release serial device'
The serial driver is released for other programs to use it. A
requester will appear which allows you to reopen the serial driver
or to quit `term'.
If the serial driver has been released by the ARexx interface and
has not been reopened yet, this menu item will do it.
If you are still online, the `Redial' and `Dial' menu entries will
be disabled. In order to make another call, hang up the line first.
Transfer
=========
`Upload ASCII file(s)'
This is a pure ASCII-file upload implemented through
`xprascii.library'. It was added to allow poor BBS programs to
receive text files (especially Paragon doesn't seem to like ZModem
text file upload).
`Download ASCII file(s)'
This is a pure ASCII-file download implemented through
`xprascii.library'. Refer to `Upload ASCII file(s)' for
features/options of this mode.
`Upload text file(s)'
Sends a file/files to the remote receiver using the current
transfer protocol. If possible this command will `ask' the
transfer protocol to transmit the file(s) in text mode (whatever
that means) which may include CR/LF substitution and other
gimmicks. Consult the library documentation to find out if your
favourite transfer library supports text mode.
`Download text file(s)'
Request a file/files using the current transfer protocol. Refer to
`Upload text file(s)' for features/options of this mode.
`Edit & upload text file'
Invokes the currently selected (see Path panel) text editor on a
file to be selected using a file requester.
`term' will block and wait until the editor has returned.
After the editor has returned, the user will be asked whether the
file edited is to be transferred as plain ASCII or via text upload.
`Upload binary file(s)'
Send a file/files to the remote receiver using the current
transfer protocol. True batch upload is supported both through
wildcard expressions (`#?.txt' will send all files whose names end
with `.txt') or through multiple selection. Refer to the
documentation of your favourite transfer library to find out if
batch file transfer is supported.
`Download binary file(s)'
Receive a file/files using the current transfer protocol. If the
protocol does not support batch download you are required to enter
the name of the file to be received. Files which remain empty
after the transfer are deleted automatically.
The transfer routines open an information window in which a number
of transfer parameters are displayed (see Transfer panel).
Buffer
=======
`Clear buffer'
Clears the contents of the Text buffer. Any text will be
discarded and *cannot* be recovered. Capture files are not
affected by this command.
`Display buffer'
Opens the Text buffer screen.
`Close buffer'
Closes the Text buffer screen but does not free the contents.
`Freeze buffer'
This menu entry will, if enabled, stop the Text buffer from
filling up with new text.
`Open buffer...'
Loads the contents of the Text buffer from a file. If there are
still text lines in the Text buffer a requester will appear giving
you the choice to discard the old data, append the new data, or to
cancel the action.
`Save buffer as...'
Saves the contents of the Text buffer to a file. You will be
notified if the file to save to exists already (you may discard
the old file, append the new data or cancel the action).
More detailed information on the Text buffer will be given later in
this document.
Terminal
=========
`Clear screen'
Clears the whole `term' screen and moves the cursor to the top
left home position.
`Reset font'
Will change the screen font back to the default screen font.
`Reset styles'
Resets all character style attributes (bold, blinking, inverse
video, underlined, etc.) and sets the text colour to the default
pen.
`Reset terminal'
Use this menu item to reset the state of the entire terminal
emulation.
`Change emulation parameters'
Will open a control panel which allows setting some of the
internal parameters of the currently active terminal emulation.
Depending on whether an external or the internal terminal
emulation is currently active, different control panels will
appear. For more information on the internal terminal emulation
see Emulation panel.
Settings
=========
This is where you adjust the program preferences settings. There is
a difference between local and global settings: local settings can also
be set by making a connection to a mailbox while global settings are
kept even while local settings are active. They have to be changed
explicitely.
`Serial settings'
See Serial panel
`Modem settings'
See Modem panel.
`Screen settings'
See Screen panel.
`Terminal settings'
See Terminal panel.
`Commands'
See Command panel.
`Miscellaneous'
See Miscellaneous panel.
`Paths'
See Path panel.
`Transfer protocol'
This command allows you to specify the transfer protocol library
to be employed for up-/downloads.
`Transfer'
The transfer options can be changed with this command. If
possible a control panel will pop up which allows you to change
the current parameters by mouse/keyboard. If the selected
transfer protocol does not provide these option hooks, a simple
string requester will prompt for input. Consult the documentation
of your favourite transfer protocol for legal options and the
values to which they can be set.
`Macro settings'
See Macro panel.
`Fast! macro settings'
See Fast macro panel.
`Hotkeys'
See Hotkey panel.
`Speech'
See Speech panel.
Windows
========
`Status'
This function opens a window to display program status
information. Click the window to update the information:
`Session start'
When was the program started?
`Bytes received'
The number of bytes received.
`Bytes sent'
The number of bytes sent.
`Connection message'
The string returned by the modem when a connection was made.
`Screen size'
The size of the terminal output window in characters (columns
/ rows).
`Buffer size (bytes)'
The size of the Text buffer.
`Free memory (bytes)'
The amount of free system memory.
`Review'
A review window is opened which basically displays the same text
as the text buffer screen. You can scroll through the text
displayed both by mouse (see the right hand side scrolling gadget)
and by cursor keys.
`Packet'
Opens an input window in which a single line of characters to be
transferred across the serial line can be entered. More on this
feature is explained under Packet window below.
`Fast! macros'
Opens or closes the so-called fast! macro panel. The role of the
Fast! macros will be discussed later in this text.
Control panels
***************
This where all the control panels employed by `term' are explained:
Serial panel
=============
This is where the serial parameters may be changed.
`Baud rate'
Transfer speed in bits per second.
`Bits/char'
Number of bits per transferred character (7 or 8).
`Parity'
Serial parity (none, odd, even, mark or space).
`Stop bits'
Number of stop bits (1 or 2).
`Handshaking'
Serial handshaking mode (RTS/CTS, RTS/CTS with DRS signal check,
none).
`Duplex'
Determines whether characters are echoed back to the terminal
screen or not (full, half = local echo).
`Buffer size'
The number to be specified here allows to set the serial driver
I/O buffer size. *Every number you enter here will result in
`term' and the serial driver allocating twice the buffer size
(this is only a word of warning for those among us who prefer
buffer sizes of 256K and up).*
`High-speed mode'
Activates a special mode of the serial driver which is to skip a
couple of internal parity and stop bits checks resulting in higher
data throughput rate. *If this switch is turned on, the serial
parameters will be reset to 8 bits per char, no parity and 1 stop
bit.*
`Shared access'
Requested by many (two to be accurate) users, this switch allows
you to run the serial driver in shared access mode. Not all
driver types will allow this to happen.
`xON/xOFF'
This switch enables the processing of the flow-control characters
`xON' (= `Control+S') and `xOFF' (= `Control+Q').
`Break length'
Length of the break signal given in microseconds.
`Serial device'
The name of the serial driver to be used by `term'. This is
usually `serial.device' (`modem?.device' for the internal Supra
modem, `sxbios.device' for ASDG's serial IO card).
`Select new device'
Press this button to select the serial device driver using a file
requester.
`Device unit number'
The device unit number of the serial driver selected above. This
is usually left `0' but can also be used to address multiple
serial IO ports.
`Use'
Accept the current settings.
`Cancel'
Don't use the current settings.
Most modems will not recognize a sudden change in the baud rate.
Type `AT<RETURN>' to make the change known.
If `RTS/CTS (DSR)' handshaking is selected, `term' will check to see
if the `Data set ready' line happens to be high active. If not, it
will default back to software handshaking (`xON'/`xOFF'). The
`RTS/CTS' handshaking mode will ignore the presence or absence of the
`DSR' signal.
`term' will take advantage of Christopher Whichura's
`OwnDevUnit.library' if installed in your system, allowing controlled
access to the serial driver's resources.
Modem panel
============
This is where modem control strings and other related parameters are
configured.
`Modem init string'
The string to send to the modem after successful program
initialization. This string is optional and does not need to be
entered.
The dialing routine will use the initialization string entered
here before dialing a phone number.
`Modem exit string'
The string to be sent to the modem shortly before the program
terminates. Just like the modem init string this string is
optional and does not need to be entered.
The dialing routine will use the initialization string entered
here before dialing the next telephone number.
`Modem hangup string'
The string to be sent to the modem when asked to hang up the line.
This string is not optional, it has to be present for the program
to work properly.
`Dial prefix'
The string to be used to prefix each dialing command. This is
usually a variant of `ATDP' or `ATDT'.
`Dial suffix'
The string to be used to append to each dialing command. This is
usually the carriage-return character `\r'.
`No carrier string'
The string the modem emits if the data carrier is lost. The
program uses this to determine the length of the connection and to
calculate the how much the user is to pay for it.
`Connect string'
The string the modem emits after detecting a carrier signal.
`term' uses this input to determine successful telephone
connection, to reconfigure itself and to start the online timer.
`No dialtone string'
The string to be returned by the modem in case it does not
encounter any dialing tone on the phone line.
`Voice string'
The string `term' is expected to receive if the modem detects a
voice call. If in dialing mode, `term' will abort the process.
The user will in any case be notified of the event.
`Ring string'
The string the modem emits if it receives a call, same effects as
with the `Voice string'.
`Busy string'
The string the modem returns if the number which has just been
dialed is busy.
`Redial Delay'
The time to wait after walking through the whole dialing list
without making any successful connection before another attempt is
started.
`Number of dial retries'
The number of times the dialer walks through the dialing list
trying to make a successful connection before giving up.
`Dial timeout'
The time to wait for a successful connection during dialing.
After this time has elapsed, the dialer will skip to the next
entry in the list.
`Connect auto-capture'
If enabled will automatically open a capture file after
successfully making a connection. Any other already open capture
file will be closed before proceeding.
`Connect auto-baud'
Most modems echo the baud rate upon successful connection. If
enabled the baud rate will be read and set for the serial driver.
`Log actions'
If enabled will write a protocol of each program action (uploads,
downloads, dial attempts, etc.) to a file. Each action is listed
along with time and date. Carrier-lost-events will also note the
approximate cost of the call.
`Check carrier'
`term' will recognize the `NO CARRIER' message a modem emits when
the carrier line signal drops back to low. For maximum safety,
`term' will also check the carrier signal line after receiving the
`NO CARRIER' message if this switch is enabled. This is to make
sure that no accidentally appearing string causes confusion.
If this switch is enabled, `term' will check the carrier signal
during file transfers and will abort the transfer if the signal is
lost.
`Drop DTR on hangup'
Some modems will track the `data terminal ready' line in order to
make sure that the terminal program is listening, once the line
goes back to low potential, these modems will drop the line and
hang up. Use this button to enable this feature.
`Pass xON/xOFF through'
If this switch is enabled, `term' will pass the `xON'/`xOFF'
characters through to the modem rather than swallowing them.
`Create call info'
If this switch is enabled, `term' will create call-log files in a
format compatible with the `NComm' terminal program in the
log-file directory specified under `Paths' settings (see Path
panel). The name of the log file will always be `term-call.log'.
`Use'
Use the current settings.
`Cancel'
Keep original settings.
Screen panel
=============
`Display modes'
All display modes available for the main screen are displayed here.
*The A2024-modes should only be used in connection with an
A2024/Hedley-monitor. Otherwise the screen may `crash' and
working with `term' will not be possible any longer.*
`Edit screen palette'
These gadgets are used to select a colour of the screen palette
that is to be changed.
`Red/Green/Blue'
Use these sliders to modify the red, green and blue components of
the currently active colour.
`Use default colours'
Press this button to have the current colour palette set to the
built-in default colours.
`Screen font'
The name of the current user-interface font is displayed here.
`Select new screen font'
Press this button to select a new font to be used for the
user-interface design.
`Make screen public'
As dealt with before, the `term' mainscreen is opened as `public'.
With this gadget the user may define if other applications are
allowed to open up their windows on the `term' screen.
``Shanghai' windows'
This item, which is only displayed if `Make screen public' has
been selected, is closely related to the function before. If
active, all windows that will normally be displayed on the
Workbench screen will open on the `term' main screen.
`Use'
Use the current settings.
`Cancel'
Keep the old settings.
The new ECS display modes (Super-Hires, Productivity, etc.) restrict
the number of screen colours. Instead of 16 bit portions for red,
green and blue only 2-bit portions are used which leads to a maximum
width of the palette of at all 64 colours. This is not a `feature' of
`term', but a hardware restriction.
Terminal panel
===============
All settings that may be done here determine the behaviour of the
terminal itself, i.e. how command sequences are interpreted and
displayed.
`Capture filter'
If selected, command sequences are filtered out before the
incoming characters are captured to disk or printer.
`Destructive BS'
Determines if the `Backspace' code, which will delete the
character left from the cursor, only moves the cursor to the left
or removes the character from the screen.
`Swap DEL <-> BS'
For the hard core VT100 user: if this switch is enabled the roles
of the backspace key and the delete key are reversed. *This also
applies to sequences such as `Control+H' which will produce a
delete character instead of a backspace character.*
`Strip bit 8'
For those guys and gals who need it: if this switch is effect
each character received or transmitted by `term' will have its
high-order bit cleared.
`Stop blinking'
If selected the VT100-blink option is suppressed. If running in
eight colour mode, `term' will only use three bitplanes instead of
four for text display.
`Faster layout'
Activating this switch will slow down display updates and window
management. Oh well, not always, there may be a speed increase
with some configurations, such as with external emulations
activated or when using more than four colours on the screen.
I suggest to experiment with the effects of this button before
actually using it.
`Screen title'
If this button is enabled, the `term' screen will contain a
draggable title bar, if not, the title bar will be disabled,
leaving more space for the terminal output window.
`Status line'
This switch allows to disable the status line display or to change
between two alternative status line displays:
`Disabled'
No status line is displayed.
`Standard'
The standard two status lines are displayed.
`Compact'
A very condensed version of the status line is displayed,
only the data is shown but no captions. The data is
displayed in the following order:
1. Status
2. Terminal type
3. Transfer protocol
4. Baud rate
5. Serial parameters
6. Time of day
7. Online time
`Answerback message'
The string to send across the serial line whenever an `ENQ'
character is received. The string is -- as usual -- a command
sequence.
`Font'
Here the type of the font to be used for text display in the
terminal window can be selected:
`Standard'
The standard text font.
`IBM'
A font similar to the IBM-PC text font will be used.
*This requires the `IBM.font' to be present in the `Fonts:'
directory.*
`Text font'
Here the name of the standard terminal window text font is
displayed.
`Select new text font'
Press this button to select a new terminal window text font.
`Send CR'
This gadget determines the sequence that is sent to the remote if a
carriage-return is issued.
`As CR'
Without any change
`As CR+LF'
Carriage-return and linefeed
`Ignore'
Suppress any carriage-return
`Send LF'
This gadget determines the sequence that is sent to the remote if
a linefeed is issued.
`As LF'
Without any change
`As LF+CR'
Linefeed and carriage-return
`Ignore'
Suppress any linefeed
`Receive CR'
`Receive LF'
These two buttons have largely the same effect as the `Send CR/LF'
buttons, they are different in that they affect the incoming data
rather than the data transmitted.
`Bell'
This is where you select the action(s) `term' is to take whenever
a `bell' character turns up in the data stream:
`Visual'
The screen will flash.
`Audible'
An audible signal will be generated.
`Visual & audible'
A combination of both effects.
`Ignore'
Nothing will happen.
`System default'
The system beep routines will be used.
`Alert'
`term' notifies the user of certain events, such as a connection
being established or a file transfer action which has just been
finished. This switch allows you to select the type of
notification:
`Bell'
A bell signal will be given.
`Screen'
The `term' screen will be brought to the front.
`Bell/Screen'
A combination of the two actions above.
`None'
Nothing will happen.
`Display size'
Usually, the number of characters to be displayed on screen is
determined by the physical dimensions of the main screen. But now
and then a BBS requires the screen to be of a fixed size, here is
what this switch allows you to set it to:
`Screen Size'
Will fit as many characters on the screen as the physical
screen size allows.
`80 x 24 (VT100)'
As required by VT100, this will limit the number of
characters to be displayed on screen to the typical 80 x 24
rectangle.
`80 x 25 (ANSI)'
Similar to VT100, ANSI uses a fixed screen width but supports
one more display line than VT100.
In each case, using this switch will not change the physical
dimensions of the main screen but the limits in which the cursor
can be moved.
`Colour'
This gadget determines the colour-mode the terminal emulation is
going to use. Until now, three modes have been implemented:
`Amiga'
Four colours and blinking.
`8 Colours (Blink)'
Eight colours and blinking.
`16 Colours'
Sixteen colours, as the EGA-palette.
`Mono'
Monochrome, two colours.
`Emulation'
At this point the user may select the terminal emulation. First
there is a solid VT102/VT220/ANSI emulation which supports all
common commandsequences, then there is a so called `Atomic'
emulation which does only support the very basic command-sequences
(CR, LF, Backspace, etc.), all VT102- and ANSI-command-sequences
are suppressed, and, last but not least, a `TTY'-emulation which
does not suppress all command-sequences, as `Atomic' does, but
rather echoes them to the screen.
In addition to the built-in terminal emulation, `term' also
supports external terminal emulations. To select one, set the
terminal emulation type to `External' and enter the name of the
emulation in the string gadget below (the file may alternatively
selected by hitting the `Select new emulation' button). In case
anything goes wrong loading or initializing the terminal emulation
library, `term' will switch back to the built-in `ANSI/VT'
emulation.
`Emu. name'
The name of an external terminal emulation library to be used by
`term' instead of the built-in emulation code.
`Select new emulation'
Press this button to invoke a file requester allowing you to
select the external terminal emulation file to be used by term
instead of the built-in terminal emulation.
`KeyMap name'
If your installation requires that `term' is to use a custom
keymap layout, enter the keymap file name here.
*At the time of this writing the program will not support custom
keymap layouts with the Packet window due to operating system
limitations.*
`Use'
Use the current settings.
`Cancel'
Keep the old settings.
Command panel
==============
Here you will find entries for four command sequences which serve
four functions:
`Startup/Login macro'
At the beginning of every session with `term' and after a
connection has been established by the dialing routine a
command-sequence is executed which may execute command-files or
perform a automatical `login'.
`Logoff macro'
The macro to execute when the line is hung up or the carrier
signal is lost.
`Upload macro'
`term' will execute this macro after a successful upload has been
made.
`Download macro'
`term' will execute this macro after a successful download has
been made.
Miscellaneous panel
====================
This is the place where options can be set which would not fit into
other control panels
`Program priority'
Use this slider to determine the priority under which the `term'
main process is to operate. Adjusting this value can make `term'
perform more reliably in a system which experiences heavy task
loading. It is recommended to play with this value until a
satisfactory state is found, setting the program priority too high
or too low may affect the performance of coprocess-services such
as the double-buffered file I/O routines.
`Override transfer path'
Each batch file transfer protocol allows you to specify the name
of the directory to place the files it receives in. By default
`term' will redirect the files to a directory to be specified in
the Path panel. If this switch is disabled, the internal settings
of the current transfer protocol will be used.
`Backup configuration'
By default the local program configuration saved along with a
phonebook entry will replace the global configuration as soon as a
successful connection is made. If this switch is enabled, `term'
will remember the global configuration in effect before the
configuration data of a phonebook entry is adopted. As soon as
the serial driver loses track of the carrier signal or the user
chooses to hang up the line, `term' will switch back to the
previous global configuration.
`Use auto upload panel'
Some users found the so-called `ZModem auto-upload panel' to be
invoked whenever `term' encounters the ZModem inquiry sequence
rather disturbing, this switch will allow them to disable this
feature.
`Set `archived' bit'
If enabled, this switch will cause `term' to set the `Archived'
bit on files transferred using the XPR-interface.
`Clipboard unit'
The clipboard supports several units (0-255) which can be accessed
independently. It can make sense to change this value but
generally you will probably leave it as unit `0'.
`Clipboard character delay'
When pasting the clipboard contents this number determines how many
seconds to wait before sending the next character.
`Clipboard line delay'
When pasting the clipboard contents this number determines how many
seconds to wait before sending the line-termination character
(carriage return).
`Maximum buffer size'
To save memory, a high-water mark concerning the maximum amount of
memory the Text buffer will allocate for text may be specified.
The minimum value to be entered here is 2,000 bytes which are
roughly equivalent to two Text buffer pages of text. A value of 0
will cause the Text buffer to always allocate as much memory as
required to buffer all the incoming text.
`Buffer enabled'
This switch works in conjunction with the `Freeze buffer' menu
entry (freezing the Text buffer contents). In fact, the menu
entry is adjusted according to the configuration settings whenever
a new configuration is invoked (that is, whenever a new connection
is made through the dialing panel or at program startup time).
*`term' will only freeze the buffer if this switch is set, it will
leave the buffer state (frozen or not) untouched if this switch is
not enabled.*
`Show fast! macros'
If this switch is enabled, the fast! macro panel will be opened
whenever the current configuration becomes active (e.g. at
startup time).
Path panel
===========
In this part of the settings all paths, which `term' uses to save or
load any data, can be determined.
`Config. storage dir'
The directory that will contain all configuration files
(Phonebook, Makrokeys, etc.). The default configuration file is
called `term.prefs' and will be searched in the path defined by
the enviroment variable `TERMPATH' (see Environment variables).
`??? Up/Downloadpath'
The directories in which the functions contained in the `Transfer'
menu will search and create files.
`Capture path'
This gadgets contain the path in which the the capture files will
be created if `Connect auto-capture' is enabled.
`Log file'
The name of the file in which the information on the actions
executed by `term' will be logged if `Log actions' is enabled.
If the `Create call info' feature is enabled, `term' will create
the `term-call.log' file in the directory given here.
`Text editor'
Contains the name and search path of the editor used by `Edit &
upload text file' in the Transfer menu.
`Terminal `beep' sound'
The name of the IFF-sound-file that will be played if a BEL-signal
is detected. This file may for technical reasons not be larger
than 102,400 bytes.
`Use'
Use the current settings.
`Cancel'
Keep the old settings.
If any `Select' button is pressed, the path or filename beside can
be selected by the file-requester.
Macro panel
============
This menu is used to set user definable strings for all ten function
keys. All strings are considered Command sequences, a topic which will
be covered later in this document.
`Modifier'
All in all 40 Keys may be covered with user defined Command
sequences. As the Amiga keyboard only has ten function-keys this
gadget switches between the modifier keys (`Shift', `Control',
`Alt') which, if pressed in addition which a function key, will
execute one of the 40 command sequences.
`Load'
Load the macro-keys from a file.
`Save'
Save the macro-keys to a file.
`Use'
Use the current settings.
`Cancel'
Keep the old settings.
As the definition of the function keys with command sequences
contradicts the standard definition of the four functions keys of a
VT-100-terminal, the keys `F1'-`F4', which may be executed by pressing
the `Shift' key and the approriate function-key simultaneously, are
mapped to the standard sequences for function-keys. The user may -- of
course -- change these settings.
If an external terminal emulation happens to be active, those
function keys the emulation has allocated for itself will be disabled
and cannot be edited.
Fast macro panel
=================
The design and implementation of the settings to be configured in
this menu are closely related to the menu entry `Macro panel' discussed
before, the only difference to be seen in the fact that the fast!
macros are mapped to buttons rather than function keys (more on this
topic later in this document, see Fast! macros).
`Macro list'
The list of macros entered yet, to edit one of these, select it by
clicking the mouse button with the mouse pointer on it.
`Macro'
The name of a macro by which it is listed in the fast! macro list.
`Macro code'
The command sequence (see Command sequences) associated with a
fast! macro. Command sequences are discussed later in this
document.
`New'
Appends a new macro to the list. The user may then select and
customize it.
`Delete'
Removes the currently selected macro from the list.
`Load'
Loads the macro list from a file.
`Save'
Saves the macro list to a file.
`Top'
Places the currently selected macro at the top of the list.
`Up'
Moves the currently selected macro one entry up.
`Down'
Moves the currently selected macro one entry down.
`End'
Places the currently selected macro at the end of the list.
Hotkey panel
=============
This is where the key sequences used to arrange screens and to
execute special functions are to be configured.
`term screen to front'
The keys to press to bring the `term' screen to the front.
`Buffer screen to front'
The keys to press to bring the screen of the Text buffer process
to the front.
`Skip dial entry'
As an alternative to the `Skip' gadget, pressing these keys will
skip a dialing entry if the dialing function is currently active.
`Abort ARexx command'
An ARexx script started from within `term' can be aborted by
pressing these keys. Use this function only if pressing
`Control+C' does not stop the program execution.
`Commodity priority'
The commodity priority to assign this task to. You may want to
change this value if you have more than one program running which
uses the same key sequences as `term'. The program with the
higher commodity priority will receive the keystrokes first.
`Hotkeys enabled'
Whether the hotkeys are enabled or not can be toggled by clicking
on this gadget, or by using the `Exchange' program to be found in
the `Tools/Commodities' drawer.
`Load'
Loads the hotkey settings from a file.
`Save'
Saves the hotkey settings to a file.
`Use'
Use the current settings.
`Cancel'
Keep the original settings.
If any changes made here do not seem to take effect immediately, the
user has probably typed a keyword wrong (causing the entire hotkey
setup to fail). I'm sorry about this, but the current implementation
of hotkey support does not sport error checking.
Speech panel
=============
If enabled, the Amiga speech synthesizer will be used to alert the
user of certain actions, such as carrier lost, connection made, etc.
This feature makes sense if `term' is running in the background where
the user cannot see what is actually happening on the main screen. By
default this feature is disabled.
`Rate'
Speaking speed in words per minute.
`Pitch'
The greater this value, the higher the voice appears to speak.
`Frequency'
Voice frequency in Hertz.
`Volume'
The volume of the voice.
`Sex'
Enabled female or male voice.
`Speech enabled'
Toggles the activity of the speech synthesizer.
`Speak!'
Speaks a small sample text, note that speech must be enabled for
this function to work.
`Load'
Loads the speech settings from a file.
`Save'
Saves the speech settings to a file.
`Use'
Use the current settings.
`Cancel'
Keep the original settings.
Emulation panel
================
The gadgets found here allow you to change the internal parameters
of the selected emulation.
The following text only describes the parameters to change when
using the built-in terminal emulation; if an external terminal
emulation is in effect, this menu will conjure up the corresponding
parameters menu supported by the external terminal emulation module.
`Smooth Scrolling'
If active, the each carriage-return code will cause the contents
of the screen to scroll up smoothly.
`Wrap characters'
This function activates the automatical carriage return function
which is triggered as soon as the cursor crosses the right screen
margin. To avoid unpleasant side-effects, this gadget should be
activated all the time.
`Wrap cursor'
According to the VT100-specification the cursor movements have to
stop at the edges of the screen. In spite of this the cursor may
leave these borders, especially in ANSI-mode, and may appear at
the other side of the screen. This gadget activates a more
`tolerant' mode.
`Insert mode'
Normally, `term' is in overwrite-mode (characters entered
overwrite the contents of the screen). If this gadget is
activated, typed characters are inserted by pushing all the
characters right of the cursor towards the right margin.
*The insert-mode does only work for lines. If characters are
pushed out of the screen they cannot be restored.*
`New line mode'
This gadget activates a special mode in which some
VT100-control-sequences cause `term' to perform a linefeed instead
of clearing the screen or other serious changes of the contents of
the screen.
`Numeric keypad'
If this mode is activated the keys of the numeric keypad transmit a
command-sequence instead of a number. If the remote computer
needs these sequences, this mode -- applications mode -- can be
activated with this gadget.
`Cursor keys'
If this mode is active the cursor keys transmit a command-sequence
instead of a cursor move event. If the remote computer needs
these sequences, this mode -- applications mode -- can be
activated with this gadget.
`Font scale'
VT-100 offers several different sizes of fonts. Some can be
selected with this gadget:
`Normal'
The normal height of the font.
`Half width'
Half width of font.
`Use'
Use the current settings.
`Cancel'
Keep the old settings.
Transfer panel
===============
The transfer routines open an information window in which a number
of transfer parameters are displayed. Additionally, the file transfer
can be aborted by clicking either of two buttons (`Abort entire
transfer' and `Skip current file'). *For most transfer protocols both
buttons (abort and skip) have the same effect.* Consult the
documentation to see if different levels of abort are supported by your
favourite transfer protocol.
The following information is displayed in the transfer window:
`Protocol'
The name of the transfer protocol currently running.
`File'
The name of the file being transferred.
`File size'
If available, the size of the file.
`Space left'
The space left on the destination device. `term' will try to
calculate the number of blocks the file being received will take
on the destination device and display a warning the file in
question is probably not going to fit.
Caution: `term' only makes a very propable guess which may or may
not come true. The guess may be wrong if the destination device
happens to be a kind of ram-disk which shrinks and expands as
memory requirements come and go. Such devices are usually 100%
full. In most other cases you will probably be able to make room
for the file being received before any space problem turns up.
`Bytes transferred'
Number of bytes transferred yet.
`Blocks transferred'
Number of data blocks transferred yet.
`Block check type'
The method employed to verify the integrity of the data blocks
being transferred (this usually is a form of cyclic redundancy
checking).
`Block size'
Size of a data block in bytes.
`Estimated time'
The time the transfer protocol expects the transfer will take.
`Elapsed time'
The time elapsed during transfer.
`Message'
A message of the transfer protocol addressed to the user.
`Information'
A list to contain the last error occured or the name of the last
file transferred.
`Number of errors'
The number of errors occured during file transfer.
`Number of timeouts'
The number of timeouts occured during file transfer.
`Packet type'
A short description of the data block type employed for data
transfer.
`Packet delay'
The delay between two packets being sent.
`Characters/second'
The effective transfer speed in characters per second.
`Character delay'
The delay between two character being sent.
If the currently active transfer protocol provides the necessary
information, two bars will be displayed at the bottom of the transfer
window indicating the amount of transferred data and of time to go
before the transfer is finished.
`term' knows about the ZModem data-inquire sequence the remote
receiver issues when expecting files. If recognized, this sequence
will cause `term' to display a requester asking for the type of data
upload: text or binary. One could call this feature `auto upload'.
You also have the opportunity to select `Abort' which will transfer the
ZModem abort sequence or to click on the `Ignore' gadget which will
plainly ignore the fact that the ZModem inquiry sequence has been
recognized. *The ZModem abort sequence will also be transferred if you
select the `Cancel' button in the file requester to appear after
selecting text- or binary-upload.*
*Some transfer protocols will allow you to enter a default receive
path the library is supposed to create files it receives in. On
request (see Miscellaneous panel) `term' will ignore these settings and
use the settings to be changed in the `Settings/Paths' (see Path panel)
menu instead.*
Each file that is received and which does not remain empty is
examined briefly to find out about the file type. If recognized
successfully, a small comment indicating the file type will be attached
to the file. `term' currently knows about 83 different file types.
Phonebook
==========
The functions described in the following can be found in the `Modem'
menu and relate to the menu entries `Phonebook', `Dial' and `Redial'.
`term' is equipped with a telephone number management system, the
phonebook, which is described in the following lines.
`Name list'
The names of all phonebook entries are displayed here.
`BBS name'
Name of the last selected telephone book entry.
`Phone number'
The telephone number of the last selected telephone book entry.
If a BBS supports multiple lines, the phone number of each line
may be entered, each one separated by a vertical bar `|' character
(example: `123456|654321' would cause the dialing routine to dial
the numbers `123456' and `654321'). The dialing routine will
process all these phone numbers before proceeding to the next
phonebook entry.
The `|' character also works for the modem init, modem exit and
dial prefix sequences. Whenever the dialing routine dials another
phone number from a list separated by bars, it will try to find a
matching init/exit/dial prefix sequence. If more phone numbers
are specified than sequences are available, it will use the last
sequence given (an example: a phone number may be given as
`123456|654321|12345', the dial prefix string may be `ATDP|ATDT';
the dialing routine will call the first number using `ATDP123456',
the second number using `ATDT654321' and the third number, since
no special dial prefix is available, again using `ATDT12345').
`New entry'
Generates a new telephone book entry with standard settings and
places it at the end of the telephone book.
`Clone entry'
Will duplicate the currently selected phonebook entry and place it
at the end of the list.
`Remove entry'
Removes the last selected telephone book entry from the telephone
book and frees the memory allocated for this entry.
`Copy config'
A lot of time can be saved by copying selected parts of the global
configuration to a local configuration which is part of a
phonebook entry. Selecting this button will invoke a control
panel which allows to select which parts of the global
configuration should be copied. The control panel also remembers
which parts were copied when it was invoked the last time.
If the `Copy to all' button is selected, the configuration data to
be copied will be copied to all phonebook entries.
`Dial list'
Will pass the list of currently marked phonebook entries to the
dialing routine.
`Clear list'
Will clear the marks set for each telephone entry in the dialing
list.
`Play number'
Plays the currently selected telephone number using touch-tone
signal coding.
`Use entry'
Takes over the local configuration settings saved with the
currently selected phone book entry.
`Load list'
Loads the contents of a telephone book from a file.
`Sort list'
If any phonebook entries have been selected to be dialed, the
phonebook entries will be sorted in the order of dialing. The
remaining phonebook entries will be sorted in ascending
alphabetical order.
`Save list'
Saves the contents of a telephone book to a file.
`Password'
Press this button if you wish to save a special access password
with the currently active telephone book file. You will then be
asked to enter the password (*what you type will appear on the
screen!*), only the first 20 characters will be used.
To clear an existant password and to save the phonebook file
without encryption, just press return when asked to enter the new
password.
The next time you save the phonebook data, the password will be
encrypted and saved with it, the phonebook data itself will be
encrypted using the password.
Whenever an encrypted phonebook file is loaded and the password
saved with it does not match the last password you entered, you
will be asked to enter the access password. What you type will
not appear on the screen, press the <Return> key when done, the
<Backspace> key will delete a character, the <Escape> key will
abort the process, as will closing the window. The input process
will be terminated automatically when 20 characters have been
entered.
*Whenever an encrypted phonebook file is loaded, it will take
longer to load than an ordinary phonebook file, the same applies
to saving phonebook data.*
Another list is located at the right hand side of the window.
Each entry refers to a control panel to be invoked on the
currently selected phonebook entry.
`Serial'
`Modem'
`Transfer'
`Screen'
`Terminal'
`Commands'
`Miscellaneous'
`Paths'
`Keyboard macros'
`Fast! Macros'
These entries refer directly to the settings main menu entries of
the same name.
`Password/User'
This entry will open a control panel in which the password and
user name to be used for the current phonebook entry can be
entered. Both password and name are made available from within
the `term' ARexx interface to allow auto login script files to set
up a connection.
`Rates'
`term' will count the minutes you are online and connected to a
BBS as soon as a connection is made through the dialing routine.
This entry opens a control panel which allows setting the
necessary data (see Rate panel).
If you are still online, the `Dial list' gadget will be disabled.
In order to make another call hang up the line first.
To put a phonebook entry into the dialing list, double-click the
mouse on its name. The number appearing to the left of its name
indicates the precedence of entries in the dialing list. To remove an
entry from the list, double-click it again. Instead of double-clicking
on an entry, the space bar may be pressed as well.
To dial the list of selected entries, press the `Dial list' button,
control will be passed over to the dialing panel.
As I have been asked several times: For dialing a telephone number
the dialing prefix specified for this telephone number is used. If the
MNP-error correction for a certain mailbox has to be specifically
switched on via the dial string, this has to be done in the modem
settings for this mailbox and not in the global settings of `term'.
The `Modem init string' and `Modem exit string' entries of the
telephone book can also be used for initialisation.
Rate panel
===========
`term' will count the minutes you are online and connected to a BBS
as soon as a connection is made through the dialing routine. As soon
as the connection is lost or you hang up, `term' will use the
information to be specified in this control panel to calculate the
amount of money to be paid for the call.
`Pay/unit'
The amount of money to be paid for each single time unit when
online. This fee must be given in the smallest currency unit
available (pence, cents, centimes, etc.).
`Seconds/unit'
This is where you enter how many seconds each time unit lasts.
There are two different groups of the two entries listed above
available: one for the first unit and one for all following units.
So, if you only pay for the call you make but not for the time you
spend making it, just enter the fee in the first group and set the
second group to zero.
`Days and dates'
This list contains the default rate settings and exceptions for
certain dates and days of the week. Each line displays the type
of the entry and a comment (separated by the `>>' character). The
following types are available:
`Day(s)'
Settings for certain days of the week
`12. Jan (example)'
Settings for a specific date
If there is no special type available for an entry, it's probably
the default settings you are dealing with. These settings are
used whenever `term' cannot find an entry for the current day.
For each entry in this list there is at least one associated
starting time available which defines when the associated rate settings
are to be used. You will find the time settings in the list titled
`Time'. To add a new time use the `Add time' button, to edit an
existing entry, use the `Edit time' button. To remove an entry, press
the `Remove time' button.
`Add date'
Will invoke a control panel to create a new rate entry to be used
on a specific date. Use the sliders and button to select the day
the settings will be valid for.
*The control panel will allow you to enter nonexistant dates, such
as `31. Feb' so you will have to make sure that the date in
question really exists.*
`Add day(s)'
Will create a new rate entry referring to one or more days of the
week. Use the buttons of the control panel to select the days the
current settings will be valid for.
`Import'
Much work can be saved if the rate settings for the current
phonebook entry are imported (or copied) from a different
phonebook entry. To do so, select this button. The control panel
to be opened will display the list of phonebook entries available
and three buttons:
`Replace units'
The rate settings of the current phonebook entry will be
replaced by the settings of the selected entry.
`Append units'
The rate settings of the selected entry will be appended to
the current phonebook entry.
`Cancel'
Will abort the selection.
Whenever a rate entry is selected, the corresponding parameters
(`Pay/unit' and `Seconds/unit') can be edited. If the entry refers to
a certain date or a specific day of week three additional buttons are
made available:
`Edit'
Just as the labels says, will allow you to modify an entry after
it has been created.
`Clone'
Will duplicate the current rate entry and append it to the list.
`Remove'
Removes an entry from the list.
Copy panel
===========
This control panel allows you to select which parts of the global
configuration to copy into the currently selected phonebook entry.
`All'
Selects all parts.
`Clear'
Clears the current selection.
`Copy to all'
The selected parts will be copied to all phone book entries.
Dial panel
===========
The following information about the dialing process is displayed:
`Calling'
The name of the telephone book entry belonging to the number being
dialled. If it is just a telephone number the string `-- Unknown
--' is shown, meaning that the name of the mailbox is unknown.
`Number'
The telephone number being dialed or just dialed.
`Next'
The name of the telephone book entry which will be processed next
if no connection is established. If no further entry exists, `--
None --' will be displayed.
`Timeout'
A counter which is decreased every second and which reflects the
time remaining to establish a connection or to cycle through the
dial queue again.
`Attempt'
This field shows the number of unsuccessful cycles made through
the dialing queue to establish a connection.
`Message'
A message to the user. This can be:
`Dialing...'
A dial is in process.
`Line is busy.'
The dialed number is engaged.
`Incoming call!'
The modem has been called from another modem.
`Incoming voice call!'
The modem is receiving a call which was not originated by
another modem.
`No dialtone detected!'
The modem was unable to detect any dialing tone on the line,
it may possibly be not connected.
`Connection established.'
Just as the name says...
`Maximum number of dial retries reached!'
Just as the name says...
`Dial attempt timeout.'
The time available to establish a connection has been reached
or exceeded.
`Redial Delay...'
Pause until the next cycle through the dialing queue.
Additionally three buttons can be found in the input field which
initiate the following functions.
`Skip call'
With this function the current dialing attempt is cancelled and
the next number is processed. If no succeeding telephone number
exists `term' waits for the next cycle through the dial queue or
until `Skip call' is pressed again.
There also is a hotkey combination available to accomplish the
same effect.
`Remove'
This button works in part similar to the `Skip call' button.
Additionally, it removes the current phonebook entry from the
dialing list.
`Go to online'
If the line is very noisy, the connection to a mailbox has been
made but the `CONNECT' signal has been lost, you can use this
button to switch directly to the online mode of the modem. This
will also start the pay unit counter and the dial queue will be
exited.
`Abort dialing'
Operation of this button exits the dial queue (leaving the the
dial queue intact) and ends the dialing process.
If a connection is successfully made the corresponding entry in the
dial queue will be removed.
Selecting the close gadget will close the window and cause the phone
book panel to be reopened.
Text buffer
************
The text buffer is a function which continually stores text
displayed on `term's main screen, so that the user can inform himself
about the received text at any time.
General characteristics
========================
The size of the text buffer is managed dynamically so that for every
new line which is read new memory must be allocated. So the size of
the text buffer is limited only by the amount of the available memory.
It is recommended that the text buffer is emptied periodically to avoid
using the entire free memory.
If there is insufficient memory to place a new line into the text
buffer, the first line will be deleted to make room for the new line.
Operation
==========
The contents of the text buffer can be paged through using the keys
for moving of the cursor (`Cursor keys+Shift' keys moves page by page,
`Cursor keys + Control' key jumps to the beginning or end of the text
buffer). Additionally, the numeric keypad keys are overlaid with jump
and paging functions (corresponding to the inscriptions/graphics on the
front of the keys).
Additionally there is another menu whose functions should be
explained briefly:
`Search'
A search function is called which searches from the topmost line
on the screen downwards for an entered search string. Upper- and
lowercase are ignored by this function. If the search string is
found it is displayed and highlighted.
`Repeat search'
Continues the search process started with `Search'. The
previously entered search string is carried over.
`Go to main screen'
Switches to the main screen of `term'.
`Clear buffer'
Clears the contents of the Text buffer.
`Close buffer, Quit'
Closes the Text buffer screen but leaves the contents unchanged.
Clipboard
**********
Cut & paste functions are available on the main screen and the buffer
screen. Use the mouse to point to the first character you wish to send
to the clipboard, hold down the select button, move the mouse to the
last character you wish to cut and release the button. The characters
you have just marked will have been transferred to the clipboard, use
the key combination `Amiga+V' to paste the contents of the clipboard
and to feed them back into the input stream. Holding down the
`Control' key while clicking on a character will feed the single
character into the input stream, it will not be buffered in the
clipboard. Hold down any `Shift' key to have the contents of the
clipboard fed into the input stream right after the mouse button is
released, a carriage return will follow the data (this also works on
the Text buffer screen). The middle mouse button has the same function
as if the left mouse button when pressed along with a `Shift' key.
Hold down one of the `Alt' keys and press the left mouse button to
make `term' emit a number of cursor move sequences which will position
the on-screen cursor at the spot where you clicked the mouse.
In standard string editing gadgets a solution had to be found to
preserve the line editing functions while still supporting menu
shortcuts. To undo any changes made press `Amiga+Q', to clear the
string editing gadgets press `Amiga+X'. Menus associated with the
shortcuts `Amiga+Q/X' are called by holding down any `Shift' key along
with the `Amiga' keys (i.e. `Shift+Amiga+Q' will select the `Quit'
menu item if available).
Clipboard functions are also available within string gadgets: press
`Amiga+C' to copy the contents of the gadget to the clipboard and press
`Amiga+V' to insert the current clipboard contents at the current
cursor position.
Command sequences
******************
Each string sent directly to the modem is a command sequence. This
includes telephone numbers, modem initialisation strings, function key
assignments, etc. In addition to the normal text strings various other
commands are supported which will be described in the following section.
Backslash
==========
`\\'
Generates a single backslash.
`\a'
Executes an ARexx command (all text to follow this character).
`\b'
Generates a backspace (deletes the character to the left of the
cursor).
`\c'
Calls a main menu entry, the menu entry to be called is determined
by the argument to follow; this is either a six digit number
(example: `\c 010203' would call subitem 1, item 2, menu 3) or
the name of the menu entry enclosed in single quotes to call
(example: `\c 'about'' would call the `About...' menu entry, the
search is case-insensitive and only compares the characters given).
`\d'
Executes an AmigaDOS command (all text to follow this character).
`\e'
Generates the escape character (ASCII code 27).
`\f'
Generates a form feed (skip to beginning of the next page or clear
the screen).
`\g'
Places the string to follow this character in the clipboard.
`\i'
Feeds the contents of the clipboard into the input stream.
`\n'
Generates a line feed.
`\p'
Feeds the password of the telephone book entry into the input
stream of the last made connection. *The password is
automatically cleared for security reasons when the connection is
broken.*
`\r'
Generates a carriage return.
`\t'
Generates a tab jump.
`\u'
Similar to the `\p' command, the `\u' command will feed the
current user name into the input stream.
`\x'
Generates a break signal (as with the `Send break' menu entry).
`\^'
Generates a caret character.
If none of the mentioned combinations is recognized the character
which follows the `\' will be fed into the input stream without any
changes.
Caret
======
This character is used to change the following character to a
`control character'. So the sequence `^J' will become a Line feed and
`H' becomes a tab jump. The character which follows the `^' has to be
located between `@' and `[', otherwise it is fed into the input stream
without changes.
Tilde
======
This character causes the program to pause for exactly half a second
before it continues to process the following commands.
Fast! macros
*************
In implementation and design the fast! macros are closely related
to the function key macros (see Macro panel). If invoked by selecting
the corresponding menu entry, a window will open on the right hand side
of the screen sporting a scrollable list of macros (the contents of
this list can be edited using the Fast macro panel). When a list entry
is selected, the associated command sequence (see Command sequences)
will be executed.
By using the fast! macros it is theoretically possible to control a
BBS just by mouse, provided that you have the approriate macros in your
fast! macro list.
The fast! macro panel can be resized and acts just like the main
`term' window: menu items can be selected and characters entered are
sent to the serial driver.
Packet window
**************
In this window a line can be edited before it is sent. All the
usual editing functions known from standard input fields are available
(`Shift+cursor left/right' jumps to the start/end of the line).
Additionally, some extended functions exist which are performed by
pressing a cursor key together with the `Shift' or `Control' key:
`Left+Control'
Jumps to the next word.
`Right+Control'
Jumps to the previous word.
`Up'
Shows the last entered command in the input line.
`Up+Shift'
Shows the very first command entered so far.
`Down'
Shows the next entered command (if you moved back for some
commands before).
`Down+Shift'
Shows the very last command entered so far.
This string gadget has a buffer where all previously entered
commands are stored (`Command history'). You can page through this
buffer, load and save it and individual lines can be recalled. As with
the Text buffer this buffer is managed dynamically. The same memory
restrictions that apply to the Text buffer are valid for this buffer.
The input line also has a menu which offers the following functions:
`Load history'
Loads the contents of the input line buffer from a file. Each
stored line in this file can be recalled and sent.
`Save history as...'
Saves the contents of the input line buffer to a file.
`Clear history'
Simply releases all previously stored commands and the memory used
by them.
`Other window'
Switches to the main screen of `term'.
`Quit'
Closes the window (corresponds to clicking the close gadget of the
window).
*Every character entered into this window is shown immediately so
that those things where it is better that they should not appear on the
screen (like passwords for a mailbox) should be entered in another way.*
The content of every input line is interpreted as a command sequence
and therefore can also contain control characters.
If a line taken from the input buffer is sent without change it is
*not* stored in the buffer again (`true history' as known from
`ConMan').
The contents of the input buffer are cleared automatically after the
window is closed. *Under no circumstances are the contents maintained
until the next call!*
Provided that the packet window is large enough, a list to contain
the command line history will be displayed.
Environment variables
**********************
Information which is to be available the next time the program is
run is placed as AmigaDOS variables in the directory `ENV:' and
`ENVARC:' by `term'.
The variables used by `term' can be used and manipulated by other
programs transparently. In detail these variables are:
`TERMPATH'
The name of the directory in which all information used by `term'
is placed (standard configuration, telephone book, etc.). The
default settings file name is `ENVARC:term'.
`TERMWINDOW'
The window definition which can also be entered in the program via
the menu function `Set console window'.
`xpr...'
The standard settings used for the corresponding transfer protocol
(`xprzmodem', `xprkermit', etc.).
`xem...'
The standard settings used for the corresponding external terminal
emulation library (`xemvt340', `xemascii', etc.).
Gift-Ware fee
**************
The development of `term' required considerable expense. The effort
to find out by trial and error and with a little help from the
DevCon-Disks and the Includes & Autodocs the operating principles of
some routines would alone be worth a remuneration to the author (it's
simply bad luck if the Atlanta-DevCon records arrive with considerable
delay). The author is susceptible to all kinds of donation and gifts
so long as it is assured that they are useful to him (these nice little
sacks with elephant food are better sent to the Hanover zoo).
Therefore anyone pleased by `term' or who works with the source code is
welcome to remunerate my programming efforts as he/she thinks that it
matches my efforts (If you've got no ideas yet: I am looking for the
following Infocom games: `Arthur and the quest for Excalibur', `Border
zone', `Bureaucracy', `Cutthroats', `Leather Goddesses of Phobos',
`Plundered Hearts', `Seastalker', `Sherlock - The Riddle of the Crown
Jewels', and `Trinity'; any formats are welcome (Amiga, Atari ST,
MS-DOS, C64, etc.) -- old CinemaWare games -- with the exception of
`Defender of the Crown' and `Sinbad' -- the source code to `ARJ', a
Modula-2 compiler, the complete `GNU Emacs' or the complete `GNU C'
compiler) - a lot of thanks!
My address:
Olaf Barthel
Brabeckstrasse 35
D-3000 Hannover 71
Federal Republic of Germany
Z-Netz: O.BARTHEL@A-LINK-H
Internet: olsen@sourcery.mxm.sub.org, o.barthel@a-link-h.comlink.de
Would those people looking at the source code to extend it or do some
modifications here and there please contact me before publication so
that our efforts can be coordinated.