CHAT version 1.0c

a multi-user chat program for Novell Netware.

Copyright 1992 - 1994 Kevin Vigor

USER MANUAL


Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  1
     What is Chat? . . . . . . . . . . . . . . . . . . . . . . . . . . .  1
     System requirements . . . . . . . . . . . . . . . . . . . . . . . .  1
     Technical Support . . . . . . . . . . . . . . . . . . . . . . . . .  1
     Legalisms . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  2
     Registering Chat. . . . . . . . . . . . . . . . . . . . . . . . . .  2

Installing Chat. . . . . . . . . . . . . . . . . . . . . . . . . . . . .  3
     Copying files . . . . . . . . . . . . . . . . . . . . . . . . . . .  3

Using Chat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  4
     Windows, Menus and Dialog Boxes . . . . . . . . . . . . . . . . . .  4
     Sending a Message . . . . . . . . . . . . . . . . . . . . . . . . .  7
     Channels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  7
     Advanced features . . . . . . . . . . . . . . . . . . . . . . . . .  8

Configuring Chat . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
     Aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
     Excluding networks. . . . . . . . . . . . . . . . . . . . . . . . . 10

Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Introduction

What is Chat?

Chat is a program to allow people to "chat" across a Novell
network. Messages you enter are broadcast across the network and
anybody who is "listening" will receive the message. Any number
of people attached to the same network can chat. Unlike many such
programs, Chat does not require that all its users be logged into
the same file server; in fact, it is not even required that users
be logged into any file server as long as the IPX protocol is
available and a Novell server is on the network.

System requirements

Chat requires an IBM PC compatible machine running DOS 3.3 or
later (or an OS/2 2.x DOS box), attached to a Novell network.
This version has been tested with Netware 2.15C,  2.2, 3.11, 3.12
and 4.01. Approximately 300 K of free DOS memory is required to
run the program.

Chat will detect DesqView, Windows 3.1 in enhanced mode, or OS/2
2.x and give up timeslices when it is run under any of these
systems, thus keeping the load on the system minimal.

Technical Support

If you have problems or questions about Chat, you can reach me
(the author) via Internet e-mail, Compuserve or US Mail. Internet
mail is preferred as it is checked daily; however, this account
is provided by my employer, so if mail bounces, you can assume
that I no longer have the account. Compuserve mail is checked
approximately once a month, but the account is not going away any
time soon, so use this if all else fails. 

Internet:      kevin@elvis.wicat.com

Compuserve:    72500,3705 
               (NB: Internet users can use
               72500.3705@compuserve.com)

US Mail:       175 O Street
               Salt Lake City, Utah, 84103

Legalisms

Chat is Copyright 1992 - 1994 by Kevin Vigor. You are granted a
thirty day license to use this program in any way you see fit.
After using Chat for thirty days, you must register it as
described below in order to go on using it.

Chat is provided as-is. I believe it to be free of harmful bugs,
but I will not take responsibility for any damage caused by using
this product. I am not a lawyer (obviously), but I hope the
spirit of this paragraph is clear. If Chat formats your hard
drive, I'm very sorry, and  will do my best to fix the bug, but
you're on your own. (There are two lessons to learn here: first,
keep backups!; and second, always test new software on an
isolated system where it cannot damage critical data). 

Note that Chat is not crippled in any way; what you see is what
you get. Registering this program gives you three benefits: one,
a happy conscience; two, the knowledge that you are improving my
domestic life (since my wife believes I've been wasting my time
writing this program); and three, free upgrades to any future
version of this program.
 
And a brief plea; the purpose of shareware is "try before you
buy"; if you cannot get Chat to work for you, or can't live
without some new feature, please do not register the program in
the hopes that this will obligate me to fix your problems. Feel
free to contact me with your complaints or suggestions, and I
will see what I can do about them, but don't send me a penny if
you aren't satisfied! This might seem obvious, but you'd be
surprised how often it happens.

Registering Chat

Chat is licensed on a per-copy basis. Each copy of the program
that is running at one time is considered a separate copy. Thus,
if twenty people use Chat in the morning and fifteen people use
it in the afternoon, twenty copies have been used, even if these
are thirty-five different people. You may make as many copies of
the program as you like, wherever you like, as long as you have
registered for all copies used simultaneously. Once again, I am
not a lawyer; if this paragraph is ambiguous or you have
questions, contact the author. I'll be happy to explain.

To register Chat, send a check in US funds drawn on a US bank,
along with the completed registration form (REGISTER.DOC) to the
author at the address listed under technical support above. If
you live in a country outside the U.S.A. and have difficulty
getting an appropriate check, please contact the author and we'll
see what we can do.

Installing Chat

Copying files

The Chat program consists of two files:

    CHAT.EXE        (the program itself)
    CHATHELP.HLP    (the text of Chat's online help).

Several other files, including this one, are included in the 
distribution, but only these two are required to run the program
(see the file READ.ME for a description of all files in the
distribution).

You need to copy these two files to a place where DOS can find
them. You have two options here:

Use an existing directory: if you already have a directory where
you generally keep utilities, this would be an excellent place to
copy the Chat files. The SYS:PUBLIC directory on your Novell
server would be a fine location.

Create a new directory: if you wish, you can create a separate
directory for the Chat files, and add this directory to your DOS
path. 

I recommend the first method, since it is easier and does not add
to your DOS path.

Note that you can safely rename the CHAT.EXE file to anything you
like (CHAT.EXE is not the most unique name I could have chosen)
but you should not rename the help file.

If you do not know how to perform any of these operations
(copying files, making directories or altering your DOS path),
please consult your DOS manual.

Once you have installed the two Chat files, you may start Chat
simply by typing CHAT at the DOS command prompt.

Using Chat

Windows, Menus and Dialog Boxes

Chat uses Borland's Turbo Vision to provide a CUA-like interface.
This means that the interface uses windows, menus and dialog
boxes to interact with the user (hence the name of this section).
If you are familiar with such interfaces (e.g. Microsoft Windows
or any recent Borland product), you can safely skip this section
and go on to the Sending a Message section below. For those who
are not familiar with this kind of interface, this section will
attempt to provide a brief introduction. It is not meant to be
comprehensive, and will certainly not be the best such
introduction, but should get you  going in Chat. Note that
several of the keyboard commands may seem obscure or downright
stupid, but I am following a widely used (even if obscure and
stupid in places) standard.

Help

At any time, no matter what you are doing, you can press the F1
key for help. You should get a dialog box (see below) with help
pertinent to your current location in the program. Note that it
is a lot of tedious work to make sure that there is help for
every location in the program, and I may have missed some spots.
If you find a place that has no meaningful help message, please
contact me, and I will correct the problem.

Windows

All text in Chat appears in a window. A window is a rectangular
area of the screen, surrounded by a frame. Windows have the
advantage that you can move them on your screen to arrange them
to your satisfaction. If you have a mouse, you can move a window
by clicking the mouse button on the top of the frame, dragging
the window around the screen to its new position, and then
releasing the mouse button. To change the size of the window, you
can click the mouse on the very bottom right corner of the frame,
drag the mouse to the new lower right window corner, and release 
the mouse. If you do not have a mouse, you can press <Control-F5>
to move or resize the window. When you do this, the arrow keys
will move the window, and pressing Shift and an arrow key will
resize the window. Chat will not let you move windows off the
screen, or shrink them below a minimum size.

While there may be many windows on the screen at one time, only
one can be active. You can always tell the active window by its
frame; the active window will have a double-line border, while
all other windows on the screen will have a single-line border.
If you have a mouse, you can select the active window by clicking
in it with the mouse. Otherwise, you can press the F6 key, or
select "Next Window" from the Window menu (see below) to make the
next window active. Repeatedly pressing F6 will allow you to make
any window active.

Any typing you do is sent to the active window; thus, if you want
to enter a message, the Enter window must be the active window. 

Some windows can be closed. For instance, if you do not want to
monitor a channel anymore, you can close the channel window. A
window that can be closed will have a small box on the upper left
of the frame. If you have a mouse, you can close the window by
clicking on this small box. If you do not have a mouse, you may
press <Alt-F3> to close the active window.
 
Menus

Menus provide an easy way to get to commands without memorizing a
vast number of obscure keystrokes. The line across the top of the
Chat screen is known as a menu bar. It contains a list of menus,
each of which contains several commands. When you want to issue a
command on a menu, you will need to select the menu (this is
commonly known as pulling down the menu).

You can select a menu in many ways. If you have a mouse, you may
click on the menu name in the menu bar. Otherwise, you can press
F10 to select the menu bar, use the arrow keys to choose the menu
you want, then press Enter to select the menu. You will also note
that one letter in each menu name is highlighted (for instance,
the F in File is highlighted). You can select a menu by pressing
Alt and the highlighted letter (i.e. <Alt-F> selects the File
menu).

When a menu is selected, a small window containing a list of the 
commands in that menu will appear. You may use the up and down
arrow keys to move through the available commands, and the left
and right arrow keys to select neighboring menus. Pressing F1 for
help will get you a description of the current command. This is a
good way to get a quick feel for what is possible in Chat, or any
program using a similar interface.

When you wish to execute the current command, press the enter key
(or  click the mouse on the command). What happens then depends
on the command you chose; for instance, picking "Quit" from the
File menu will exit the program.

Often, there is a key combination listed to the right of the menu
command (for instance, <Alt-X> appears next to Quit). This is a
quick way of performing the command without pulling down the
menu.
 
The most important "quick key" combinations are listed on the
bottom line of the screen.

Dialog Boxes

Dialog boxes are a special kind of window used for getting you to
make choices. For instance, when you open a new channel, a dialog
box lists all the available channels and asks you to choose one.

Dialog boxes differ from normal windows in two ways: first, a
dialog box is always the active window while it is on screen; and
second, dialog boxes contain buttons.

Dialog boxes are always the active window since the program
cannot continue until you make a decision. Thus, you cannot use
the F6 key to make the next window active, nor can you pull down
a menu. All you can do when a dialog box is on the screen is deal
with that dialog box.

Buttons are small, highlighted words within the dialog box. For 
instance, nearly all dialogs have an "OK" button and a "Cancel"
button. These buttons represent commands much as menu commands
do.

To select a button, you can click on it with the mouse. If you do
not have a mouse, you can press the Tab key to move from one
button or other item in the dialog box to the next, much as F6
moves between windows. When the correct button is current,
pressing Enter selects that button.
 
The Cancel button always discards the dialog box without making
any chances. For instance, if you are selecting a channel to open
and decide you do not want to open one after all, you can select
Cancel. Pressing the ESC key is always the same as selecting
Cancel.

The OK button informs the system you are done, and it should go
ahead. For instance, when you have chosen the channel to open,
selecting OK will open it. 

Dialog boxes may also contain other buttons and fields where you
enter information. It is beyond the scope of this introduction to
describe them all, so remember the F1 key is your friend!

Sending a Message

 To chat with your friends or colleagues, at least two of you
need to start CHAT. Use the Enter window to enter and edit your
message, which may be up to 500 characters long. Once your
message is ready for the world, press <Control-Enter> to send the
message. Note that on large networks (there are 150+ servers on
the network I use for testing) this may take a second or two to
process. Once the message has been sent, it will appear on the
screens of all others running Chat and tuned to your current
channel (see Channels below), and the Enter window will be
cleared.

Channels

Channels allow better control of messages while chatting. A
message is always sent to a particular channel, and only people
listening on that channel will be able to see it.

Channel Types

Chat provides two different types of channels. The most
straightforward is the standard channel. There are ten standard
channels available, and any user can access any of these channels
any time. Private channels are special channels that any user can
create. However, only the person who created the channel and
anyone else (s)he tells about it can access the channel. See
Private Channels in the Advanced Features section for more
details on creating and accessing private channels.

Opening Channels

To view or send on a channel, you must first open it. Channel One
(a standard channel) is automatically opened when Chat starts. To
open additional channels, press <Alt-O>, or select "Open Channel"
from the Channel menu.

When you open a new channel, a window will appear. All messages
sent to that channel appear in the window. You may move and
resize the window (see Windows, Menus and Dialog Boxes above), or
close it. The channel will also become your current channel (see
below).

Closing Channels

If you no longer wish to monitor a channel, you can close it. 
Pressing <Alt-L> or selecting "Close Channel" from the Channel
menu will close the current channel (see below). Note that you
must always keep at least one channel open.

Current Channel

When you enter a message, it is sent to your current channel. You
can always tell what your current channel is by the title of the
Enter window (for instance, when you start, the Enter window is
titled "Enter (Channel One)"). When you open a new channel, it
automatically becomes your current channel. If you want to change
your current channel, use the Open Channel command to select it,
even if it is already open.

Users of previous versions of Chat will note that this is a
change in Chat 1.0. While it takes a little while to get used to
hitting Alt-O to select your current channel, it really does make
the interface simpler.

Advanced features

Private Channels

Any user can create a private channel any time by selecting Make
Private from the Channels menu. You will be prompted for the name
of the new channel, and the channel window will be opened.

Note that the name of the channel is for human uses only. This
means that you can call a channel anything you like, even if
there is already another private channel by that name. For this
reason, you should attempt to use descriptive names that are
likely to be unique for your private channels. Otherwise you may
end up with three open channels, all called "Private".

When you first make a private channel, it will be private indeed.
In fact, only you can access it. This is not particularly useful
(why would you need a computer to talk to yourself?).  In order
to allow other users to use your new private channel, you must
send an announcement to them informing them of the new channel. 

You do this by selecting Announce Private from the Channel menu
(this option is only available when your current channel is a
private channel). You will be given a list of all the logged-on
users (see List Users, below) and asked to select those to send
the announcement to. Those you select will receive a message to
the effect of "Masked_Avenger invites you to join private channel
'Discussion of Anvils'" and will then be able to open the private
channel using the standard Open Channel command.

When you close a private channel, you will lose the ability to
access it until someone invites you back in.

Please note that private channels are not very secure. Any
moderately advanced Novell user with a packet sniffer can easily
eavesdrop on a private channel. Never assume that a private
channel is safe from snoopers.

User List

You can get a list of all people currently using Chat any time by
pressing <Alt-U> or selecting "List Users" from the File menu. 
The Chat program needs to search the network for users when you
do this, which will take a few seconds. You will not be able to
enter messages while Chat is searching the network. 
          
Private Messages

You may send a private message to any other person using Chat by
pressing <Alt-P> or selecting "Private Message" from the file
menu. When you do this, Chat will get a user list, as above.
However, once the list of users appears, you may mark any of the
listed users by clicking on their  name with the mouse or
pressing the space bar. If you then select "OK", you will be
prompted to enter a message. You can enter this message in the
same way as a normal message, and when you are ready to send the 
message, press <Control-Enter> or select "OK". Only users you
marked will receive the message.

This saves the overhead of creating a private channel for one-
off, private messages. Again, these messages are not secure from
network sniffers; you should assume that anyone who cares enough
can intercept a private message.

Inviting a user to Chat

You may invite others to join the chat session using the Novell
"send" mechanism. To invite a user, press <Alt-I>. You will be
presented with a dialog asking you for a user name and server. 

Enter the Novell login name of the person you wish to invite, and
the server (s)he is currently logged into (leave this field blank
for your current server).

If you are not currently attached to the server you specified,
you will be asked to login to that server. Enter any valid
username and password for that server.

Once you are attached to the appropriate server, the invitee will
get a Novell send message similar to "Masked_Avenger invites you
to chat", if they are logged on to the network.

Configuring Chat

Aliases

By default, Chat will use your Novell login name as your user
name within the program. If you are not logged into a server or 
wish to use another name, you can set the DOS environment
variable CHATUSER to your alias before starting Chat. Your alias
should be 48 characters or less in length. For example: 

     SET CHATUSER=Masked Avenger

Excluding networks

Chat will, by default, send messages to all networks known to the 
current server. You may wish to prevent Chat from sending
messages to certain networks (networks on the other side of a
slow WAN link, for instance). To determine the  networks you wish
to exclude, use the Novell SLIST command. All servers known to
the current server will be listed, together with their "Network"
and "Node" addresses. Take note of the network addresses of the
servers you wish to exclude.

Once you have a list of networks you wish to exclude, create a
file called EXCLUDE.CHT using any text editor. This file should
contain a network number per line. If a line of the file contains
anything other than a network number, Chat will print a warning
message on startup. By default, Chat will look for this file in
the directory where CHAT.EXE is located. If you have Chat in a
network directory, this might not be practical, since all users
would then have the same EXCLUDE.CHT. If you want to make a
private EXCLUDE.CHT file, put the file anywhere you please, then
set the environment variable CHATFILES to the drive and directory 
you put the file in. For example: 

     SET CHATFILES = C:\PRIVATE

Note that you will still receive messages from all users, even if
they are on an excluded network. They will not, however, be able
to see your messages.


Acknowledgments

Good people

Thanks to my charming wife, Gina, for putting up with evenings
and weekends spent working on this program. Thanks also to all
those who gave feedback on or registered previous versions of
this program.

Thanks also to IBM for providing the OS/2 operating system, the
finest development environment I have ever had.

Trademarks

Borland and Turbo Vision are trademarks of Borland International.

IBM and OS/2 are registered trademarks of International Business 
Machines Corporation.

Microsoft is a registered trademark, and Windows is a trademark
of  Microsoft Corporation.

Novell and Netware are registered trademarks of Novell, Inc.