









                               TABLE OF CONTENTS






                                                          Page
     
           1.   Introduction
                                                            2
           2.   Fast Start
           2.1     Use the Editor                           3
           2.2     Call another computer
           2.3     Execute a Line command
           2.4     Assign commands to a key
     
           3.   Key Command Summary                         5
     
           4.   Command Files                              11
     
           5.   Initialization                             13
     
           6.   Line Command Definitions                   14
     
           7.   Character Codes and Keyboard Scan Codes    39
           7.1     ASCII Character Codes
           7.2     IBM Keyboard Scan Codes
           7.3     IBM Extended Keyboard Scan Codes
     
           8.   Registration Information                   43









                            1  INTRODUCTION




    ENVOY is a communications program which includes a full featured text
editor, a powerful script file language, completely redefinable keys, help
screens, and a menu-driven user interface.

    ENVOY will run on any IBM PC or compatible, including the IBM PC, PCjr,
AT, XT or PS 2 and can use any modem.  192 Kilobytes of memory is required to
run the program.

    The ENVOY editor can edit text files larger than 64 Kilobytes.  The size of
an edit file is limited only by the amount of available memory.  Similarly, the
amount of text which can be captured is limited only by the amount of available
memory.  Captured text can be viewed and edited before being written to disk.
You can edit and save captured text even after you have disconnected from the
remote computer.

    ENVOY supports file transfers at baud rates up to 9600 bps.  ASCII file
transfer is supported as well as the XMODEM and YMODEM file transfer protocols.
ENVOY supports variants of the commonly used XMODEM protocol, including checksum
or CRC error checking and packet lengths of 128 bytes or 1 Kilobyte.

    ENVOY can function as a terminal and remote text editor over most networks.
However, some networks use XON/XOFF control characters which defeat the XMODEM
and YMODEM protocols.  ENVOY can transfer text files, but not binary files, over
these networks.









                            2  FAST START



2.1  Use the Editor

  The fastest way to learn to use ENVOY is to just start using it.  Start the
  program by typing 'ENVOY'.  Read in a text file by pressing the F3 key and
  entering a file name at the prompt.  Now refer to the key command summary in
  section 3 and edit the file.  The ENVOY editor is easy to use and so it
  shouldn't take long to become familiar with the commands.  Practice marking
  blocks of text and then moving or deleting the blocks.  Practice reading and
  writing files.

  Press the alt-h key to see the Envoy help screens.  The help screens briefly
  describe how to use Envoy and give definitions of all the Envoy key commands.
  Pressing the alt-h key or entering the line command 'HELP' displays the
  titles of the help screens which are available. Choose the topic you want by
  using the up and down arrow keys.  Then press the enter key.  You can scroll
  through the help screen using the up, down, PgUp, and PgDn keys.

  Press the alt-m key or enter the line command 'MENU' to use the Envoy menu.
  The menu lets you choose the most important options.

  If your computer doesn't have one of the keys which executes a command which
  you need you can probably refer to your owner's manual and find a combination
  of keystrokes which will enter the same scan codes.  The most common
  incompatibility is that many keyboards have only 10 function keys.  Enter
  Shift-F1 for F11, Shift-F2 for F12, etc.  Later, you might want to re-assign
  some of the key commands with MACRO definitions.


2.2  Call another computer

  When you are familiar with the editor commands you are ready to use ENVOY as a
  terminal.  Here are the steps to log on to a remote computer :

        -Make sure that your computer has either an internal or external modem.
         If you have an external modem check that it is turned on.  The serial
         port which is connected to the modem is referred to as COM n, where n
         is usually either 1 or 2.  Find out the serial port number from
         someone who is familiar with the setup.

        -Find out the telephone number of the remote computer.

        -Find out the communications parameters for the remote computer.  You
         need to know the baud rate(usually 300 or 1200), the Parity setting
         (either Even, Odd, or None), the number of data bits(either 7 or 8)
         and the number of stop bits(usually 1).

        -Bulletin board listings give these parameters in abbreviated form.  For
         instance, 300/1200 E-8-1 means that you can use either 300 or 1200 baud
         when calling the system and the other parameters are: Even parity,
         8 data bits, and 1 stop bit.

        -Now press the alt-m key to see the ENVOY menu.  Press 3 to set the
         communications parameters.  Enter the communications parameters for the
         computer you want to call.  Leave the Duplex setting at Full Duplex for
         now.  Change to Full Duplex later if you see doubled characters on the
         screen.

        -Now press the F11 key.  If you don't have a F11 key press Shift-F1.
         This puts ENVOY on line so that every character you type is sent to
         the modem.

        -Now dial the remote computer.  If you have a Hayes compatible modem
         type in AT DP 123-4567 <Enter> to dial telephone number 123-4567.  The
         prefix AT DP is a command to the modem : ATtention ! Dial Pulse.  If
         your phone system supports touch tone dialing use the command AT DT
         123-4567.

        -The remote computer will then answer and prompt you for information.

        -When you are done Press F12 to go off line.

  Dialing will be much easier after you customize an ENVOY command file to
  manage the call for you.  You will be able to go on-line and dial by pressing
  a single key.


2.3  Execute a Line command

  Any ENVOY operation can be executed from the command line.  Section 6 gives
  the definitions of all of the ENVOY operations.  Here is an example of how to
  execute a Line Command :

        -Press the Escape key.  ENVOY will prompt you for a line command.

        -Type in the word "Beep" and then press Enter.

        -You will hear a short beep.

        -ENVOY will prompt you for another command.  Press Enter to return to
         the editor.


2.4  Assign commands to a key

  You can assign commands to any key you wish.  For instance, you can
  reconfigure the ENVOY editor keys to match your favorite editor.  You can also
  assign a complex set of instructions to a single key or you can execute an
  entire command file by pressing a single key.


  You assign commands to a key with the MACRO command.  Here is an example of
  how to use the MACRO command :

        -Press the Alt-a key.  This won't do anything at all because ENVOY
         doesn't assign a default command to this key when it starts up.

        -Look at the ENVOY information line.  You see that the key number of
         the Alt-a key is 286.  You could also look up the key number in
         Table 7.3.

        -Now press the Escape key.  ENVOY will prompt you for a line command.

        -Type in the following line and then press the Enter key :

           Macro 286#Delay 5 .5#Beep#Pause 1.#Delay 5 .1#Beep

        -ENVOY will prompt you for another command.  Press the Enter key to
         return to the editor.

        -Now press the Alt-a key.  You will hear a long beep, a 1 second pause,
         and then a short beep. 







                            3  KEY COMMAND SUMMARY


The following table gives the Envoy default key commands.  These key commands
are simply MACRO strings which are assigned at startup.  The table gives the
key, the MACRO command, the key scan code, and a description of what Envoy will
do when you press the key.  Note that whenever the table shows a * character in
a MACRO definition Envoy will prompt you for a parameter.




 
 
                        KEY COMMAND SUMMARY
 
|------------------------------------------------------------------------------|
| Key         MACRO       Scan Code             Description                    |
|------------------------------------------------------------------------------|
|                                                                              |
| Backspace   Backspace       8 Move the cursor to the left and delete the     |
|                               character at that position.  Press the         |
|                               Backspace key to correct typing mistakes.      |
|                                                                              |
| Tab Right   Go TabRight     9 Go right to the next Tab position.             |
|                                                                              |
| Enter       Enter          13 Move the cursor to the start of the next line  |
|                               or to a position which you defined with the    |
|                               alt-t key.  In Insert mode a new line is       |
|                               inserted before moving down.                   |
|                                                                              |
| Escape      DoLine         27 After you press the Escape Key ENVOY will      |
|                               prompt you for a line command.  The line       |
|                               command is executed just as it would be from a |
|                               command file.                                  |
|                                                                              |
| Tab Left    Go TabLeft    271 Go left to the next Tab position.              |
|                                                                              |
| Alt-q       Quit          272 Quit the program.                              |
|                                                                              |
| Alt-r       Replace * * * 275 Find and replace a character string.  ENVOY    |
|                               will prompt you for the character string you   |
|                               wish to find, for the new character string, and|
|                               for search options.                            |
|                                                                              |
|                               When the program prompts you, enter the        |
|                               options you want in any order.  Press the      |
|                               Enter key if you don't want special search     |
|                               options.                                       |
|                                                                              |
|                               Unless you specify the Y option, ENVOY will    |
|                               ask you before replacing a string.             |
|                                                                              |
|                               Find and Replace Options  :                    |
|                                    B  Search In Block                        |
|                                    G  Global Search                          |
|                                    U  Ignore Upper/Lower Case                |
|                                    n  Replace n Occurrences                  |
|                                    Y  Replace Without Asking                 |
|                                                                              |
|                               For example, B10Y tells ENVOY to search in the |
|                               blocked region for ten occurrences of the      |
|                               Search string and replace it with the new      |
|                               string without asking.                         |
|                                                                              |
|------------------------------------------------------------------------------|
         





                        KEY COMMAND SUMMARY

|------------------------------------------------------------------------------|
| Key         MACRO       Scan Code             Description                    |
|------------------------------------------------------------------------------|
|                                                                              |
| Alt-t       Retpos        276 Set the Return Position to the current cursor  |
|                               position.  When you press the Enter key the    |
|                               cursor will go to the Return Position instead  |
|                               of to column 1.                                |
|                                                                              |
| Alt-d       Clear Line    288 Delete the current line.                       |
|                                                                              |
| Alt-f       Find * *      289 ENVOY will prompt you for the character string |
|                               you wish to find and for search options.       |
|                                                                              |
|                               When the program prompts you, enter any        |
|                               options you want in any order.                 |
|                                                                              |
|                               Find Options  :                                |
|                                    B  Search In Block                        |
|                                    G  Global Search                          |
|                                    U  Ignore Upper/Lower Case                |
|                                    n  Find the n'th Occurrence               |
|                                                                              |
|                               For example, B10 tells ENVOY to search in the  |
|                               blocked region for the tenth occurrence of the |
|                               character string.                              |
|                                                                              |
| alt-j       Joinline      292 Join the current line to the previous line.    |
|                                                                              |
| alt-b       Breakline     304 Break the current edit line at the cursor      |
|                               position.                                      |
|                                                                              |
| Alt-n       Repeat        305 Repeat the last Find or Find and Replace       |
|                               operation.                                     |
|                                                                              |
| alt-m       Menu          306 Show the ENVOY menu.                           |
|                                                                              |
| Func  1     Block Top     315 Mark the beginning of a Block region.  The     |
|                               current cursor position becomes the start      |
|                               of a block.                                    |
|                                                                              |
| Func  2     Block End     316 Mark the end of a Block region.  The current   |
|                               cursor position becomes the end of a block.    |
|                                                                              |
| Func  3     ReadFile *    317 Read a new edit file.  ENVOY will prompt you   |
|                               for the file name and then read the file into  |
|                               memory so that you can edit it.  If you are    |
|                               working on a file in memory, save it before    |
|                               you read a new file or else you will lose all  |
|                               of the changes which you have made.            |
|                                                                              |
|------------------------------------------------------------------------------|
      





                        KEY COMMAND SUMMARY

|------------------------------------------------------------------------------|
| Key         MACRO       Scan Code             Description                    |
|------------------------------------------------------------------------------|
|                                                                              |
| Func  4     WriteFile *   318 Write the edit file to disk.  ENVOY will prompt|
|                               you for the name of the file you wish to write.|
|                               You may enter a full directory path name,      |
|                               such as C:\MINE\FILE.TXT.  If you just press   |
|                               the Enter key to enter a blank file name,      |
|                               ENVOY will overwrite the current edit file.    |
|                               The name of the current edit file is shown on  |
|                               the ENVOY information line.                    |
|                                                                              |
| Func  5     Block Copy    319 Copy the blocked region to the current         |
|                               position.  If lines are blocked, the lines are |
|                               inserted below the current line.  The existing |
|                               lines are moved down.  If a region is blocked, |
|                               the block is copied to the current cursor      |
|                               position.  Existing text is moved to the right |
|                               to make room.                                  |
|                                                                              |
| Func  6     Block Move    320 Move the blocked region to the current         |
|                               position.  If lines are blocked, the lines are |
|                               inserted below the current line.  The existing |
|                               lines are moved down. If a region is blocked,  |
|                               the block is moved to the current cursor       |
|                               position. Existing text is moved to the right  |
|                               to make room.                                  |
|                                                                              |
| Func  7     Block Clear   321 The blocked region is deleted.                 |
|                                                                              |
| Func  8     Block Read *  322 ENVOY will prompt you for a file name.  The    |
|                               file will be read into the current file at the |
|                               current position.  The new text will be marked |
|                               as a blocked region.                           |
|                                                                              |
| Func  9     Block Write * 323 ENVOY will prompt you for a file name.  The    |
|                               blocked region will be written to the file you |
|                               name.                                          |
|                                                                              |
| Func 10     Block Lines   324 ENVOY can be set to mark either lines or       |
|                               regions.  Block regions,(default) if you want  |
|                               to move words, insert or delete columns, etc.  |
|                               Block lines to move paragraphs around in the   |
|                               file.                                          |
|                                                                              |
| Home        Go TopFile    327 The cursor will move to the start of the first |
|                               line in the edit file.                         |
|                                                                              |
|------------------------------------------------------------------------------|
      





                        KEY COMMAND SUMMARY

|------------------------------------------------------------------------------|
| Key         MACRO       Scan Code             Description                    |
|------------------------------------------------------------------------------|
|                                                                              |
| Up Arrow    Go Up         328 The cursor will move up one line in the edit   |
|                               file.                                          |
|                                                                              |
| Page Up     Go UpPage     329 The cursor will move up to display a full      |
|                               screen of new text.                            |
|                                                                              |
| Left Arrow  Go Left       331 The cursor will move left one column.          |
|                                                                              |
| Right Arrow Go Right      333 The cursor will move right one column.         |
|                                                                              |
| End         Go EndFile    335 The cursor will move to the end of the last    |
|                               line of the edit file                          |
|                                                                              |
| Down Arrow  Go Down       336 The cursor will move down one line.            |
|                                                                              |
| Page Down   Go DownPage   337 The cursor will move down to display a full    |
|                               screen of new text.                            |
|                                                                              |
| Insert Key  InsertMode    338 In insert mode characters are inserted into    |
|                               the line at the cursor position and the rest   |
|                               of the line is shifted to the right.  In       |
|                               overwrite mode any character already at the    |
|                               cursor position is over-written.  Press the    |
|                               Insert key to change from Insert mode to       |
|                               Overwrite mode and back.  The current setting  |
|                               is shown on the ENVOY display line.            |
|                                                                              |
| Delete Key  Clear Char    339 Delete the character at the cursor position.   |
|                                                                              |
| Shift F1    On            340 Go on-line.  This opens the communications     |
|                               port so that you can communicate with a remote |
|                               computer.                                      |
|                                                                              |
| Shift F2    Off           341 ENVOY goes off line and returns to edit mode.  |
|                                                                              |
| Shift F3    Dial          342 Dial a phone number.                           |
|                                                                              |
| Shift F4    Xget *        343 Receive a binary file.                         |
|                                                                              |
| Shift F5    XSend *       344 Send a binary file.                            |
|                                                                              |
|------------------------------------------------------------------------------|
  




                        KEY COMMAND SUMMARY

|------------------------------------------------------------------------------|
| Key         MACRO       Scan Code             Description                    |
|------------------------------------------------------------------------------|
|                                                                              |
| ^Right arr  Go TopLine    371 Go to the start of the current edit line.      |
|                                                                              |
| ^Left arr   Go EndLine    372 Go to the last character of the current edit   |
|                               line.                                          |
|                                                                              |
| ^End        Clear EndLine 373 Delete all the characters from the cursor      |
|                               position to the end of the current edit line.  |
|                                                                              |
| ^PgDn       Go EndBlock   374 Go to the end of the blocked region.           |
|                                                                              |
| ^PgUp       Go TopBlock   388 Go to the start of the blocked region.         |
|                                                                              |
|------------------------------------------------------------------------------|
     
 





                            4  COMMAND FILES

You can set up a command file to reconfigure the ENVOY editor or to manage your
call to a remote computer.  The ENVOY commands IF, ELSE and JUMP enable you to
set up a command file which will prompt you for information and  act on that
information.  You can set up a command file which will try to call another
computer several times before giving up or one which will try several bulletin
boards and give you control when it finds one that isn't busy.  You can even set
up a menu driven auto-dialer for voice communications.

A command file consists of a series of ENVOY line commands.  The commands are
executed in just the same way as if you had entered them from the ENVOY command
line or had assigned the commands to keyboard keys with the MACRO command and
then pressed the MACRO keys.

Execute a command file by entering the command DO filespec, where filespec is
the DOS file name and can include a complete directory path.  If you don't enter
a directory path, ENVOY will look for the file in the current directory.  If the
file isn't in the current directory, ENVOY will look in the ENVOY directory.
You can define the ENVOY directory before you start the ENVOY program by
entering the DOS command SET ENVOY=pathname, where pathname is the complete path
to the ENVOY directory.  You can put the SET command in your Autoexec.Bat file
so that the ENVOY directory is defined every time you start your PC.

You can pass up to two parameters to a command file.  The first parameter
replaces every occurrance of %P1 in the command file and the second parameter
replaces every occurrance of %P2.  The commands in the command file are then
executed normally.  You can use this feature to fully automate some procedures.
For instance, the command 'DO Getfile newgame.exe' could execute the commands 
in the command file Getfile to call up a favorite bulletin board, receive
file getfile from the board, and then log off.  The command Do Getfile News.Doc
would go through the same process to bring you News.Doc from the board.

A command file can use the DO command to call another command file.  When the
the other command file finishes execution ENVOY continues to execute the
original file.  Command files can be nested this way up to four deep.

When Envoy is first started it tries to execute file Initial.Env in the current
directory.  If the file isn't on the current directory Envoy will look in the
Envoy directory and then give up.  Use the initialization file to set options
which you will want every time you run Envoy.  Use this file to choose screen
colors and reconfigure the MACRO definitions to match your favorite editor.

After executing file Initial.Env, ENVOY will look to see if you entered the name
of a command file when you called the program.  If you did ENVOY will execute
that file.  You can also supply parameters when you call ENVOY.  For instance,
entering ENVOY GETFILE NEWS.DOC could execute file Getfile to receive a file
named News.Doc from a bulletin board.

If you want, you can put several ENVOY commands on a single line.  Separate
the commands with the # character.

ENVOY doesn't check your control logic.  It is possible to set up an infinite
loop in command file with the JUMP command which wants to execute forever.
You can escape from a loop like this by pressing the alt-x key.

When you are writing a command file, or if you are have a problem with a
command file, use the JOURNAL command to trace the execution of each line.
The JOURNAL command echoes all of the commands you enter to a file named
Journal.Env on the current directory.  JOURNAL ON should be the first command in
the file and JOURNAL OFF should be the last command.  You can also use the
REMARK command to write comments to the CRT screen as the file is executed.

Put comments into a command file by using the ; character.  Anything following a
; is ignored unless it was part of a string parameter.  For example, the command
FIND ';' ; ...comment...  will find the next ; character.  The comment will be
ignored.

The distribution disk gives several examples of useful command files.  Look
them over before you write your own command files.







                            5  INITIALIZATION

     To run Envoy you type 'ENVOY' or 'ENVOY {name of a command file}' at the
     DOS prompt.

     When Envoy starts up it first tries to execute the file Initial.Env on the
     default directory.  As with any command file, If the file is not in the
     current directory Envoy will look for it in the ENVOY directory.  You can
     define the Envoy directory with the DOS command SET ENVOY=pathname.

     You can use the file Initial.Env to redefine the edit keys, set a default
     phone number and communications parameters, or perform other set up tasks
     which you want to do every time you use envoy.

     If you entered the name a command file as a parameter when you started
     Envoy, that command file will be executed after ENVOY is finished executing
     file Initial.Env.

     These initialization files are very powerful.  You can set up command files
     for each of the many different jobs which Envoy can do.  For instance, you
     could create a command file called Work which contained the commands to log
     you on to your company computer.  Entering the DOS command ENVOY WORK would
     then log you on and return control.  You could set up other commands to log
     you onto other systems or to redefine the Envoy editor for special
     purposes.








                            6  LINE COMMAND DEFINITIONS


Envoy commands can be entered from the command line, from inside of a command
file or can be assigned to keyboard keys.  All of the Envoy commands are
described below.  Three important conventions which apply to all of the commands
are:

      - Commands can be abbreviated.  The Syntax section of each of the
        definitions capitalizes the minimum acceptable abbreviation.

      - Multiple commands can be given on a single line.  Separate the commands
        with a # character.

      - Comments which follow a ; character are ignored.  Using comments,
        especially in command files, will make it much easier to remember what
        you have done.




BACKSPACE - Erase the character you just typed.

     The BACKSPACE command moves the cursor one position to the left and deletes
     that character.

     Syntax
       BACKspace


BAUD - Set baud rate

     The baud rate is the number of bits per second which can be sent or
     received.  ENVOY uses a default baud rate of 1200 baud.

     The same baud rate must be used by the local computer, the remote computer,
     and the modem.  Some computers analyze an incoming call and reset their own
     communication parameters(baud rate, number of data bits, number of stop
     bits, and parity) to match.  In the same way, most modems have a command
     mode to automatically reset their baud rate to match the local computer.
     You can reset the communication parameters of a Hayes compatible modem by
     putting it in command mode(power on or send ++++) and then sending the
     command AT to the modem.

     Syntax
       BAud {baudrate}
         Allowed values for  {baudrate} are 110, 150, 300
         600, 1200, 2400, 4800 and 9600.

     Example
       BAUD 1200          ;  Set the baud rate to 1200 bps.
       STOP  1            ;  One Stop bit


BEEP - Computer speaker will beep.

     The BEEP command generates a short beep.  The length of the beep can be set
     with the DELAY command.  Use the BEEP command in command files to signal
     that execution has finished.

     Syntax
       BEep
     Example
       Delay 5 2.0    ;Reset beep time to 2 seconds
       Beep           ;Long beep
       ; Set macro to beep twice when you press the alt-b key
       Macro 304 #delay 5 0.4 # beep #pause .5 #delay 5 .2 # beep

BLOCK - Block a region of the file for special editing

     The BLOCK commands work only on the blocked region in the file which you
     have marked.  You can read, write, copy or delete the block.  You
     can use the BLOCK LINES option to work with entire lines or with
     rectangular regions.

     Syntax
       BLock CLear          Delete the block
       BLock COpy           Copy the block to the current cursor position
       BLock Lines ON|OFF   Choose option to work with blocked lines or regions
                            Your choices are :
                                 ON  - BLOCK commands work on marked lines
                                 OFF - BLOCK commands work on a region
                                     - Option setting is reversed
       BLock End            Mark the end of the block
       BLock Top            Mark the start of the block
       BLock Move           Move the block to the current cursor position
       BLock Off            Remove any block marks
       BLock Read filespec  Read file filespec into the current edit file at the
                            current cursor position.  Filespec can include a
                            full directory path.
       BLock WOrd           The word at the present cursor position is marked.
                            If the BLOCK LINES option is ON it is set to OFF.
       BLock WRite filespec Write a block to a file which you specify.  The
                            filespec can include a full directory path.  If the
                            file already exists the blocked region is added at
                            the end of the file.  You can use the BLOCK WRITE
                            command to save selected information from a terminal
                            session which has been captured.

     Example
       BLock Read C:\Comdecks\newcom    ; Read the file newcom into a block
       Block Clear                      ; Delete the block
       MACRO 319 #Block Copy            ; F5 Key Copys the block
       Block Lines                      : Block lines option is reversed


BREAKLINE - Move the right side of the current edit line to a new line.

     The current line is truncated at the cursor position and a new line is
     inserted below the current line.  The cursor moves down and all the text
     which had been to the right of the cursor is moved to the new position.
     The new line will be indented if you have used the RETPOS command to define
     a new cursor position.  Otherwise, the new line will start in column 1.

     Syntax
       BReakline
          Break line at cursor.

     Example
       MACRO 304 #Breakline         ; Alt-b key Breaks the current line


CAPTURE - Start/stop capturing to a disk file.

     Envoy always captures a session to memory.  Incoming data is saved up to
     the limit of available memory.  The captured data can be edited and then
     written to a disk file just like any other edit file.  This is the easiest
     way to download and save text files from a remote computer.

     Sometimes it is necessary to capture a text file directly to a disk file.
     One case would be if your computer doesn't have enough memory to hold the
     entire file.  The CAPTURE command can be used to do this.

     You cannot use the CAPTURE command to download a binary file from a remote
     computer.  You must use the XGET command to do this.

     Syntax
       CApture filespec
         Starts capturing to the specified file.  The filespec can include a
         complete directory path.
       CApture
         Stops capturing.

     Example
       CA Mydata.sv        ; Start capturing to file Mydata.sv
       CA                  ; Stop capturing and close the file


CLEAR - Delete a file, a block, etc.

     The CLEAR commands are used to delete a block, a single character, a file,
     a line, or to delete the current working file from memory.  If the working
     file has been changed Envoy will give you the choice of saving the file
     before deleting it.

     Syntax
       CLear Block          Delete the current block(same as BLOCK CLEAR)
       CLear Char           Delete the character at the current cursor position
       CLear Edit           Delete the entire edit file from memory.  Disk files
                            are not affected.
       CLear Endline        Delete the characters to the right of the cursor
       CLear Help           Delete Help screens from memory.(See HELP)
       CLear File {filespec}Delete a file(same as the DOS DEL command)
       CLear Line           Delete the current line

     Example
       Clear File zz.*        ; Deletes all the files which match
       MACRO 288 # Clear Line ; Alt-d key deletes the current line


COLOR - Change display color

     There are six colors used by the program for different purposes.  The COLOR
     command lets you redefine these colors.  The first parameter of the COLOR
     command chooses which color you want to redefine.  The choices are:

                   EDIT   => Edit characters
                   BLOCK  => Blocked region
                   INFO   => Information line
                   QUES   => Envoy questions and error messages
                   FOUND  => Mark search string
                   HELP   => Help Screens and Menus

     The second parameter of the COLOR command defines the new foreground color.
     The choices for foreground colors are:
               0 => Black               8  => Dark Gray
               1 => Blue                9  => Light Blue
               2 => Green               10 => Light Green
               3 => Cyan                11 => Light Cyan
               4 => Red                 12 => Light Red
               5 => Magenta             13 => Light Magenta
               6 => Brown               14 => Yellow
               7 => Light Gray          15 => White

     The third parameter of the COLOR command defines the new background color.
     The choices for background colors are:


               0 => Black               8  => Black with Blink
               1 => Blue                9  => Blue with Blink
               2 => Green               10 => Green with Blink
               3 => Cyan                11 => Cyan with Blink
               4 => Red                 12 => Red with Blink
               5 => Magenta             13 => Magenta with Blink
               6 => Brown               14 => Brown with Blink
               7 => Light Gray          15 => Light Gray with Blink

     Use the Envoy Color Menu to change the Envoy default color scheme.  When
     you are happy with your choices, put COLOR commands in the command file
     INITIAL.ENV.  This will redefine the defaults every time you run Envoy.

     Syntax
       COlor {keyword} {foreground} {background}
         Where keyword chooses which color you wish to redefine and the
         foreground and background colors are given above.

     Example
       COLOR Edit    0  1; Edit Screens - Black characters on blue background
       COLOR Info   13  7; Info Line    - Lt Magenta on lt grey background
       COLOR Found  14 14; Found String - Blinking yellow on brown background


COM - Set the Communication port.

     Personal Computers often have more than one serial port installed.  For
     instance, one might be connected to a printer and the other to a modem.
     The COM command tells ENVOY which port to use for communications.  COM
     is initially set to 1.

     Syntax
       COM n
         Where n is 1,2,3 or 4

     Example
       COM  1      ;  Use Communications port number 1


COUNT - Add one to the value of the ENVOY internal counter

     ENVOY has an internal counter which is useful for program control while
     executing command files.  You can test the value of the counter with the IF
     command.  This lets you try something a certain number of times before
     giving up.

     The value of the counter is set to 1 when Envoy starts up.  Use the SET
     COUNT command to re-initialize the value of the counter at the start of a
     command file.

     The COUNT command increments the value of the Envoy internal counter by 1.

     See Section 4 for a description of how to use command files.

     Syntax
       COUnt
         Adds 1 to the value of the ENVOY counter

     Example
       Set Count 1      ;  Initialize counter.
       Label Loop       ;  ENVOY will jump back here three times
       Dial             ;  Dial a number
       If Connect       ;  Check to see if a connection was made
         Exit
       Else             ;  Connection wasn't made
         If Count 3     ;  Check to see if there have been three tries
          Exit          ;  Give up if three tries
         Else
          Count         ;  Increment counter by one
          Jump Loop     ;  Go to the top of the file
         Endif
       Endif


DATA - Set the number of data bits

     Every byte which is sent through a serial port is converted to a stream of
     bits.  First a start bit is sent to tell the connected equipment that a
     byte is being sent.  Next the data bits are sent, possibly followed by a
     parity bit.  Finally, one or two stop bits tell the connected equipment
     that the transmission of the byte is complete.

     Since a byte is, by definition, eight bits long it might seem that 8 data
     bits are required to send a byte.  This isn't necessarily true.  If you
     are using your computer as a terminal and are only sending normal text
     characters, seven bits are enough to use the ASCII character set which is
     made up of 128 characters.  Many systems use seven data bits.

     You must know the number of data bits which a remote computer expects(as
     well as the baud rate, the parity, and the number of stop bits) before you
     can make a successful connection.  If you use an incompatible set of
     communication parameters you will see a string of garbage on your screen.

     If you don't know what convention the remote computer uses you can usually
     find out by trial and error.  The most common setting for bulletin boards
     is 8 data bits, no parity bit, one stop bit.  Most mainframe computers use
     7 data bits, either even or odd parity, and one stop bit.  Try these
     settings until you get a good connection.  If this doesn't work try other
     settings or else give up until you find the documentation for the system
     you are trying to call.

     Syntax
       DAta 7 | 8

     Example
       DATA 7      ;  Use seven data bits.
       DATA 8      ;  Use eight data bits(default).


DELAY - Set timing delays

     Envoy inserts a short delay time after each cursor movement and after each
     transmission to a remote computer, etc.  These delays can be changed to
     slow down or speed up Envoy response.

     Depending on your reaction time, you may wish to adjust the delay which is
     inserted after each cursor movement.  If the delay is too short you may
     find it difficult to move the cursor to a new location on the screen
     without overshooting.

     Computers can have similar problems with their reaction time.  If you are
     running Envoy on a personal computer with a fast clock and have made a
     connection with a computer which is slower than yours (or busy with other
     jobs), the remote computer may lose some of the characters which you send.
     Increase the transmission delay if this seems to be happening.

     The default setting for the adjustable delays are:

           DELAY  1  0.080 ;  First Keyboard Delay
           DELAY  2  0.030 ;  Second Keyboard Delay for Repeat
           DELAY  3  0.010 ;  Time delay after sending a character
           DELAY  4  0.050 ;  Time delay after sending a line
           DELAY  5  0.200 ;  Length of error beep
           DELAY  6  0.0   ;  Delay after executing a command file line
           DELAY  7  0.0   ;  Delay before sending any byte

     These settings are can be reduced to improve performance.  Use care in
     reducing the time delays for sending a character and for sending a line.
     Many computer systems are set up to handle input only as fast a good 
     typist can send.  If you send a sustained burst of text to these systems
     you may overflow the other computer's input buffer.  

     DELAY 3 and DELAY 4 are only applied when you give a command to the 
     remote computer(or a smart modem) with the SEND STRING command.  These
     delays will not slow down file transfer.  DELAY 6 is always applied and
     will slow down file transfer.
     
     Syntax
       DELAy index tdelay
          Where index is the index number of the delay to be set and
          tdelay is the new setting.  tdelay must be less than 5 sec
          and is entered in decimal format.

     Example
       DELAY 3 .1              ; Wait 100 milliseconds after sending a character
       DELAY 1 .2 # DELAY 2 .2 ; Very slow keyboard response 


DEL - Delete a DOS file

     The DEL command is the same as the DOS DEL command.  Wild card characters
     are allowed.

     Syntax
       DEl filespec

     Example
       DEL Old.txt            ; Delete an unneeded file.
       DEL Old.*              ; Delete several files.
       DEL C:/Mine/Save/Old.* ; Delete files in a directory.


DIAL - Dial a phone number and wait for a connection

     The DIAL command tells Envoy to enter terminal mode and dial a telephone
     number.  Envoy will then wait for a Carrier Detect signal from the modem,
     which indicates that a connection to a remote computer has been made.

     If a connection is not mode, Envoy will go off line.

     Envoy dials the number by sending a character string to the modem.  The
     string consists of a modem command(defined by the SET PREFIX command)
     followed by the number to be dialed.

     Syntax
       DIAl  '{phone number}' t
          Where t is the time in seconds which envoy will wait for a
          carrier detect signal.  If n is omitted, the default wait
          time of 40 seconds is used.
     OR
       DIAl * t
           Envoy will prompt you for a phone number
     OR
       DIAl Number t
           Envoy will Dial the phone number which you defined with the
           SET NUMBER command

       
     Example
       SET PREFIX 'AT DT'     ; Hayes compatible command-ATtention Dial Pulse
       SET NUMBER '123-4567'  ; Phone number of the remote computer
       DIAL Number 30.0       ; Dial the number and wait 30 seconds for a
                              ; connection
       DIAL '123-5678'        ; Envoy will dial the phone number 123-5678
       DIAL * 30.0            ; Envoy will prompt you for the phone number,
                              ; dial it, and then wait 30 seconds.

DIR - List the files on a disk or in a subdirectory

     The DIR command is the same as the DOS DIR command.  Envoy shows a list of
     the files in the specified directory.  Wild card characters ? and * are
     allowed.

     Syntax
       DIR  filespec
       Where the filespec can include an complete directory path.

     Example
       DIR                  ; List all of the files on the default directory
       DIR B:               ; List all of the files on drive B:
       DIR C:MINE/OLD/*.Exe ; List all the .exe files in the subdirectory


DISCONNECT - Disconnect the modem

     When you enter the OFF command to leave terminal mode, or when you quit
     Envoy, the modem is not disconnected.  You can re-enter terminal mode and
     continue your session later.  The DISCONNECT command disconnects the modem
     by clearing the Data Terminal Ready (DTR) signal.  The modem will then
     break the connection to the remote terminal.

     Syntax
       DISconnect


DO - Execute a command file

     Envoy will execute the commands in the file which you name.  The DO command
     can be used to execute a command file to define the edit keys, colors,
     tabs, etc., or to manage the log-on to a remote computer.

     A command file may contain a DO command and execute a second command
     file, and so on.  Command files may be nested this way up to four deep.

     Blank lines in a command file are ignored.  The ; character can be used
     for comments, as in the example.

     During initialization, Envoy tries to execute the file Initial.Env on the
     default directory.  You can use this file to redefine the edit keys, set a
     default phone number and communications parameters, or perform other set up
     tasks which you want to do every time you use envoy.  Section 5 describes
     the initialization in more detail.

     If Envoy tries to execute a command in a command file but cannot, an error
     results.  Envoy then closes the command file and returns to Edit mode.

     If you give Envoy a file name which includes a directory path, Envoy will
     look for the file in that directory and give up if the file isn't there.
     If you give Envoy a file name which does not include a directory path,
     Envoy will first look for the file in the current directory and then look
     in the ENVOY directory.  Use DOS command SET ENVOY=pathname in your
     AUTOEXEC.BAT file to define the Envoy directory.

     Syntax
       DO  filespec
         Envoy will execute the commands in the file.  The filespec can include
         a complete directory path.

     Example
       DO C:Mine/Compusrv  ; File Compusrv in directory C:Mine contains the
                           ; commands to log on to Compuserve

       DO Compusrv         ; Envoy will execute the file Compusrv in the current
                           ; directory.  If Envoy can't file the file in the
                           ; current directory it will look in the ENVOY
                           ; directory


DOLINE - Enter command mode

     The DOLINE command can be entered by pressing a macro key(default is the
     <Esc> key) or from a command file.  Envoy will then prompt you for
     commands.  Enter a blank line to leave command mode and return to the
     editor.

     Syntax
       DOLine


DOS - Shell to DOS

     ENVOY will prompt you for commands and pass the commands to the DOS
     command processor.  You can execute DOS commands or run programs.
     Enter the command 'EXIT' to leave the DOS shell and return to ENVOY.

     The DOS command can also be used to execute a single Dos command.  You
     can assign a command to a MACRO key and then execute a Dos command or
     another program by pressing a single key.

     When ENVOY executes a DOS command it first shrinks the memory it uses to
     the minimum required.  When you exit DOS, ENVOY reclaims its memory.  This
     means that you must not install any memory resident programs when you chain
     to DOS.  If you do ENVOY will have a hard failure(program halt) when it
     tries to reclaim memory.  In particular, if you want to use the DOS PRINT
     command from inside the ENVOY shell you must install the PRINT routine
     before you run ENVOY.  To do this just enter the command PRINT with no
     file name at the DOS prompt.

     Syntax
       DOS
         You will enter the Dos shell.  Enter the Dos command EXIT to return
         to Envoy.
     OR
       DOS '{doscommand}'

          The command will be executed and then Envoy will resume execution.

     Example
        Dos                        ; Enter the Dos shell
        Dos 'Dir C:'               : Lists the directory of drive C:
        MACRO 349 # Dos 'Dir C:/w' : Press the Shift F10 key to see directory


DUPLEX - Set Full/Half Duplex mode.

     Full Duplex means that the remote computer echoes any characters it
     receives back to you.  Half Duplex means it does not.

     In terminal mode Envoy will always display any characters received from the
     remote computer.  The DUPLEX command selects the option to also display the
     characters which you type.

     Many people are confused by Duplex setting.  If the remote computer is set
     up for full duplex and Envoy is set to Half Duplex, each character you type
     will be displayed twice ( ddiissppllaayyeedd ttwwiiccee).  The first
     character of each pair is displayed when you type it, the second is
     displayed when the remote computer echoes back what it received.  Similarly,
     if the remote computer is set up for Half Duplex and Envoy is set to Full
     Duplex, the characters which you type will not be displayed at all.  You
     will see responses from the remote computer.

     If you don't know the Duplex mode which the remote computer uses, set Envoy
     to Half Duplex.  Change to Full Duplex if you see double characters.

     The default setting for a Hayes compatible modem in command mode is Half
     duplex, which may be different than the setting for the remote computer.
     Because of this you might have to change the duplex setting twice while
     making a connection - first to match the modem setting and then to match
     the remote computer.  Alternately, you could just set the Envoy duplex to
     match the remote computer and ignore doubled characters while you send
     commands to the modem.

     Syntax
       DUplex FULL | HALF

     Example
       DUPLEX FULL ; Set Envoy to Full Duplex mode.


ELSE - Resume processing in a IF block

     Envoy command files can include If blocks which provides very powerful
     control over a log-on sequence.  The ELSE command tells Envoy to resume
     processing commands if lines are are being skipped after failing an IF
     test.  Alternately, when an ELSE command is found after passing an IF test
     Envoy will skip all of the following commands until a ENDIF statement is
     found.

     More details are given in the definition of the IF command.

     Syntax
       ELse


ENDIF - End an If Block

     Envoy command files can include If blocks which provides very powerful
     control over a log-on sequence.  The ENDIF command tells Envoy to close
     an IF block.

     More details are given in the definition of the IF command.

     Syntax
       ENDIf


END - Reset the end-of-line control characters

     Remote host computers expect to receive one or two control characters at
     the end of each line you send.  The Carriage Return character (ASCII code
     13) is most commonly used.  The CR character tells the host that the end of
     the current line has been reached.  The remote host computer then moves
     down to the next line and moves to the start of the line.

     Some systems use other line control characters.  The Line Feed character
     (ASCII code  10) tells the remote computer to move down to the next line
     but not to move to the beginning of the line.  The Home character
     (ASCII code 11) tells the remote computer to move to the start of the
     current line.  Some systems require that these two characters be sent at
     the end of each line instead of a carriage return.

     The END command lets you change the characters which Envoy sends
     at the end of each line.  The default is to send a CR character.

     Syntax
       END {first} {second}
         Where {first} and {second} are the character codes of the first and
     second characters to be sent.  A value of 0 for one of the end-of-line
     characters means don't send a character.

     Example
             ; Envoy Defaults
       END  13 0       ; Send a Carriage Return at the end of each line.
                       ; Don't send a second character.

             ; Reset end of line characters:
       END  10 11      ; Send a Line Feed.
                       ; Then send a Home character.


ENTER - Enter a line

     The ENTER command enters a line into the edit file.  This requires
     several actions :
             - If Envoy is in INSERT mode or if the current line is the last
               line in the file, a new line is created below the current
               line.
             - The cursor moves down from the current line to the line below.
             - The cursor moves to the Return Position on the line.  This is
               column 1 unless another position has been defined with the
               RETPOS command.
             - If Envoy is on-line, the two end-of-line characters defined
               by the END command are sent to the remote computer.

     Syntax
       ENTer


EXIT - Leave a Command File

     Usually, Envoy processes all the commands in a command file.  The file
     is closed when the end of the file is reached.  The EXIT command tells
     Envoy to close a command file even though the end of the file has not
     been reached.

     Syntax
       EXit

     Example
       Dial                           ; Dial a remote computer
       If Connect                     ; Check if a connection was made
         Remark 'Phone was answered ' ; Message to the user
       Else                           ; Connection was not made
         Exit                         ; Give up
       Endif                          ; Now continue with the command file


FIND - Find a Character String

     The FIND command finds a character string in the edit file.  You must
     specify the string which you wish to find and search options.

     Options for the FIND operation are :
                   B  Search In Block
                   G  Global Search
                   U  Ignore Upper/Lower Case
                   n  Find the n'th occurrence

     If you specify * for the character string or for the Search option string,
     Envoy will prompt you for this information.

     Syntax
        FInd '{character string}' '{option string}'
      OR
        FInd * *
     Envoy will prompt you to supply the search string and options.

     Example
        Find 'AnyWord' 'U'     ; Find the string, ignoring upper case


GO - Move the cursor

     The GO command moves the cursor throughout the file.  There are several
     options.

     Syntax
       GO Column n   Go to column n on the current line
       GO DOWNPage   Go down one screen page
       GO Down       Go down one line
       GO ENDBlock   Go to the end of the blocked region(see BLOCK command)
       GO ENDFile    Go to the end of the file
       GO ENDLine    Go to the end of the current line
       GO Left       Go left one space
       GO Line n     Go to line n in the current edit file
       GO Right      Go right one space
       GO TABLeft    Go to the next tab position to the left(see TABS command)
       GO TABRight   Go to the next tab position to the right(see TABS command)
       GO TOPBlock   Go to first line of the blocked region(see BLOCK command)
       GO TOPFile    Go to the first line in the file
       GO TOPLine    Go to the first character of the current line
       GO UPPage     Go up one screen page
       GO Up         Go up one line
       GO WLeft      Go to the start of the current word
       GO WLeft      Go to the start of the next word on the left
       GO WRight     Go to the start of the next word on the right

     Example
       Go L                    ; Go left one position
       Go Up # Go Up           ; Go up two lines
       MACRO 328 #go up #go Up ; Up arrow key moves cursor up two lines instead
                               ; of just one


HELP - Display Help screen

     The HELP command displays the Envoy help screens.  The help screens briefly
     describe how to use Envoy and give definitions of all the Envoy key
     commands.  The command HELP or just 'H' displays the titles of the help
     screens which are available. Choose the topic you want by using the up and
     down arrow keys.  Then press the enter key.  You can scroll through the
     help screen using the up, down, PgUp, and PgDn keys.

     All of the help screens are contained in file Help.env.  When you enter the
     HELP command, Envoy looks for this file in the current directory.  If the
     help file isn't in the current directory Envoy will look in the Envoy
     directory(set with the DOS command SET ENVOY={envoydirectory})  If you
     wish, you can modify the help file with the Envoy editor to add custom help
     screens.  You could put in phone numbers which you often call, command
     definitions for a remote computer system, etc.

     The first time you enter the HELP command, the entire help file is read
     into memory.  This is a fairly large file and could get in the way if you
     are editing another large file.  Use the command CLEAR HELP to reclaim the
     memory used by the help file.

     Syntax

       Help

         Show the list of available help screens.


IF - Test for a condition

     The IF command tests to see if some condition is true.  Use the IF, ELSE,
     and JUMP commands in a command file for program control.

     An IF block consists of:
                 - The word IF followed by the condition to be tested.
                 - Statements to be executed when the IF test was successful
                 - An ELSE statement is allowed but not required.
                 - Statements after the ELSE statement are executed only when
                   the IF test fails.
                 - End the IF block with an ENDIF statement
     An IF block can contain other IF blocks.  Blocks can be nested this way up
     to 40 deep.

     The IF command can test several conditions :

              IF COLUMN {n}
                   This test is successful if the cursor is on or past the
                   n'th column in the current edit file.

              IF CONNECT
                   This test is successful if the DTR signal from the modem is
                   set high.  This means that the modem has made connection with
                   another modem over the phone line.

              IF COUNT {n}
                   This test is successful if the value of the Envoy internal
                   counter is equal to {n}.  Set the initial value of the
                   counter with the SET COUNT command.  Increment the counter
                   every time you go through a loop with the COUNT command.

              IF ENDBLOCK
                   This test is successful if the cursor is on or past the
                   last block line.

              IF ENDFILE
                   This test is successful if the cursor is on the last line in
                   the file.

              IF ENDLINE
                   This test is successful if the cursor is past the last
                   character of the current line.

              IF FOUND
                   This test is successful if the last WAIT, FIND, or REPLACE
                   command was successful.

              IF STRING  '{teststring}'
                   This test is successful if the value of the Envoy internal
                   string variable is identical to the {teststring}.  The
                   string variable is defined with the SET STRING command.
                   Use the form SET STRING *  to prompt the user for information
                   or use the string variable to return information to a command
                   file from a second command file which it calls with the DO 
                   command.

     Syntax
       IF COLumn {n}
         True is cursor is at or beyond column {n}
       IF CONnect
         True if DTR signal is high
       IF COUnt {n}
         True if Envoy internal counter equals {n}
       IF ENDBlock
         True if cursor is at or beyond block
       IF ENDFile
         True if cursor is on the last line of the file
       IF ENDLine
         True if cursor is at or beyond the end of the current line
       IF Found
         True if last WAIT, FIND, or REPLACE command was successful
       IF String '{teststring}'
         True if Envoy internal string equals {teststring}
     Example
       Set Count 1      ;  Initialize counter.
       Label Loop       ;  ENVOY will jump back here three times
       Dial             ;  Dial a number
       If Connect       ;  Check to see if a connection was made
         Exit
       Else             ;  Connection wasn't made
         If Count 3     ;  Check to see if there have been three tries
          Exit          ;  Give up if three tries
         Endif
         Count         ;  Increment counter by one
         Jump Loop     ;  Go to the top of the file
       Endif


INSERT - Change Insert Mode

     When Envoy is in INSERT mode, characters which you type are inserted at the
     cursor position.  The character which had been at the cursor position is
     shifted to the right.  In OVERWRITE mode the character at the cursor
     position is overwritten.

     The Envoy information line tells you whether you are in INSERT mode or 
     overwrite mode.

     Syntax
       INSert ON
       INSert OFF
         Set INSERT mode.
     OR
       INSert
         Toggle the current setting.


JOIN - Join the current line to the previous line

     The JOIN command moves the current line to the right side of the line just
     above the current line.  Use the JOIN and BREAKLINE commands to reformat a
     paragraph.

     Syntax
       JOIn


JOURNAL - Write a Journal of an ENVOY session to a file.

     By default, the JOUrnal command writes a summary file of an Envoy session
     to file Journal.Env.  If you wish, you can write the journal information to
     another file.  Every line command, MACRO command, or command file command
     is written to the file as it is executed.

     The JOURNAL file is useful if you are having trouble getting a new MACRO
     definition or command file working.  You can try the new operation and
     then look at the journal file to see what went wrong.

     The JOURNAL file is also useful in creating a command file.  Enter the
     command JOURNAL ON before you dial a remote computer.  Later, you will
     be able to edit the file Journal.Env to create a command file which will
     manage the entire log-on automatically.

     If the file Journal.Env already exists when you enter the JOURNAL ON
     command the old file is overwritten.  If you want to save an old Journal
     file, rename the file you want to save or else supply a different file name
     in the JOURNAL ON statement.

     Syntax
       JOUrnal ON {filename}
       JOUrnal OFF

     Example
       JOURNAL ON \tmp\Journal.010  ; Write journal information to named file
       JOURNAL ON                   ; Write to file JOURNAL.ENV
       JOURNAL OFF                  ; Stop writing journal information


JUMP - Move to another line in a command file

     The JUMP command tells Envoy to find a LABEL in a command file and
     continue execution there.  Use the JUMP and LABEL commands and the IF and
     ELSE commands in a command file for program control.

     If you issue the JUMP command from inside an IF block all IF conditions are
     reset so that execution will continue with the command after the LABEL even
     if you JUMP into the middle of an IF command.

     Syntax
       JUmp {Labelname}
         The command file is rewound and Envoy finds the LABEL labelname.
         Execution continues with the command just after the LABEL.

     Example
       REM # REM # REM                      ; Three Blank lines
       REM 'Enter 1 to log on to System 1'
       REM 'Enter 2 to log on to System 2'
       SET String *                         ; User chooses 1 or 2
       If String '1' # Jump Sys1 # Endif
       If String '2' # Jump Sys2 # Endif
       Exit

       Label Sys1                           ; User chose system 1
       Set Number '111-1111'
       Dial
       Exit

       Label Sys2                           ; User chose system 2
       Set Number '222-2222'
       Dial
       Exit


LABEL - Mark a transfer point in a command file.

     The JUMP command tells Envoy to find a LABEL in a command file and continue
     execution there.  Use the JUMP and LABEL commands and the IF and ELSE
     commands in a command file for program control.

     Syntax
       LAbel {Labelname}
       The command JUMP {labelname} will cause Envoy to continue operation with
       the command just after this LABEL.


MACRO - Redefine the key which executes a command

     The MACRO command assigns a command to a keyboard key.  You can use the
     MACRO command to set up the Envoy editor to behave like your favorite
     editor.  You can also use the MACRO command to assign a complicated
     series of commands to a single key.

     Assign commands to a key by entering MACRO n #command1#command2#... where n
     is the key number.  The numbers assigned to each of the keys are listed in
     Tables 7.2 and 7.3.  You can also find out the number assigned to a key by
     pressing the key and looking at the Envoy information line.

     Once you have decided which commands should be assigned to your keys, you
     can put the MACRO commands into file Initial.Env.  The commands in this
     file are executed each time Envoy starts up.

     Enter the command MACRO LIST if you want to see all of the MACRO
     assignments.  This command writes all of the current MACRO assignment to
     the file Macdef.env.

     Use the MACRO DO command to execute a string of commands which have been
     assigned to a key without having to press the key.  The MACRO DO command
     is useful in a command file.

     Syntax
       MACRO n #command1#command2#.....
         Where n is the key number from Tables 7.2 and 7.3 or from the Envoy
         information line.  {commandi} can be any of the ENVOY line commands.
       MAcro List
         All of the current key assignments are written to file Macdef.Env.
       MACRO DO n
         Execute the commands which have been assigned to key number n.

     Example
       MACRO  328 # Go Up # Go Up   ; The Up-arrow key goes up two lines instead
                                    ; of one.
       MACRO  349 #Screen Clear# Dir C#Wait Key#Screen Show
                             ; Press Shift F10 to see the directory of drive C:,
                             ; wait for the user to press a key,
                             ; then show the current edit file.

MENU - Show the Envoy menu.

     You can use Envoy by using command keys, entering commands on the command
     line, executing command files or by choosing selections from the Envoy
     menu.  The menu is useful for beginners.  You can enter the main menu by
     pressing alt-m or by entering the MENU command.

     Syntax
       Menu


OFF - Go off line.

     Enter the OFF command to exit terminal mode.  Envoy will not break the
     connection to a remote computer even if you quit Envoy to execute DOS
     commands or run another program.  Use the DISCONNECT command to break the
     connection if you are completely done.

     Syntax
       OFf

     Example
       ON                                  ; Go on line
       SEND STRING 'AT DP 1-800-333-1234' ; Dial a number without using the
                                           ; DIAL command.
       OFF                                 ; Go off line


ON - Go on line.

     Enter the ON command to enter terminal mode.  After you enter this
     command all the ASCII key code of each key you press will be sent to the
     modem except for keys which generate an extended scan code or MACRO keys.
     If the modem is connected to a remote computer the key codes will be sent
     to that computer.  If the modem is in command mode the key codes will be
     treated as modem commands.

     You can use the ON and OFF commands to enter and leave terminal mode
     without breaking a connection to the remote computer.  You might want to
     do this to edit a text file or leave Envoy to execute another program.
     Use the DISCONNECT command to break the phone connection.

     Syntax
       ON

     Example
       ON                                 ; Go on line
       SEND STRING 'AT DP 1-800-333-1234' ; Dial a number without using the DIAL
                                          ; command


PARITY - Set the parity for serial communications

     Every byte which is sent through a serial port is converted to a stream of
     bits.  First a start bit is sent to tell the connected equipment that a
     byte is being sent.  Next the data bits are sent, possibly followed by a
     parity bit.  Finally, one or two stop bits tell the connected equipment
     that the transmission of the byte is complete.

     The parity bit is used by the serial port to check that a byte has been
     received correctly.  The serial port examines the data bits and then adds
     a parity bit.  If odd parity has been chosen, the parity bit is set so
     that an odd number of bits are ones in the transmission of the data bits
     Plus the parity bit.  If even parity has been chosen, there will be an
     even number of bits in the transmission.  If null parity has been chosen,
     no parity bit is sent.

     The parity bit is checked by the serial port when a byte is received.  The
     parity check will fail if one of the bits has been flipped by noise on the
     phone line.  Envoy sets characters which fail the parity check to '*' so
     that you can see on the screen that there is a line problem.

     Parity checking is a not an especially good way to check the integrity of
     the transmitted data.  It will fail to flag an error much of the time.
     Parity checking is being replaced by more sophisticated error checking.
     Data-checking modems and networks use CRC checking to make sure that each
     byte has been received correctly.  If there is an error the byte is resent
     so that neither the sending nor the receiving program ever sees an error.
     Similarly, File transfer programs (including Envoy) use CRC checking to
     check that an entire packet of data has been received correctly.

     Two computers which are connected by a modem must use the same parity
     checking.  If you don't know what convention the remote computer uses you
     can find out by trial and error.  The most common setting for bulletin
     boards is 8 data bits, no parity bit, one stop bit.  Most mainframe
     computers use 7 data bits, either even or odd parity, and one stop bit.  Try
     these settings and see if you get a good connection.  If this doesn't work
     try other settings or give up until you find out the right settings.

     Syntax
       PARity  NULL | EVEN | ODD

     Example
       DATA 8      ;  Use eight data bits(default)
       PARITY NULL ;  Don't send a parity bit(default)


PAUSE - Pause before executing the next command.

     The PAUSE command tells Envoy to wait awhile before processing the next
     command.  This allows time for a remote computer to process the previous
     instruction.

     Syntax
       PAuse  {seconds}
          Where {seconds} is the delay time in seconds expressed as a
          decimal fraction

     Example
       Send String  'myname'     ; Identify yourself to the remote computer
       Pause  3.5                ; Wait three and a half seconds
       Send String 'mypassword'  ; Supply your password


PRotocol - Choose File transfer protocol

     There are many file transfer schemes around.  The XMODEM protocol is one of
     the first and has become the closest thing to a standard around.

     The XMODEM file transfer protocol has several variants.  The original
     protocol uses a simple checksum to detect for transmission errors.  This
     isn't particularly reliable because it is fairly easy for a bad data packet
     to pass the checksum test.  The CRC(Cyclical Redundancy Check) test is much
     more reliable.  It is almost impossible for a bad data packet to pass a CRC
     test.  If a data packet fails the test the sending program retransmits
     until the packet has been received correctly.  Always use CRC error
     checking unless you are logged onto a system which only offers the checksum
     option.

     Another variant of the XMODEM protocol is to send 1K byte data packets
     versus the 128 bytes used by the original protocol.  Larger data packets
     speed up file transfer because less time is spent waiting for the receiving
     program to transmit the byte which indicates that the last packet has been
     received correctly.  On the other hand, a larger data packet is more likely
     to get 'hit' by line noise so that more time is spent retransmitting if you
     have a noisy connection.  If you have a very noisy line you will be better
     off using 128 byte packet size.

     The YMODEM protocol is a derivative of XMODEM.  YMODEM includes CRC error
     checking, 1K byte data packet size, and sends a packet during the initial
     handshaking which includes the file name, file creation date, and exact
     file size so that the received file is exactly identical to the file on the
     sending system.

     The Envoy default is to use the XMODEM protocol with CRC error checking and
     128 byte packet size.  You do not need to change this default when you are
     receiving a file even if the sending program is using one of the other
     XMODEM variants.  Envoy will automatically recognize which protocol is
     being used.  When you are sending a file to another computer you will have
     to be sure that Envoy is using the protocol which the remote computer
     expects.

     Syntax
       PRotocol {variant}
         Allowed values for {variant} are:
              X, XC, XK, Y

     Example
       Protocol Y         ;  Use YMODEM protocol
                {now tell remote computer to get ready to receive a file}
       Xsend myfile       ;  Send the file


PUT - Put a character string into the file

     The PUT STRING command tells Envoy to put a character string into the edit
     file at the cursor position.  This command enables you to assign entire
     words or phrases to a single key.  The PUT BYTE command provides an easy
     way to put special characters into the file.

     Syntax
       PUT  BYTE  {number}
       PUT  BYTE  *
       PUT  STRING '{alphanumeric string}'
       PUT  STRING *

     Example
       PUT String  'word'           ; Puts the string into the file
       MACRO 300 # Put String 'REM' ; Press the alt-z key to put REM into the 
                                    ; file


QUIT - Quit Envoy and return to DOS.

     The QUIT command stops program execution and returns you to Dos.  If you
     have made any changes to the current edit file, Envoy will ask you if you
     want to save the file.

     Use the DISCONNECT command if you want to hang up the phone before you quit
     the program.  If you don't, Envoy will not hang up the phone and you will
     be able to restart Envoy later to continue where you left off.

     If you do plan to return to Envoy you might wish to use the DOS command
     to chain to DOS instead of QUITing the program.

     Syntax
       Quit


READ - Read a new text file.

     The Read command reads a new text file.  If the current edit file has been
     changed since the last time you saved it, Envoy will give you the choice of
     saving the current file before reading the new file.

     Syntax
       Read filespec [m,n]
         Where filespec is the name of the file to read and can contain a
         complete directory path.  If you specify the parameters m and n Envoy
         will read in the block of text between line number m and line number
         n in the file.  The defaults for m and n are 1 and 32000.

     Example
       READ  Newtext      ; Read file Newtext
       READ  C:\Mine\New  ; Read file New in directory C:\Mine


REMARK - Write a remark to the screen     

     The REMARK command writes a remark to the screen.  The line is not added to
     the edit file.  The line is written on the next to the last line on the
     screen, which is just above the Envoy information line.  When you use the
     REMARK command in a command file remember to first use the SCREEN CLEAR
     command and to use the SCREEN SHOW command when you are finished.  If you
     don't, the screen display might become confusing.

     Syntax
        REMark

     Example
        Screen Clear                        ; Blank the screen
        REM '' # REM ''#REM ''REM ''        ; Write 4 blank lines
        REM ' Do you want to continue? Y/N' ; Ask a question
        Set String *                        ; Get the answer from the user
        If String 'N'                       ; Exit the command file if the 
          Screen Show                       ; user wants to quit.
          Exit        # Endif               ;


REPEAT - Repeat last find or replace

     The REPEAT command repeats the last find or replace operation.  Search
     options for the operation are not changed.

     Syntax
        REPEat

     Example
        Replace 'BadWord' 'GoodWord'  'UY' ; Replace the next two
                           ; occurrences of the string.  Ignore upper case.
                           ; Replace without asking.
        Repeat             ; Replace the next two occurrences


REPLACE - Replace a Character String

     The REPLACE command finds a character string in the edit file and replaces
     it with another.  You must specify the string which you wish to find, its
     replacement, and search options.

     Options for the REPLACE operation are :
                   B  Search In Block
                   G  Global Search
                   U  Ignore Upper/Lower Case
                   n  Find the n'th occurrence
                   Y  Replace without asking

     If you specify * for the character strings or for the Search option
     string, Envoy will prompt you for this information.

     Syntax
        REPLace '{target}' '{replacement}'  '{option string}'
      OR
        REPLace * * *

          Envoy will prompt you to supply the target string, the replacement
          string and options.

     Example
        Replace 'Bad' 'Good' 'UY' ; Replace the next two occurrences of
                                  ; the string.  Ignore upper case.  Replace
                                  ; without asking.

RETPOS - Return position after entering a line

     RETPOS defines the column to which the cursor goes when you enter a line.
     It is useful in setting margins.  When the RETPOS command is entered the
     tab setting is set to the current position on the line.

     Syntax
       RETPos


SCREEN - Erase or refresh the screen

     The SCREEN command is used to erase or refresh the screen display.  The
     command is useful in a command file which writes messages to the screen
     with the REMARK command.

     Use the SCREEN CLEAR command to erase the screen.  Use the SCREEN SHOW
     command to display the current edit file and the Envoy information line.

     Syntax
       SCreen Clear
          or
       SCreen Show

     Example
        Screen Clear                        ; Blank the screen
        REM '' # REM ''#REM ''REM ''        ; Write 4 blank lines
        REM ' Do you want to continue? Y/N' ; Ask a question
        Set String *                        ; Get the answer from the user
        If String 'N'                       ; Exit the command file if the 
          Screen Show                       ; user wants to quit.
          Exit        # Endif               ;


SEND - Send to the modem

     Use the SEND command to send information to a remote computer or, if your
     modem is in command mode, to control the modem.  The SEND command has
     several options :

     The SEND BLOCK command sends the blocked region of your file to the remote
     computer.  You can use this command to transfer lines to a file on the
     remote computer.

     The SEND BREAK command sends a 'break' signal.  Some network systems require
     a user to send a 'break' signal to start a session or to abort a session
     which is in process.  A user sends a break signal by setting the data port
     line to a low voltage for a while, usually .20 to .50 seconds.  ENVOY uses
     a default duration of .40 seconds which will work on most systems.  You can
     choose another duration if you want to but this should never be necessary.

     The SEND BYTE command sends a single character to the modem.  You can send
     any alphanumeric character or control character.  Specify the ASCII code
     number of the character you wish to send.

     The SEND FILE command sends an entire text file.  Be sure that the remote
     computer is ready before you enter the SEND FILE command.  You can enter
     a file name which includes an entire directory path.

     The SEND STRING command sends a character string to the modem.  If the
     modem is in command mode the string will be treated as a modem command.
     If the modem has made a connection to a remote computer the string will be
     sent to that computer.  The SEND STRING command is used to transmit sends
     alphanumeric characters.  You would usually use the SEND BYTE command to
     send control characters.

     Syntax
       SEND  BLOCK
       SEND  BREAK {duration}
       SEND  BYTE  {number}
       SEND  FILE  {filespec}
       SEND  STRING '{alphanumeric string}'

     Example
       ON           ;  Enter terminal mode
       Send Break   ;  Send a break signal
       Pause 1.5    ;  Wait 1.5 seconds
       Send Break   ;  Send another break signal

       Wait String "Enter your password:" 30 ; Wait 30 seconds for the enquiry
       SEND String "MyWord"                  ; Log on


SET - Set one of the Envoy control parameters

     The SET command sets the value of one of the Envoy control strings or the
     Envoy counter.  You can set the modem dial prefix, the phone number which
     will be dialed by the DIAL command, the internal control string which is
     tested by the IF command, or the internal Envoy counter which can also be
     tested by the IF command.

     Syntax

       SET Prefix '{string}'  This is the command string which tells your modem
                              to dial a number(see DIAL command).

       SET Number '{string}'  Tell Envoy what phone number to Dial(see
                              DIAL command).

       SET String '{string}'  Defines the character string which will be tested
                              by the IF command.

       Set Count n            Defines the value of the Envoy internal counter
                              is tested by the IF command.

       For any of these commands, if you enter the '*' character Envoy will
       prompt you for the value.

     Example
       Set Prefix  "AT DP"    ; ATtention Dial Pulse Tells a Hayes compatible
                              ; modem to dial a phone number
       Set Number '123-4567'  ; Set phone number for the DIAL command
       SET String 'OK'        ; Wait 30 seconds for the enquiry
       Set String *           ; Envoy will prompt you for the value
       Set Count 1            ; Initialize counter


STRIP - Strip eighth bit from received characters

     You might occasionally have to communicate with a system which changes the
     parity setting during log in.  This can be frustrating because you must
     re-enter the PARITY command quickly or you will lose characters. The STRIP
     command can help in this situation.  You should set your communications
     protocol to 8 data bits with no parity bit before entering the STRIP
     command. STRIP ON tells Envoy to mask the eighth bit of every character it
     receives.

     The STRIP setting has no effect during binary file transfer.  

     Syntax
       STRip ON|OFF
         Masks the eighth bit of received data.

     Example
       DATA 8
       PARITY NONE
       STRIP  ON

STOP - Set the number of stop bits for serial communications

     Every byte which is sent through a serial port is converted to a stream
     of bits.  First a start bit is sent to tell the connected equipment that
     a byte is being sent.  Next the data bits are sent, possibly followed by
     a parity bit.  Finally, one or two stop bits tell the connected equipment
     that the transmission of the byte is complete.

     The STOP command tells Envoy how many(one or two) stop bits to use.  The
     Envoy default setting is to use one stop bit, which is the most common
     convention .


     Syntax
       STop   1 | 2

     Example
       Stop 2      ;  Use two stop bits
       Stop 1      ;  Reset the number of stop bits to the default


TABS - Set tab markers

     The TABS command sets the column to which the cursor will move when you
     press the tab-right or tab-left key.  Five tabs are available.

     The default setting for the tabs are:
             TABS[1] = 1        TABS[2] = 40       TABS[3] = 80
             TABS[4] = 255      TABS[5] = 255

     Syntax
       Tabs index setting
          Where index is the index number of the tab to be set and
          setting is the new tab setting.

     Example
       TABS 2 6     ;  Set the second tab to column six
       TABS 3 10    ;  Set the third tab to column ten


UNblock - Unblock region

     The UNBLOCK command removes any block markings which you set with the BLOCK
     command.  The text in the block is not changed.

     Example
       UNBLOCK    ;  Remove block marks


WAIT - Wait for something to happen

     Use the WAIT command to wait until some condition is satisfied.  The WAIT
     command has several options :

     The WAIT CONNECT command tells Envoy to wait for a Carrier detect signal
     from the modem, which indicates that a connection to a remote computer has
     been made.

     The WAIT KEY command tells Envoy to wait until you press a keyboard key.
     Use the WAIT KEY command file to give yourself time to think after writing
     a message from a command file with the REMARK command.

     The WAIT QUIET command tells Envoy to wait until the line has been quiet
     -no characters have been sent- for a while.

     The WAIT STRING command tells Envoy to wait for a string of characters to
     be transmitted from the remote computer.  The string of characters must be
     enclosed in single quotes.  The second parameter on the line is the
     number of seconds to wait for the string of characters.  If you do not
     enter the second parameter Envoy will wait for up to 10 seconds for the
     character string to be sent.

     The WAIT UNTIL command tells Envoy to wait until a set time is reached.
     This command is useful because many bulletin boards are busy during the
     daytime.  You can use the WAIT UNTIL command to log onto a remote computer
     and download files in the middle of the night when the system isn't busy
     and telephone rates are cheaper.  Specify the time setting for the
     WAIT UNTIL command in the form HH MM.  The time is specified using 24
     hour notation so that 9:30 PM is written as 21 30 .

     You can test the result of the WAIT commands with the IF FOUND command.
     FOUND is true if the condition you were  WAITing for was satisfied.  FOUND
     is false if the the WAIT timed out without the condition being satisfied or
     if you pressed the alt-X key to abort the WAIT.

     Syntax
       WAit  Connect   {waittime}
       WAit  Key       {waittime}
       WAit  Connect   {waittime}
       WAit  String    {waittime}
       WAit  Until      hh mm

     Example
       Wait Until 23 30                       : Wait until 11:30 PM
       Dial                                   ; Call the remote computer
       Wait String "Enter your password:"  30 ; Wait 30 seconds for the message
       If found  
        Send String "MyWord"                  ; Log on
       Else 
        Exit
       Endif


WRAP - Wrap around the output of the serial port

     The WRAP command is only useful for testing the computer hardware.  It is
     not used for a normal setup.

     The WRAP command connects the output of a serial port to the input of the
     same port.  Characters sent to the port are not transmitted to the modem.
     Instead, they circle around and are received by the serial port just as if
     they had been sent from a remote computer.

     Use the wrap command if you suspect that you have a problem with your
     hardware.

     Syntax
       WRAp  ON|OFF
          WRAP ON wraps the output of the serial port.  WRAP OFF resets the
          option to normal

     Example
       COM 1                           ; Com 1 is installed
       ON                              ; Go Online
       Wrap  On                        ; Wrap output
       SEND STRING 'Do you see this?'  ; If the string is echoed to the
                                       ; screen the serial port is OK.
       Wrap Off                        ; Return to normal


WRITE - Write edit file to disk.

     The WRITE command writes the entire edit file to a disk file.  The file
     specification can include a full directory path.  If the file you name
     already exists Envoy will ask you before overwriting the old file.

     When you read a file or write a file to disk, Envoy remembers the name of
     the file and displays it on the information line.  If you enter the WRITE
     command without giving a file name, Envoy will use the last file name which
     you entered as a default.  This saves you the trouble of having to type in
     the file name and prevents problems caused by typographical errors.

     Syntax
       WRIte filespec
          Where filespec is the name of the file to be written and can include
          a full directory path.  If filespec is omitted the current file name
          is used.

     Example
       READ  C:\Mine\Manual.Txt
          {edit the file}
       WRITE                            ; Write blocked region to file.
       WRITE C:\Mine\Save\Backup02.Txt  ; Save another copy of the file


XSEND - Send a file to a remote computer

     Envoy can send files to a remote computer using the XMODEM or YMODEM
     protocols.  Envoy automatically recognizes which variant of these protocols
     is being used by the remote computer.

     Before entering the XSEND command you must tell the remote computer to send
     the file and select the protocol.  Tell the remote computer to use YMODEM
     or to use XMODEM with CRC.  If neither of these protocols is available,
     tell the remote computer to use XMODEM with Checksum error checking.

     Syntax
       XSend filespec
         Where filespec is the name of file which will be created and can
         include a complete path

     Example
       XSend C:Games/Arcade.exe  ; Send file Arcade.Exe in directory Games


XGET - Receive a file from a remote computer

     Envoy will receive files from a remote computer sent with the XMODEM or
     YMODEM protocols.  Envoy automatically recognizes which variant of these
     protocols is being used.

     Before entering the XGET command you must tell the remote computer to send
     the file and select the protocol.  Tell the remote computer to use YMODEM
     or to use XMODEM with CRC.  Usually file transfer is quicker if you use 1
     Kilobyte(rather than 128 byte) data packets.  Do not choose 1 Kilobyte data
     packets if there is noise on the line because retransmitting bad packets
     will take too much time.

     Syntax
       XGet filespec
         Where filespec is the name of file which will be created and can
         include a complete path

     Example
       XGET C:Games/Arcade.exe  ; Receive file Arcade.Exe in directory Games

      






                            7  CHARACTER CODES AND SCAN CODES

    A character code relates a character set (e.g. 'a','b'...) to the binary
representation used by the computer.  This subject can be confusing because
there are several incompatible character codes.

    The ASCII character set is shown in Table 7.1.  The ASCII set is a standard
way of representing alphanumeric and computer control characters.

    IBM compatible computers use 256 display codes based on the ASCII character
set.  The IBM display codes define what you see on the CRT screen when you write
a character.  The first 128 characters of the IBM set are loosely based on the
ASCII set.  The second 128 characters were chosen by IBM and be interpreted
differently by non-IBM hardware, such as your printer.  This is why you
sometimes see garbage when you print your screen display.

     IBM compatible computers also use a keyboard character set which defines
what number is generated when you press a keyboard key.  The first 128 codes are
based on the ASCII character set.  Table 7.2 shows the first 128 keyboard scan
codes.

     The IBM extended keyboard character set includes the Function keys, the Alt
keys, etc.  ENVOY uses a character set based on the IBM character set.  The
ENVOY extended codes are formed by adding 256 to the scan codes for the IBM
extended character set.  Table 7.3 shows the extended keyboard set used by
ENVOY.

     You should use keys from the extended character set when you define ENVOY
MACROs.  If you use a key which generates one of the ASCII codes in the range
0 to 127 you will not be able to send that code to a remote computer.








                                   Table 7.1

                            ASCII Character Codes


--------------------------------------------------------------------------------
| ASCII Character  |  ASCII Character  |  ASCII Character  |  ASCII Character  |
| Value            |  Value            |  Value            |  Value            |
--------------------------------------------------------------------------------
|    0     NUL     |    32   (space)   |    64      @      |    96      `      |
|    1     SOH     |    33      !      |    65      A      |    97      a      |
|    2     STX     |    34      "      |    66      B      |    98      c      |
|    3     ETX     |    35      #      |    67      C      |    99      c      |
|    4     EOT     |    36      $      |    68      D      |   100      d      |
|    5     ENQ     |    37      %      |    69      E      |   101      e      |
|    6     ACK     |    38      %      |    70      F      |   102      f      |
|    7     BEL     |    39      '      |    71      G      |   103      g      |
|    8     BS      |    40      (      |    72      H      |   104      h      |
|    9     HT      |    41      )      |    73      I      |   105      i      |
|   10     LF      |    42      *      |    74      J      |   106      j      |
|   11     VT      |    43      +      |    75      K      |   107      k      |
|   12     FF      |    44      ,      |    76      L      |   108      l      |
|   13     CR      |    45      -      |    77      M      |   109      m      |
|   14     SO      |    46      .      |    78      N      |   110      n      |
|   15     SI      |    47      /      |    79      O      |   111      o      |
|   16     DLE     |    48      0      |    80      P      |   112      p      |
|   17     DC1     |    49      1      |    81      Q      |   113      q      |
|   18     DC2     |    50      2      |    82      R      |   114      r      |
|   19     DC3     |    51      3      |    83      S      |   115      s      |
|   20     DC4     |    52      4      |    84      T      |   116      t      |
|   21     NAK     |    53      5      |    85      U      |   117      u      |
|   22     SYN     |    54      6      |    86      V      |   118      v      |
|   23     ETB     |    55      7      |    87      W      |   119      w      |
|   24     CAN     |    56      8      |    88      X      |   120      x      |
|   25     EM      |    57      9      |    89      Y      |   121      y      |
|   26     SUB     |    58      :      |    90      Z      |   122      z      |
|   27     ESC     |    59      ;      |    91      [      |   123      {      |
|   28     FS      |    60      <      |    92      \      |   124      |      |
|   29     GS      |    61      =      |    93      ]      |   125      }      |
|   30     RS      |    62      >      |    94      ^      |   126      ~      |
|   31     US      |    63      ?      |    95      _      |   127            |
--------------------------------------------------------------------------------








                                   Table 7.2


                            IBM Keyboard Scan Codes
                                    (0-127)

--------------------------------------------------------------------------------
| Keyboard   Code  |  Keyboard   Code  |  Keyboard   Code  |  KeyBoard   Code  |
|   Key            |    Key            |    Key            |    Key            |
--------------------------------------------------------------------------------
|  (none)       0  |   SpaceBar    32  |     @         64  |     `         96  |
|   c-a         1  |     !         33  |     A         65  |     a         97  |
|   c-b         2  |     "         34  |     B         66  |     c         98  |
|   c-c         3  |     #         35  |     C         67  |     c         99  |
|   c-d         4  |     $         36  |     D         68  |     d        100  |
|   c-e         5  |     %         37  |     E         69  |     e        101  |
|   c-f         6  |     %         38  |     F         70  |     f        102  |
|   c-g         7  |     '         39  |     G         71  |     g        103  |
|   c-h         8  |     (         40  |     H         72  |     h        104  |
|   c-i         9  |     )         41  |     I         73  |     i        105  |
|   c-j        10  |     *         42  |     J         74  |     j        106  |
|   c-k        11  |     +         43  |     K         75  |     k        107  |
|   c-l        12  |     ,         44  |     L         76  |     l        108  |
|   c-m        13  |     -         45  |     M         77  |     m        109  |
|   c-n        14  |     .         46  |     N         78  |     n        110  |
|   c-o        15  |     /         47  |     O         79  |     o        111  |
|   c-p        16  |     0         48  |     P         80  |     p        112  |
|   c-q        17  |     1         49  |     Q         81  |     q        113  |
|   c-r        18  |     2         50  |     R         82  |     r        114  |
|   c-s        19  |     3         51  |     S         83  |     s        115  |
|   c-t        20  |     4         52  |     T         84  |     t        116  |
|   c-u        21  |     5         53  |     U         85  |     u        117  |
|   c-v        22  |     6         54  |     V         86  |     v        118  |
|   c-w        23  |     7         55  |     W         87  |     w        119  |
|   c-x        24  |     8         56  |     X         88  |     x        120  |
|   c-y        25  |     9         57  |     Y         89  |     y        121  |
|   c-z        26  |     :         58  |     Z         90  |     z        122  |
| Escape       27  |     ;         59  |     [         91  |     {        123  |
| (none)       28  |     <         60  |     \         92  |     |        124  |
| (none)       29  |     =         61  |     ]         93  |     }        125  |
| (none)       30  |     >         62  |     ^         94  |     ~        126  |
| (none)       31  |     ?         63  |     _         95  |   (none)     127  |
--------------------------------------------------------------------------------




                                   Table 7.3


                       IBM Extended Keyboard Scan Codes
                                  (256-388)


--------------------------------------------------------------------------------
|    Keyboard      Scan  |      Keyboard      Scan  |     Keyboard        Scan |
|      Key         Code  |        Key         Code  |       Key           Code |
--------------------------------------------------------------------------------
|                  256   |      alt-x         301   |         S-F7        346  |
|                  257   |      alt-c         302   |         S-F8        347  |
|                  258   |      alt-v         303   |         S-F9        348  |
|                  259   |      alt-b         304   |         S-F10       349  |
|                  260   |      alt-b         305   |         c-F1        350  |
|                  261   |      alt-n         306   |         c-F2        351  |
|                  262   |      alt-m         307   |         c-F3        352  |
|                  263   |                    308   |         c-F4        353  |
|                  264   |                    309   |         c-F5        354  |
|                  265   |                    310   |         c-F6        355  |
|                  266   |                    311   |         c-F7        356  |
|                  267   |                    312   |         c-F8        357  |
|                  268   |                    313   |         c-F9        358  |
|                  269   |                    314   |         c-F10       359  |
|                  270   |      F1            315   |         a-F1        360  |
|     TabLeft      271   |      F2            316   |         a-F2        361  |
|      alt-q       272   |      F3            317   |         a-F3        362  |
|      alt-w       273   |      F4            318   |         a-F4        363  |
|      alt-e       274   |      F5            319   |         a-F5        364  |
|      alt-r       275   |      F6            320   |         a-F6        365  |
|      alt-t       276   |      F7            321   |         a-F7        366  |
|      alt-y       277   |      F8            322   |         a-F8        367  |
|      alt-u       278   |      F9            323   |         a-F9        368  |
|      alt-i       279   |      F10           324   |         a-F10       369  |
|      alt-o       280   |                    325   |         PrtSc       370  |
|      alt-p       281   |                    326   |     c-LeftArrow     371  |
|                  282   |      Home          327   |     c-RightArrow    372  |
|                  283   |     UpArrow        328   |         c-End       373  |
|                  284   |      PgUp          329   |         c-PgDn      374  |
|                  285   |                    330   |         c-Home      375  |
|      alt-a       286   |    LeftArrow       331   |         alt-1       376  |
|      alt-s       287   |                    332   |         alt-2       377  |
|      alt-d       288   |   RightArrow       333   |         alt-3       378  |
|      alt-f       289   |                    334   |         alt-4       379  |
|      alt-g       290   |      End           335   |         alt-5       380  |
|      alt-h       291   |    DownArrow       336   |         alt-6       381  |
|      alt-j       292   |      PgDn          337   |         alt-7       382  |
|      alt-k       293   |      Ins           338   |         alt-8       383  |
|      alt-l       294   |      Del           339   |         alt-9       384  |
|                  295   |      S-F1          340   |         alt--       385  |
|                  296   |      S-F2          341   |         alt-=       387  |
|                  297   |      S-F3          342   |         c-PgUp      388  |
|                  298   |      S-F4          343   |          F11        389  |
|                  299   |      S-F5          344   |          F12        390  |
|    alt-z         300   |      S-F6          345   |                          |
--------------------------------------------------------------------------------









                            7  REGISTRATION INFORMATION






Private Use

ENVOY is being distributed as shareware.  You may use the program without charge
while you decide if it is useful to you.  If you find it useful you should
register as an ENVOY user.

Registration is not required for clubs or user groups distributing the software
on a SHAREWARE basis, providing that the entire ENVOY program package with
accompanying documentation files is included in the distribution, and no more
than a nominal fee (not to exceed $10) is charged for such distribution.


Corporate and Governmental Site License

This is a license for use of the software within your company or goverment
agency, and is not transferable.  This allows internal use and copying of the
software for as many sites / computers as contracted for.  Distributing,
repackaging, or reselling of the software to third parties is not allowed.


Source Code

The source code for the ENVOY program is available for a fee.  You may modify
the source code to build a custom version of the ENVOY code for your own use.
You may not distribute the source code or any modified version of the ENVOY
code.










                    ENVOY COMMUNICATIONS PROGRAM




                     SINGLE USER REGISTRATION

    Registration, program disk and documentation........... $40     _______



                        SITE LICENSE RATES

    Site license for the use of ENVOY
    (Includes one diskette with program disk & documentation.)

    2 to  24 computers ..... at $35 each    # computers ___x $35    _______

   25 to  49 computers ..... at $25 each    # computers ___x $25    _______

   50 to  99 computers ..... at $20 each    # computers ___x $20    _______

  100 or more computers .... $2000 one time fee                     _______

Diskette format (choose one)   5.25" disk ____    3.5" disk ____

Extra program disk & documentation at $10.00 each.      ___x $10    _______



                     SOURCE CODE

         C Language Source...................................$150   _______

         Pascal Language Source..............................$150   _______

         Source code in both C and Pascal....................$200   _______
---------------------------------------------------------------------------

                                                            TOTAL   _______



                  Mail payment to :

                    North Granby Software
                    60 Mountain Road
                    North Granby, CT
                    06060

