Dec 092017
Wattcp talk client/server for MS-DOS. Works with Unix talk and others.
File TALK-12.ZIP from The Programmer’s Corner in
Category Information about the Internet from the early 1990’s
Wattcp talk client/server for MS-DOS. Works with Unix talk and others.
File Name File Size Zip Size Zip Type
COPYING 15411 5634 deflated
MAKEFILE 604 294 deflated
TALK.C 27247 7799 deflated
TALK.DOC 11627 4344 deflated
TALK.EXE 43334 25948 deflated
TPCREAD.ME 199 165 deflated
WATTCP.CFG 1367 636 deflated

Download File TALK-12.ZIP Here

Contents of the TALK.DOC file

Talk Version 1.2 11. Jan 1994

This is a simple talk client/server for MS-DOS. Talk's main features

o Talk from PC to Unix host or to another PC running talk
o Wait for incoming invitations
o Answer mode to reply to talk requests while you are absent.
o Two display modes, single screen and split screen (like Unix talk)
o Define aliases for frequently used addresses
o Log talk sessions to a file

Talk is built upon the WATTCP library and runs directly over a packet
driver. It is a standalone application and does not run simultaneously
with most other tcp/ip software like NCSA, CUTCP, and Trumpet WinSock.
It runs, reportedly, together with IPX (using IPXPKT).

The program (executable and source code) is provided under the terms
of the GNU General Public License. It may be used and distributed
freely. There is absolutely NO WARRANTY. See the file COPYING for

Comments, suggestions, improvements are welcome.

Michael Ringe
Institut fuer Theoretische Physik
RWTH Aachen, Germany
[email protected]


Version 1.2
o Improved error and time out checks
o Fixed debugging code
o Allow environment variables in wattcp.cfg
o Added auto answer mode
o Added log file

Version 1.1
o Added edit keys (erase char, erase word, kill line)
o Added aliases
o Added help screen
o Display the current time in the status line
o Allow different color sets in WATTCP.CFG for single window and
split screen mode
o Alt-S toggles between single window and split screen mode

Version 1.0
o Initial version


To run talk you need two files:

talk.exe - The executable file
wattcp.cfg - The configuration file for the WATTCP library.

Wattcp.cfg may reside in the current directory, in the same directory as
talk.exe, or in the directory specified by the environment variable
WATTCP.CFG. If you don't use any other WATTCP applications, edit the
wattcp.cfg which comes with talk and fill in the necessary information.
If you already have a wattcp.cfg, you should use that. In this case you
may want to add some entries.

Refer to the CONFIGURATION section below for more details about
wattcp.cfg settings.


There are three ways of starting talk:

1) To begin a talk session with another user, enter

talk [-l] @
talk [-l]

where is an alias name defined in wattcp.cfg (see
CONFIGURATION below). If the user is logged in, talk will print
a message and wait for the remote user to reply. may be a
domain name or an IP address.

-l enables the log file (se below).

2) If invoked without arguments, talk waits for incoming talk requests.
Any invitation will be accepted regardless of user and terminal
name. Since there is not much you can do with your PC while talk is
waiting, this option is not very useful under MS-DOS.

3) Starting talk with

talk -a

makes talk operate as an answering machine. Talk will ask you for
a message which will be presented to any user who tries to talk
to your PC. The message can be up to 10 lines long. A line
containing a single dot in the first column ends the message.
To use the default message, just press enter on the first line.

Otherwise, talk runs as under 2) with two differences:
- the log file (see below) is automatically enabled,
- talk does not exit after a connection is closed, but waits
for the next invitation.

During a talk session, you may press ESC to close the connection, or
F1 to display a help screen.

Alt-S switches between the two display modes, single window and split
screen. In split screen mode local and remote text is displayed in
separate windows, as in the Unix talk. In single window mode all text
is written into one window.

The talk protocol defines three edit keys which can be used during a
talk session:

Edit key Corresponding PC key(s) Meaning
-------- ------------------------- --------------------------
ERASE Del, BS, Left Delete the last character
WERASE Ctrl-W, Ctrl-Left Delete the last word
KILL Ctrl-U Clear the current line

Note that these edit keys may have strange effects in single window
mode, because they do not distinguish between local and remote text.

Pressing Alt-L toggles the log file. When the log file is enabled, an
`L' appears in the status line and the text on the screen is logged into
a file. The log file name is `talk.log' by default but may be changed to
any name (see CONFIGURATION below).


Talk recognizes the following entries in wattcp.cfg:

Sets your local username. If you talk to another user, he/she
will be notified with a message containig this name. This
setting has no effect if the talk was initiated by the remote
user, because talk will always assume the requested user id.

Sets the initial display mode. "split" selects split screen
mode, any other value selects single window mode (default).

Screen colors. The value must consist of exactly 5 hex numbers
(2 digits each), specifying the screen attributes for local
window (LL), remote window (RR), status line (SS), local name
on status line (ll) and remote name on status line (rr).

You may specify a second color set, which must be in the same
format and separated by exactly one character from the first
set. In this case, the first set applies to single window mode,
while the second set is used in split screen mode.

talk_alias="alias:[email protected]"
This defines an alias for [email protected] With this definition,
`talk alias' becomes equivalent to `talk [email protected]'. You may
specify an arbitrary number of aliases.

Specifies the name of the log file. Default is `talk.log'.

talk_message="%s is not here. Try again later, or leave a message."
Sets the default message for auto answer (-a) mode. This option
can be repeated to allow multiple line messages (up to 10
lines). `%s' may ocur once on each line and will be replaced by
the local user name.

Talk can read any of the above parameters from an environment variable.
If the value specified in wattcp.cfg starts with a `$', the rest of the
argument is interpreted as an environment variable name and the value is
read from this variable. This may be useful when there is only one
wattcp.cfg shared by many users. Note that the above mechanism applies
ONLY to the settings listed above, not to the other definitions in
wattcp.cfg. Note also that there is an include statement for wattcp.cfg
which allows to include user-specific configuration files.


Here is a short explanation of some messages you may get from talk:

Your party is not logged on
The person you want to talk to is currently not logged on, or
does not exist on the specified machine. Check if you spelled
the user name correctly.

Your party is refusing messages
The person you want to talk to has disabled messages. To be able
to receive talk requests, messages must be enabled. On most Unix
systems this is done with the command `mesg y'.

Target machine does not recognize us
The talk daemon on the target machine was not able to map your
PC's IP address to a host name. Your PC is probably not
registered in the official nameserver for your domain.

Target machine is too confused to talk with us
The remote talk daemon failed to process our request for some
unspecified reason. This error may also occur if the network
connection is very bad.

ICMP: Port Unreachable
The target machine has disabled talk or it runs an old version
of the talk protocol.

No response from target host, giving up
The remote talk daemon does not respond to your request. This
may be caused by bad network connections.

Error: Cannot open connection.
This is a either a network problem (try to connect to the same
host via ftp or telnet), or your PC is incorrectly configured
(check your wattcp.cfg settings).


o Supports only the new version of the talk protocol, using port 518
(vs. 517 in old versions). You will not be able to talk to a machine
running an old implementation of talk (many SUNs still do).

o Talk is not a real talk daemon because it does not run in the
background. There should be a small TSR programm looking for
incoming invitations.

o The remote host, if it is a Unix machine, must know about your PC's
name. The remote talkd will try to map your IP address to a domain
name and refuse to process your request if this fails. If you get the
message "Target machine does not recognize us", contact your local
network administrator to have your PC registered on an official name

o Only 80x25 video mode supported.

o Talk is a standalone application and does not coexist with most other
networking software. There is no support for other protocol stacks
like Winsock or PC/TCP.

o Talk should display the remote host name instead of its IP address.
Any volunteers for writing gethostbyaddr()?

o No possibility to talk to a specific tty if a user is logged in on
more than one terminal.

o Should ring again if the remote user does not respond.


In order to build talk from the source code you need the WATTCP library,
which is available via anonymous ftp from Place talk.c
into the `apps' directory or into a separate directory so that
#include "..\include\tcp.h" works.

The distributed executable was compiled with Borland C++ 3.1 and linked
with the small model library (WATTCPSM.LIB).

In order to compile correctly with BC 3.1, the file pctcp.c requires a
patch. Change line 946 in function udp_handler() from

s->myaddr = intel( ip->destination );
s->myaddr = temp;

Otherwise, talk will not work! This note applies to the wattcp
library which is currently available at

135887 Sep 30 14:27

 December 9, 2017  Add comments

Leave a Reply