DOS 2.0 Utilities Disk 7 (Apr 1992) : Term / Term.doc

================================== term ===================================
===========================================================================
             A Gift-Ware telecommunications program written by
         Olaf Barthel, © copyright 1990,91 by Olaf Barthel & MXM,
                           All rights reserved.

   No  guarantee of any kind is given that the program(s) described in this
document are 100% reliable.  You are using this material on your own risk.


========================== Important information ==========================
===========================================================================

                          xprzmodem.library 2.0e
                          ----------------------
   Martin Berndt and I spent several hours in a long-distance debugging run
to  discover  the  reason  for  `term'  crashing after a ZModem upload.  We
suspected the newly introduced double-buffering routines but discovered the
next  morning that the crash would not turn up when using xprzmodem.library
v2.10  instead  of  v2.0e.  This means:  unless you like spectacular system
crashes  after  ZModem  data transfer, replace xprzmodem.library v2.0e with
the xprzmodem.library supplied on the `term' distribution disk.

                        A few words on `term' 1.8b
                        --------------------------
   During  beta-testing an unauthorized copy of `term' 1.8b escaped through
dark  channels.   I  am  unable  to  trace  this  copy  back to the unlucky
distributor  and  cannot  guarantee  that  it  is  a reliable program (i.e.
nobody knows yet if it does not in fact contain a trojan horse link virus).
Some  program functions, namely the dialing routine, would not work at all.
Please  delete  any copy of `term' 1.8b you encounter.  If a copy of `term'
1.8b  turns  up  at your local BBS please ask the system operator to delete
the file.

                                  Wanted!
                                  -------
   In order to improve the ANSI terminal emulation of `term' I require more
information  on  the  ANSI  X3.64 control sequences for video terminals and
peripherals.   I  was able to obtain a file entitled `ANSI Standard (X3.64)
Control  Sequences  for Video Terminals and Peripherals in alphabetic order
by  mnemonic'  but  it  hasn't  helped  me much (more precisely:  it hasn't
helped  me  at all).  So if you have any public domain or original material
which may help me to complete the ANSI terminal emulation of `term', please
send  it  to  me.   The  file also mentions an article "Toward Stardardized
Video Terminals:  ANSI X3.64 Device Control" by Mark L.  Siegel to be found
on  page  365  in  the  April  1984  issue of BYTE magazine which may prove
helpful.   It  would  also  be helpful to know how to order the X3.64 specs
from ANSI (I don't know their adress, for example).
   In  any  case,  your help to complete the ANSI terminal emulation (which
currently is a slightly enhanced VT220 emulation) would be appreciated!


=============================== 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  bit  7  when  displaying
characters - 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  fleat 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.10a, WShell,
CygnusEd Professional Release 2, KeyMacro & ARexx.

   My  thanks  go  to  the  following  people for their invaluable help and
assistance:    Holger   Lubitz,  Peter  Fischer,  Christoph  Teuber,  Garry
Glendown,  Oliver  Wagner, Jürgen Otte, Germar Morgenthaler, Matthias Zepf,
Markus  Stoll,  Ralf  Thanner,  Veith  Schörgenhummer,  Michael Vaeth, Roby
Leemann & AUGS, Thorsten Seidel, Till `Dill-Prince' Prinzler, Volker Ulle &
the  Aquila  Sysop Team, Marc-Christian Schröer, Udo Wolt, Michael Hohmann,
Henning  Hucke  and  to all those who supplied libraries & control sequence
tables.

   The  xpr-libraries  were  created  by  Willy  Langeveld (ascii), Kenneth
Osterberg  and  Markus  Pietz (jmodem), Stephen Walton (kermit), Jack Rouse
(quickb),  Marc  Boucher  (xmodem), Ueli Kaufmann (ymodem) and Rick Huebner
(zmodem).

   The xpr-standard was created by Willy Langeveld, the Res.asm source code
was  provided  by  Edward  Carrol, 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 1989 by
Commodore-Amiga, Inc.

   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 Schröer and Henning Hucke.  Garry Glendown
took care of the termRexx documentation -- thanks to all of you!


============================= The 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.


============================ The distribution =============================
===========================================================================
`term' may be included with commercial programs as long as no money is made
by  including  it  in  the  distribution (this also applies to inclusion in
AmigaDOS  Enhancer  kits,  on  Workbench/Extras  disks  or  A3x00 hard disk
drives).
   You  _must_not_ make any money by distributing `term'.  A small copy fee
for  data media (5$ US maximum) or the inclusion of `term' in Public-Domain
collections  such  as  Fred  Fish's  Amiga  Library of Freely Distributable
Software is permitted though.


============================== Using `term' ===============================
===========================================================================
The  program  `term'  and the data received/sent by it must not be used for
the following purposes:

1) The  construction,  development,  production  or  testing  of weapons or
   weapon systems of any kind.

2) The construction, development, production or use of plants/installations
   which include the processing of radioactive/fissionable material.

3) The training of persons to deal with the abovesaid actions.


===================== Updates & new program revision ======================
===========================================================================
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 (coupon-réponse
international) and a 3½" disk to the author.


============================ Operating `term' =============================
===========================================================================
`term'  can  be  controlled  both  by  mouse  and keyboard.  With two minor
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.


=============================== The display ===============================
===========================================================================
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 `TERM1', the third one `TERM2',
etc.).   The  screen  title  bar  will  also display the name of the public
screen.

   Cut  &  paste functions are available on the main screen.  Use the mouse
to  point  to  the  first character you wish to send to the clipboard, hold
down  the  (left)  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 <return> will follow the data.

   In standard string editing fields 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 field 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).


================================ The 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  to  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.

1. Project
----------
This menu contains functions to load and to save program configurations and
to quit the program.

Open Preferences............... Loads the program configuration from a file
                                to be selected.

Save Preferences............... Saves  the  current  program  configuration
                                under  the  configuration  file  name  last
                                entered.

Save Preferences As............ Saves  the current program configuration to
                                a file to be selected.

Print Screen................... Sends  the  current  contents of the `term'
                                screen  to  the  printer.   This  is  not a
                                graphics    hardcopy,    only   the   ASCII
                                characters are printed.

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.
                                   Note:   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........................... Quits   the   program   after   asking  for
                                confirmation.

   After  selecting the `Quit' menu item the program may take a few seconds
to exit since the contents of the `log book' are freed first.

2. Utilities
------------
This  menu  contains  functions  which  are to make your life a bit easier.
AmigaDOS  commands  as well as ARexx script files may be started from here.
As  a  special  gift for `Snap' users, the contents of the clipboard may be
fed into the input stream.

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:'.

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 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'.

Edit File...................... Invokes the currently selected (see `Paths'
                                preferences  menu  below)  text editor on a
                                file to be selected using a file requester.
                                   `term'  will  block  and  wait until the
                                editor has returned.

Paste Clipboard Contents....... The  current contents of the clipboard will
                                be  fed  into  the  input stream (max.  255
                                characters).   Use the `log book' screen to
                                cut strings and characters to the clipboard
                                (`Snap' may also be used for this purpose).

Packet Window.................. Opens/closes  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
                                `The packet window' below.

   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.

3. Capture & Buffer
-------------------
The menu items in this menu offer functions to load/save, to display and to
capture incoming text/graphics data.

Clear Buffer................... Clears the contents of the `log book'.  Any
                                text  will  be  discarded  and  _cannot_ be
                                recovered.   Capture files are not affected
                                by this command.

Display Buffer................. Opens the `log book' screen.

Close Buffer................... Closes  the  `log book' screen but does not
                                free the contents.

Load Buffer.................... Loads the contents of the `log book' from a
                                file.  If there are still text lines in the
                                `log  book'  a requester will appear giving
                                you  the  choice  to  discard the old data,
                                append  the  new  data,  or  to  cancel the
                                action.

Save Buffer.................... Saves  the  contents of the `log book' 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).

Capture To Disk................ Toggles  file capture, options are the same
                                as with `Save Buffer'.

Capture To Printer............. Toggles printer capture.

   More  detailed information on the `log book' will be given later in this
document.

4. Transfer
-----------
Since  data  transfer cannot always be done by keyboard and console, `term'
supports  a number of transfer protocols implemented as xpr-libraries.  The
`term'    distribution    includes   xprascii.library,   xprjmodem.library,
xprkermit.library,  xprquickb.library, xprxmodem.library, xprymodem.library
and xprzmodem.library.

Upload Text.................... 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.................. Request  a  file/files  using  the  current
                                transfer  protocol.  Refer to `Upload Text'
                                for features/options of this mode.

Upload ASCII................... 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................. This   is   a   pure   ASCII-file  download
                                implemented    through    xprascii.library.
                                Refer     to     `Upload     ASCII'     for
                                features/options of this mode.

Upload 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 (hold down the
                                shift  key and click the names of the files
                                you   wish  to  transmit).   Refer  to  the
                                documentation  of  your  favourite transfer
                                library  to find out if batch file transfer
                                is supported.

Download 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.

Transfer Options............... 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.

Transfer Protocol.............. This  command  allows  you  to  specify the
                                transfer  protocol  library  to be employed
                                for up-/downloads.

   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').   Note:   for  most transfer protocols both buttons
(abort  and  skip)  have  the  same  effect.   Consult the documentation 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.
Size................... If available, the size of the file.

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.
Last Error............. A short description of the last error which occured
                        during file transfer.

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.  Note that 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.
   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 the following 68 different file types:

               Workbench icon                  TIF image
                 ASCII text                  IFF-ILBM image
               `C' sourcecode              IFF-ANIM animation
              `C' header file                IFF-8SVX sound
          Asm language source code           IFF-SMUS score
              Asm header file                IFF-FTXT text
        Modula-2/Oberon source code    IFF-PREF preferences file
               ARexx program         IFF-TERM `term' configuration
             Basic source code               IFF (general)
                TeX document                AmigaVision flow
               Metafont font                 Imploder data
                Generic font                PowerPacker data
              Packed TeX-font                LhPak archive**
        TeX device independent data           Arc archive
            PasTeX font library               ARJ archive
            Manx 3.x object code             LhArc archive
            Manx 5.x object code              LHA archive
              Manx 3.x library                Zoo archive
              Manx 5.x library               PKZip archive
            AmigaDOS object code           Stuff It! archive²
            Object code library             Pack It! archive²
              AmigaDOS program            MacCompress archive²
               System library               Compact archive²
               System device                Diamond archive²
           AmigaDOS filing system           Compress archive*
              AmigaDOS handler                CPIO archive*
                 GIF image                  DMS disk archive
                Degas image¹               Warp disk archive
               MacPaint image²             Zoom disk archive
              SuperPaint image²            SPARC object code
            PostScript document              SPARC program
            Macintosh PICT image²            MS-DOS program
          Sun raster format image³        Atari-ST/TT program
                 PCX image                 Macintosh program

   ¹  Atari-ST/TT-specific (Degas Elite)
   ²  Macintosh-specific
   ³  Sun-specific
   *  Unix-specific
   ** Not yet ready for release


5. Modem
--------
The  commands  in  this  menu deal with controlling the serial line and the
modem.

Phonebook...................... The  phonebook  is one of the most powerful
                                and complex functions of `term' and will be
                                described later in this document.

Dial........................... To  dial  a single phone number select this
                                menu  item.   The phone number entered will
                                be passed to the dialing routine.

Redial......................... Dialing  list  entries  the dialing routine
                                was unable to establish a connection to are
                                again passed to the dialer.

Play 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.

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.

6. Display
----------
The  items  in  this menu deal with the `term' main screen and the terminal
emulation.

Reset Styles................... Resets   all   character  style  attributes
                                (bold, blinking, inverse video, underlined,
                                etc.)  and  sets  the  text  colour  to the
                                default pen.

Clear Screen................... Clears  the  whole  `term' screen and moves
                                the cursor to the top left home position.

Save Screen (IFF-ILBM)......... Saves  the  contents  of  the  `term'  main
                                screen to a file.  The resulting image file
                                can  be  read  by  any  program  to support
                                IFF-ILBM images.

Save Screen (ASCII)............ Saves the current contents of the screen to
                                a file; this does not include any graphics,
                                only the ASCII characters are saved.


7. Preferences
--------------
`term' is configured using the `Preferences' menu.  The following text will
describe the functions associated with each menu item:

a) Serial Preferences
---------------------
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 / 8).

Parity................. Serial parity (none, odd, even, mark, space).

Stop Bits.............. Number of stop bits (1 / 2).

Handshaking............ Serial handshaking mode (XON/XOFF, RTS/CTS, none).

Duplex................. Determines  whether  characters  are echoed back to
                        the  terminal  screen  or  not  (full, half = local
                        echo).

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.   Note  that  enabling this feature will only
                        make  sense  if  used  on  two  directly  connected
                        computers.

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).

Device Unit Number..... The   device  unit  number  of  the  serial  driver
                        selected  above.   This usually left 0 but can also
                        be used to address multiple serial IO ports.

Use.................... Accept the current settings.

Cancel................. Dont' use the current settings.

   Most  modems  will not recognize a sudden change in the baud rate.  Type
`AT<RETURN>' to make the change known.

b) Modem Preferences
--------------------
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
                        `ATTD'.

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.

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.

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.

Use.................... Use the current settings.

Cancel................. Keep original settings.

c) Screen Preferences
---------------------
This  menu-item will bring up a window to change all parameters of the main
screen.

Display Modes........... All graphic-modes available for the main screen are
                         displayed  here.   If  you  wish  to use the 'Super
                         Hires', the 'Productivity' mode or the A2024-modes,
                         you  will  have  to  put up with some restrictions:
                         there  are  only screens with a depth of two (Amiga
                         colourmodes)and   if   in   A2024-mode,   different
                         resolutions  cannot  be  mixed  with each other any
                         longer.
                           Annotation:   the A2024-modes should only be used
                         in   connection   with   an   A2024/Hedley-monitor.
                         Otherwise  the  screen may 'crash' and working with
                         `term' is not possible any longer.

Edit Screen Palette..... These  gadgets  are  used to select a colour of the
                         screen palette that is to to be changed.

Red/Green/Blue.......... These  proportional-gadgets  are used to modify the
                         portions of red, green or blue.

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,  that 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 preferences.

Cancel.................. Keep the old preferences.

  It  has  to  be  remarked  that all the 'new' display-modes (Super-Hires,
Productivity,  etc.)  restrict  the  number  of 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 (4 × 4 × 4) colours.  This
is no 'feature' of `term' but a hardware restriction.

d) Terminal Preferences
-----------------------
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.

Audible Bell........... If  this  function has been activated, every 'Bell'
                        code  will  cause  `term'  to  generate  a  audible
                        signal.


Visible Bell........... If  the  function  has been activated, every 'Bell'
                        code will cause `term' to generate a visible signal
                        (screen flash).

Force 80 x 24.......... Because  of  a higher horizontal resolution or as a
                        result  of  the  current overscan-preferences there
                        often  is  space left at the right margin, which is
                        automatically  used  by  `term'.  Some BBS-programs
                        are  dependent  on  a  fixed  number of columns and
                        lines  (80 × 24) so that a change in the resolution
                        leads  to  a disturbance in the display.  With this
                        gadget  the user can force an 80 × 24 columns/lines
                        display (the actual resolution of the screen is not
                        changed,  `term'  only  performes a linefeed at the
                        80.  horizontal position).

Stop Blinking.......... If selected the VT100-blink option is suppressed.

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.

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 the a solid VT100/VT220/
                        ANSI  emulation  that  supports all common command-
                        sequences,  then  there  is  a  so  called 'Atomic'
                        emulation  which  does  only support the very basic
                        command-sequences  (CR,  LF,  Backspace, etc.), all
                        VT100-  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.

Font................... `term'  makes  use of two fonts to display text and
                        graphics.    'Topaz'   is   the   system-integrated
                        standard  font,  'IBM'  is  a  font  similar to the
                        Standard   IBM   PC    font   which  also  contains
                        graphics-symbols.   If 'IBM' is selected input from
                        the  console  is  automatically translated into the
                        corresponding 'IBM' characters.

Use.................... Use the current preferences.

Cancel................. Keep the old preferences.

   The  built-in  VT100-emulation  supports  all commands that have any use
with  `term'.   Not implemented are commands that control the printer (this
should  be  left to the user), initiate internal terminal-tests, change the
LEDs or were very complicated to implement.
   Although  only hard-core VT100-users may recognize this:  the backspace-
and  delete-keys  were  not  swapped,  characters with ASCII-code > 127 are
displayed either and are not stripped (real 8 bits instead of 7 bits).

   The  VT100-emulation  also  supports  all commands of the VT220-terminal
(thanks  to  Germar  Morgenthaler  who was able to get hold of the original
documentation of the DEC VT220 console!), although there were only a few to
be added.  Acctually I had built in a lot commands that were supported only
by VT220.  Commands to swap between national keymaps (the DEC Multinational
Character  Set  is  accessed  at _all_ times) and commands that control the
printer are not supported.  These commands are stripped.

e) Startup 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'.  This
command-sequence can be edited by selecting this menu-item.

f) Paths
--------
In this part of the preferences 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 'Preferences.term' and
                        will  be  searched  in  the  path  defined  by  the
                        enviroment   variable   'TERMPATH'   (see   end  of
                        document).

xxx 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.

Text Editor............ Contains  the  name  and  search path of the editor
                        used by 'Edit File' in the Utilities 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 102400 bytes.

Use.................... Use the current preferences.

Cancel................. Keep the old preferences.

   If  the  gadget  'Select' is clicked, the path or filename beside can be
selected by the file-requester.

g) Emulation
------------
The  gadgets  found here allow you to change the internal parameters of the
selected emulation.

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.
                          Note:   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.  If the
                        remote  computer needs these sequences, this mode -
                        applications  mode  -  can  be  activated with this
                        gadget.

Font Scale............. VT-100  offers four different sizes of fonts.  They
                        can be selected with this gadget:

                        - Normal

                          The normal height of the font.

                        - Double Height (Top)

                          Double height of font, only the upper part
                          of the character is displayed.

                        - Double Height (Bottom)

                          Double height of font, only the lower part
                          of the character is displayed.

                        - Double Width

                          Double width of font.

                        - Half Width

                          Half width of font.

Use.................... Use the current preferences.

Cancel................. Keep the old preferences.


                      Now for the global preferences:


a) Macro Preferences
--------------------
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.

Qualifier............. 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 preferences.

Cancel................ Keep the old preferences.

   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.

b) Fast! Macro Preferences
--------------------------
The design and implementation of the settings to be configured in this menu
are closely related to the menu entry `Macro Preferences' 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).

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  sequenz  associated  with  a  fast!
                          macro.   Command sequenzes 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.

c) Hotkeys
----------
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 log
                       book  process to the front (note:  if the screen is
                       not   already   open,   pressing  these  keys  will
                       accomplish nothing).

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.

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.

d) Speech
---------
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.


===================== Telephone book & Dial function ======================
===========================================================================
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  user friendly telephone number management
system,  the  `telephone book', which is operated via a Control field.  The
Control field is described in the following lines.

Name List.............. The  list  of  all  telephone  numbers  with  names
                        against  them  (name of the corresponding mailbox).
                        If  one  of these entries is selected with a double
                        click,  it will be placed at the end of the dialing
                        list (More on this later).

Name................... Name of the last selected telephone book entry.

Phone Number........... telephone  number  of  the  last selected telephone
                        book entry.

Password............... Keyword  to  access the mailbox related to the last
                        selected telephone book entry.

Macro File............. Name  for  the file which contains the function key
                        definitions  for  the  last selected telephone book
                        entry.

Pay/Unit 1/2........... Cost for one pay unit.

Minutes/Unit 1/2....... Duration  of one pay unit in minutes. Together with
                        the  `Pay/Unit' entry the costs for a call are cal-
                        culated.

Start Time 1/2......... These  two  sliders  select  which  one  of the two
                        charge  rates  will  be used for which time of day.
                        In  Germany  the  6 minute units (DM 0,23 per unit)
                        start at 8:00 am and end at 6:00 pm.  The 12 minute
                        units  start  at  6:00  pm  and  end at 8:00 am the
                        following morning.

Serial,Modem,Screen,... These  functions communicate with the corresponding
Terminal,Startup,       functions in the `Preferences' menu and specify the
Paths,Transfer          settings  which are adopted as soon as a successful
                        connection  is made to one of the telephone numbers
                        which are stored in the telephone book.

Play Number............ Plays the currently selected telephone number using
                        touch-tone signal coding.

Dial................... Enters  the last selected telephone book entry into
                        the dialing  queue  and  jumps  immideatelly to the
                        dial function.

Get Settings........... Copies the actual terminal settings to the selected
                        telephone book entry.

New Entry.............. Generates  a new telephone book entry with standard
                        settings  and places it at the end of the telephone
                        book.

Remove Entry........... Removes the last selected telephone book entry from
                        the  telephone  book and frees the memory allocated
                        for this entry.

Load................... Loads the contents of a telephone book from a file.

Sort................... Sorts  the contents of the telephone book in ascen-
                        ding alphabetical order.

Save................... Saves the contents of a telephone book to a file.

   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.
   A further field is opened as soon as a telephone book entry is queued to
the  dialing  queue.   Either  the  name  of  the  telephone  book entry is
displayed,  or,  if it is a telephone number which has been entered via the
dial function, only the telephone number.
   The  following  input  elements  can  be found in the input field of the
dialing queue:

Dial................... Activates  the  dial  function and attempts to dial
                        each  of  the  dialing  queue entries one after the
                        other.

Delete Call............ Removes  an  entry  from the dialing queue.  If all
                        entries are removed the input field is closed.

Cancel................. Deletes  all  entries  from  the  dialing queue and
                        closes the input field.

   If  the  dial  function  is activated all input fields previously opened
will  be  closed,  a  new  input field is opened and the dialing process is
followed.    The  following  information  about  the  dialling  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    constant
                        `-- 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.

                        - Connection Established.

                          Nomen est omen!

                        - Maximum Number Of Dial Retries Reached!

                          Also nomen est omen.

                        - 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.

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.


============================== The Log book ===============================
===========================================================================
The  `Log  book'  is  a function which continually stores text displayed on
`term's  mainscreen, so that the user can inform himself about the received
text at any time .

1. General characteristics
--------------------------
The  "size"  of the `log book' is managed dynamically so that for every new
line which is read new memory must be allocated.  So the "size" of the `log
book'  is  limited  only  by  the  amount  of  the available memory.  It is
recommended  that the `log book' is emptied periodically to avoid using the
entire free memory.
   If  there  is  insufficient  memory  to `write' a new line into the `log
book', the first line will be deleted to make room for the new line.

2. Operation
------------
The  contents  of  the  `log  book' can be paged through using the keys for
moving of the cursor (`Cursor keys') (cursor keys + shift key moves page by
page,  cursor  keys  + control key jumps to the beginning or end of the log
book).   Additionally,  the  numpad keys  are overlaid with jump and paging
functions  (corresponding  to the inscriptions/graphics on the front of the
keys).
   With  the  aid  of the mouse you can mark blocks in the `log book' which
are  to  be copied into the `clipboard' and which can later be fed into the
input stream with the function `Paste Clipboard Contents'.
   Additionally there is a further 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
                        with  this  function.
                        If  the  search string is found it is displayed and
                        marked/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 `log book'.

Close Buffer, Quit..... Closes  the  `log  book'  screen  but  leaves  the
                        contents unchanged.


============================ Command sequences ============================
===========================================================================
Each  character  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  ASCII character strings
various  other  commands  are  supported  which  will  be  described in the
following.

a) The `Backslash' (mirrored slash) \
-------------------------------------
The following sequences are introduced with the '\':

\\..... generates a single `Backslash'.

\b..... generates  a  `Backspace'  (delete the character to the left of the
        cursor).

\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 a character string into the `Clipboard'.

\n..... generates a `Line Feed'.

\p..... feeds  the  password  of  the  telephone  book entry into the input
        stream  of  the  last  made  connection.   Note:   The  password is
        automaticly  cleared  for  security  reasons when the connection is
        broken.

\r..... generates a `Carriage Return'.

\t..... generates a tab jump.

\x..... generates a break signal (as with the `Send Break' menu entry).

\d..... executes an AmigaDOS command.

\a..... executes an ARexx command.

\i..... feeds the contents of the `Clipboard' into the input stream.

\^..... generates a `circumflex' (also named roof :-).

   If  none of the mentioned combinations is recognized the character which
follows the '\' will be fed into the input stream without any changes.

b) The `circumflex' (also named roof :-) ^
------------------------------------------
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.

c) The tilde ~
--------------
This character causes the program to pause for exactly half a second before
it continues to process the following commands.


============================== Fast! Macros ===============================
===========================================================================
There  is  currently  no  menu item to invoke this function, just press the
`Help' key to open or close the corresponding control panel.
   In  implementation  and  design the fast!  macros are closely related to
the function key macros.  If invoked, a window opens 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 Macros' preferences menu item).  When a
list  entry  is selected, the associated command sequence (discussed above)
will be executed.
   By  using  the  fast!  macros 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.


=========================== The `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 +
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 ctrl key:

Left + ctrl............ Jumps to the next word.
Right + ctrl........... 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  input field 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 called up again.  As with the `log
book'  this  buffer  is  managed dynamically.  The same memory restrictions
that apply to the `log book' 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 called
                        up and sent.

Save History........... Saves  the  contents  of the input line buffer to a
                        file.

Clear History.......... Simply  releases all previously stored commands and
                        the used memory.

Other Window........... Switches to the main screen of `term'.

Quit................... Closes  the  window  (corresponds  to  clicking the
                        close gadget of the window).

   It  must  be  mentioned that 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!


============================= System 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  setting 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.).


============== An author's request & gift-ware-remuneration ===============
===========================================================================
The  development  of  `term'  required conciderable 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 Hannover 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 GNU C++
objective  `C'  compiler  in a version executable on the Amiga, old Infocom
games or the source for `ARJ' or a Modula-2 compiler) - a lot of thanks!

                                My address:

                        Olaf Barthel, MXM (ETG030)
                             Brabeckstrasse 35
                           D-W-3000 Hannover 71

                        Federal Republic of Germany

                   Z-Net: O.BARTHEL@A-Link-H
                  Usenet: o.barthel@a-link-h.zer.sub.org
                          cbmvax.commodore.com!cbmehq!sourcery!olsen

   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.
   If  someone  should  have  a  brilliant  idea  to  improve or extend the
structure and contents of this manual, he/she may do it with my blessing (I
haven't had the enthusiasm up to now to TeXify the text).


============================ Revision History =============================
===========================================================================
V1.9a   Compared to its predecessor this version of `term' does not include
        any  new  features,  I  merely  fixed a number of quite substancial
        bugs,  cleaned  up the visual appearance a bit and removed a couple
        of  inconsistencies.  In particular I fixed the dialing routine and
        the  double buffering routines employed by the XPR-transfer process
        (there  was  more  of course, but nothing to worry about).  One big
        change  will  probably  go  unnoticed:   `term'  no longer uses the
        gadtools.library  routines to create string gadgets but a couple of
        home   brewn   ones.   This  was  absolutely  necessary  since  the
        previously  used  technique  of  adding extra editing functions was
        clearly  offending  official  programming guidelines.  Last but not
        least  I  improved  the behaviour of the program when running under
        low-memory  conditions.   Only  a few hours before I had originally
        intended  to  release  the  final  program  I  discovered an almost
        historical  bug:   if  printer capture was enabled the data was not
        sent  to  the printer but - open or not - to the capture file.  The
        bug  was  fixed  and  the  file  capture  was  rewritten to use the
        doubly-buffered  I/O  routines  also  employed  by the XPR-transfer
        module.   Another  last minute bug fix concerns the telephone book:
        in  revision  `term' 1.9  it  was impossible to change the call fee
        settings, this has been fixed.

V1.9    Starting   with   this  release  AmigaOS  2.04  (Kickstart  37.175,
        Workbench  37.67)  becomes  a must (by the time this `term' release
        becomes widely available Commodore should be shipping Kickstart 2.0
        enhancer  kits  -- it was a tough job, and it has been nicely done,
        congratulations!).   On  machines equipped with a Super-Agnus chip,
        but  without  an  ECS-Denise  chip  the screen mode selection would
        occasionally  select  the wrong resolution, this has been fixed.  I
        have  increased  the read buffer of the serial device driver, it is
        now  about sixteen times as large as it used to be.  Read and write
        accesses  during  up-  and  downloads are now doubly buffered (i.e.
        while  one buffer is transferred the other buffer is asynchronously
        filled with new data) which is to permit data transfers without the
        usual  delay  times  caused  by  buffer  flushing and filling.  The
        filetype  identification  now recognizes `some' more file types (23
        additional  types  to  be  accurate).  The auto-upload function has
        been  fixed  and  enhanced  in  this  release.   You  now  have the
        opportunity  to  cancel an upload (by sending the approriate ZModem
        abort  sequence) or to ignore the inquiry sequence.  Cancelling the
        file  requester  to  appear  after  the  inquiry  sequence has been
        recognized will also transmit a ZModem abort sequence.  The calling
        fees  corresponding to phonebook entries can now be edited as plain
        numbers  instead  of  adjusting  a slider gadget which would always
        only  allow  numbers  ranging  from  0 to 10.00 to be entered.  The
        touch-tone-dialing routine now plays numbers half as fast as in the
        previous  release.   The  log  book  screen  now  opens in the same
        resolution   as   the  main  screen  (which  may  look  strange  in
        resolutions  such  as  `SuperHires Interlaced').  Transfer protocol
        library  and  serial  device  driver  can now be selected using the
        asl.library  file  requester  instead of typing the names manually.
        The  `VOICE'  and  `RING'  recognition did not work in the previous
        release,  this  has been fixed.  I also fixed a problem encountered
        with  the path panel:  it was impossible to select a path using the
        file requester without having to select a file in the corresponding
        directory.  The transfer panel has been reworked and now sports two
        bar  displays which graphically show the amount of data transferred
        and  the  time  to  wait  until  the transfer is finished.  The old
        transfer panel would crash or generate Enforcer hits when selecting
        an  menu  item,  this  has  been  fixed.   The  save/restore cursor
        attributes  function in the VT100 terminal emulation would save and
        restore  values  it should not do, namely the scroll region borders
        (fixed).   The dialing function now also recognizes `NO CARRIER' as
        a  synonym  for `BUSY'.  I must have caused unrecoverable damage to
        the  dialing function when trying to fix a particular bug, so I had
        to rewrite the whole routine (not a bad thing actually, the routine
        is  now  much  less complex than in the previous releases and works
        like  new!).   The  blinking  display could cause problems when the
        packet  window was active (the window borders would flash just like
        the  screen  cursor  did), this has been fixed.  Every five seconds
        the  online  time display will change to a call fee display and the
        other  way  round.  `term' now sports an iconify function (requires
        Workbench  to  be running).  I also added the `Fast!  macros' and a
        couple  of  ARexx  commands  which  were  missing  in  the previous
        release.   Well...   it's  all in a day's work for a bicycle repair
        man!
           While  some  errors seem to show their hand and to wave shouting
        `I am here, get me out quick!' I am still deeply indebted to Martin
        Berndt,  Ralf  Thanner and Holger Lubitz who discovered most errors
        and bugs in the previous `term' release.

V1.8a   First international release.

V1.0-   See german documentation (that's why its about 40K bytes longer).

                                     *

      "...you can't get what you want till you know what you want..."

                                                        -Joe Jackson