-------------------------------------------------------------------------------
TALK4 :

To compile, issue the command :
	% make

	- NOTE : this program uses the Unix <curses.h> library.  Without
	  this screen managing facility, this program will not compile.

Once compiled, there should be two executable programs : invite* and talk4*
(the * is to denote executable files, ie. when using ls -F command).  To 
use the talk4 program, there should be one person incharge of issuing the
invitation and the rest of the people (1 to 3 others) will respond.  Using
this scenario, the person issuing the invitation will be called master, and
the others slaves.  

To issue the invitation, the master must run the invite* program.  The usage
is :
	% invite slave1@machine1 slave2@machine2 slave3@machine3

The slaves use the talk4* program to reply to the master, using :
	% talk4 master@his_machine

IMPORTANT :
Since the program uses the standard talk daemons on machines, the invitation
to talk will look like the standard talk message, ie. 
	talk : talk requested by master@his_machine reply using talk master...
When this is seen, use the talk4 reply, not the regular talk.  In order
to avoid confusion, predetermine conference times.

Note the following conventions :
	- the addres user@machine follows the standard talk procedures
	- the program may be used for multiple people on the same
    	  machine, in which case the @machine part may be omitted
	- ttyp handling is beyond the program's capabilities, ie.
	  the program will not handle calls such as :
		% invite myself ttyp4 myself ttyp7

Features :
	- variable screen dimensions are allowed.
	- issuing a "ZZ" sequence on a new line will clear your screen
	  on all other users' screens, but not your own.
	- issuing a "\\" sequence will terminate all other users' 
	  sessions but not own.  To exit after that, issue a ^C.


Further notes :

Pictorially, the commands are :

                             +--------+
                             |slave1@ |
                             |machine1|
                             +--------+
                                 | talk4 master@his_machine
                                 |
                                 |
         +--------------------------------------+
         |                       |              |
         |   +-----------+       |              |            +--------+
         |   |master@    | invite user1@machine1|            |slave2@ |
         |   |his_machine|------- user2@machine2|------------|machine2|
         |   +-----------+       |user3@machine3|            +--------+
         +--------------------------------------+      talk4 master@his_machine
                                 | 
                                 | talk4 master@his_machine
                                 |               
                             +--------+
                             |slave3@ |
                             |machine3|
                             +--------+

For technical notes, refer to the following source code files :

	master_talk.c
	init_disp.c
	io.c
	slave_talk.c
	talk.h

All other files are standard talk files as obtained from the source mentioned
in the DISCLAIMER. 

How it works (basically) :

The central site, ie. the master, runs the whole show.  The master sets up
standard talk channels to each user.  That is, the master users normal talk
programs to communicate one-to-one to each slave.  When the master receives
some data, it calculates appropriate places to place the data on each of
the slaves screens, and sends the data to a general socket.  All slaves
read the general socket, take the data, and put it in the appropriate 
window in their displays.  The master acts like a distributor, talking to
each user alternatively, and then redistributing the individual messages
to all users.

For the most part, the program uses standard talk routines for the bulk of
the communication work.  It uses the standard talk daemon.


