PROTO(I)                        7/4/75                        PROTO(I)        

NAME
	proto - generate a protocol file

SYNOPSIS
	proto [outfile] [cmnd [arg1 ... argn]]

DESCRIPTION

	Proto is a program that records the entire conversation appearing
	on one's terminal (both input & output) on some specified disk
	file. Use as follows:

	  "Outfile", if specified, begins with a "+" or "-". If it is just
	  that character, the default name "protocol" is assumed; otherwise,
	  the name immediately following the character is used. A "-" means
	  to create the file; a "+" will add on to the end of the file (it
	  must already exist). Examples: + - +name -name. In the normal case,
	  this arg is omitted, defaulting to creating a file "protocol"
	  (equivalent to the "-" option).

	  If no cmnd is specified, proto will generate a new shell for the
	  user to talk to; otherwise, proto runs the specified command only.

	Proto continues to record until the program being run exits (if a
	cmnd was specified) or the user types CTRL-D. Note that due to
	the present implementation of pipes, a single CTRL-D acts like an
	infinite number of them.

NOTE
	Built into the protocoller ("to protocol" means to generate a
	protocol, i.e. "he protocols", "we will have protocolled", etc.)
	is a scrolling facility to look through the file keeping the
	(being generated) protocol. Thus, one can effectively look at
	what has just rolled off the top of the screen or review any part
	of the session being protocolled.

	To enter scroll mode, type <PUT><RETURN>; to leave, type <PUT>.
	When entered, the scroller prints the current size of the file
	and then displays its last page. See LA(I) for more details.

FILES
	Protocol        Default for outfile
		*** Caution: protocol files may grow large! ***

SEE ALSO
	la(I)           For explanation of scroll commands

DIAGNOSTICS
	mainly self-explanatory.

	All sessions should start with a [starting protocol] and end with
	a [ending protocol] message; otherwise, do a ps & kill the mess!
	A [end??] message means the user typed CTRL-D but the program
	running didn't finish in 15 seconds. You should kill it if necessary.
	A (warning! scroller exit) means the program died will proto was
	in scroll mode and is harmless.

BUGS
	Due to Unix design of pipes and the stty(II) call, the following
	inconveniences are pretty much unavoidable: 1) the CTRL-D problem
	mentioned above; 2) the program being run cannot perform an
	stty. Thus, for any program running in, say, raw mode, the
	appropriate terminal mode must be set prior to starting up proto;
	3) programs using ttyn(II) such as ps(I) will not work quite right.

AUTHOR
	Bob Greenberg [bobg]
