[comp.sources.misc] v16i022: ECU async comm package rev 3.0 manual, Part01/03

wht@n4hgf (Warren Tucker) (01/05/91)

Submitted-by: Warren Tucker <wht@n4hgf>
Posting-number: Volume 16, Issue 22
Archive-name: ecuman3/part01

---- Cut Here and feed the following to sh ----
#!/bin/sh
# This is ecuman3, a shell archive (shar 3.46)
# made 12/26/1990 10:30 UTC by wht%n4hgf@gatech.ecu
# Source directory /u1/src/ecu
#
# existing files WILL be overwritten
#
# This is part 1 of a multipart archive                                    
# do not concatenate these parts, unpack them in order with /bin/sh        
#
# This shar contains:
# length  mode       name
# ------ ---------- ------------------------------------------
# 119841 -rw-r--r-- doc/ecu.man
#
if touch 2>&1 | fgrep 'amc' > /dev/null
 then TOUCH=touch
 else TOUCH=true
fi
if test -r _shar_seq_.tmp; then
	echo 'Must unpack archives in sequence!'
	echo Please unpack part `cat _shar_seq_.tmp` next
	exit 1
fi
# ============= doc/ecu.man ==============
if test ! -d 'doc'; then
    echo 'x - creating directory doc'
    mkdir 'doc'
fi
echo 'x - extracting doc/ecu.man (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'doc/ecu.man' &&
X
X
X
X				  - 1 -
X
X
X
X				    ECU	3.00
X
X			    (Extended Call Utility)
X
X
X
X
X
X
X			Personal Communications	Package
X			       for XENIX System	V
X
X
X
X
X
X
X
X
X
X
X
X
X		Warren H. Tucker, III <wht@n4hgf.Mt-Park.GA.US>
X
X
X
X
X
X
X			     Technical Description
X				 Revision 3.00
X				    12/26/90
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				       1
X
X
X
X    1.	Introduction
X
X
X    ECU	(Extended Call Utility)	is a personal communications program for
X    users of SCO UNIX V.3.2/386	and XENIX V on 80286 and 80386 systems.
X    This preliminary document describes	ECU functionality and implementation
X    from a technical point of view.
X
X    ECU	provides the classic terminal communications facility of passing
X    keyboard data to a serial line and incoming	data to	the computer video
X    display.  In addition, a dialing directory,	a function key mapping
X    feature, and session logging are available.
X
X    A very flexible procedure (script) language	is also	incorporated to
X    automate many communications tasks.	 Using shell scripts and ECU
X    procedures,	it is possible to use ECU in an	entirely "unattended"
X    fashion for	batch-style communications sessions.
X
X    ECU	presents to the	host a flexible	"ANSI" terminal	type, accepting	any
X    valid video	control	sequences from MS-DOS or SCO documentation as of
X    late 1990.	It also	fares well, though imperfectly,	with Sun and VT-100
X    in-band video control sequences.  Standards	are great: everybody should
X    have one, especially if they call it "ANSI." For more information, refer
X    to the section below titled	"ANSI Filter."
X
X    The	program	supports almost	any local terminal (console) which can be
X    described in a termcap database entry.  For	more information, refer	to
X    "Supported Terminals."
X
X    ECU	supports numerous file transfer	protocols: as of this writing,
X    XMODEM, XMODEM/CRC,	XMODEM-1K, YMODEM/CRC Batch, ZMODEM/CRC-16,
X    ZMODEM/CRC-32, Kermit and SEAlink are supported.  For more information,
X    refer to the sections describing the individual interactive	and
X    procedure file transfer commands.
X
X    This document is better than that supplied with ECU	2.0, but is still
X    rough in many places.  It attempts to get across to	the inquiring mind
X    how	ECU works.  In places, an understanding	of the UNIX programming
X    model, UNIX, XENIX and UUCP	constructs and asynchronous communications
X    techniques is assumed.  In other places, the document goes into tedious
X    detail about the simplest of concepts.  A great deal of attention has
X    been placed	in accurate and	robust coding of the program.  Perhaps,	time
X    permitting,	one day	I can say the same for this document.
X
X
X
X
X
X
X
X
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				       2
X
X
X
X    2.	Basic Organization
X
X
X    ECU	forks to run as	two separate processes,	a transmitter (XMTR) and a
X    receiver (RCVR).  The two processes	communicate via	signals	and a System
X    V shared memory segment.  XMTR controls RCVR and terminates	it under
X    certain circumstances, called here auxiliary operations.  After an
X    auxiliary operation	completes, XMTR	forks again to recreate	RCVR.
X
X
X    2.1	 Transmitter Process (XMTR)
X
X
X    XMTR accepts user input from the computer keyboard;	input is recognized
X    as belonging to one	of two types: 1) transmit data and 2) ECU commands.
X    Keyboard input is passed to	the serial line	driver until an	ECU command
X    is detected.  Commands are prefixed	with a HOME key	which causes ECU to
X    accept keyboard data up to the next	ENTER key as command text.  After a
X    command has	been processed,	keyed data is again routed to the serial
X    line.
X
X
X    2.1.1  Keyboard Interface
X
X    The	keyboard driver	is set into the	raw mode.  XMTR	reads characters one
X    at a time from the driver.	Normally, characters read from the keyboard
X    are	passed directly	to the serial line driver.  The	ASCII ESC ("escape")
X    character is handled as a special case.  When a function key is pressed,
X    the	keyboard generates to XMTR an ESC character, followed by more
X    characters describing which	function key has been pressed.	Pressing the
X    ESC	key also causes	XMTR to	see an ESC character, but with no subsequent
X    function key "suffix".
X
X    When an ESC	character is read, XMTR	delays transmission of the character
X    to the line	for a short period to determine	whether	the ESC	key has	been
X    pressed or a function key has been pressed.	 If no "suffix"	is detected,
X    the	ESC is passed to the line, having suffered an insignificant delay
X    given human	typing speeds.
X
X    If a function key "suffix" is detected, the	function key type is
X    decoded.  The HOME key indicates an	ECU command follows.  Any other
X    function key is passed to the function key mapping feature (described
X    later).
X
X
X    2.1.2  ECU Command Assembly
X
X    After HOME has been	pressed, XMTR presents a reverse video prompt on the
X    display, indicating	its readiness to accept	a command.  During input,
X    the	command	may be edited using the	same control keys specified with
X    stty(C).  Additonal	editing	using the left and right arrow keys and	the
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				       3
X
X
X
X    Ins(ert) key are usually available.	 Command input may be aborted by
X    pressing ESC.  When	a command string has been assembled, it	is passed to
X    the	command	processor, which breaks	the command arguments into a token
X    array similar to the argc/argv array.  When	the command handler returns,
X    XMTR returns to its	normal mode of copying keyboard	data to	the serial
X    line.
X
X    Further information	on XMTR	command	line processing	may be found in
X    later sections titled Line Editing and Interactive Command History.
X
X
X    2.1.3  Function Key	Mapping
X
X    While in tty-to-line mode, function	keys other than	HOME are available
X    to be mapped to transmit short keystroke sequences on a connection by
X    connection basis.  Under control of	the dialing command ("Dial"
X    described below)  or the function key control command ("FK"), predefined
X    function key maps may be loaded.
X
X    Function keys which	may be mapped are F1 through F12, PgUp,	PgDn, End,
X    Ins, Del, and the cursor control keys.
X
X    The	unshifted keypad '5' key is permanently	mapped to produce a screen
X    snapshot when it is	pressed	and XMTR is reading from the keyboard.
X
X    Thhe BackTab (shift	Tab) key is mpermanently mapped	to a screen
X    redisplay feature.
X
X
X    2.1.4  Auxiliary Operation Control
X
X    Certain commands cause ECU to perform what is called an auxiliary
X    operation, requiring temporary termination of the RCVR process.  Such
X    operations are not as useful with cu(C), because cu	does NOT kill its
X    receiver process at	any time.  As a	result,	it impossible to run a
X    modern file	transfer protocol since	the cu receiver	process	eats some of
X    the	characters sent	by the remote protocol program.
X
X    There are two types	of auxiliary operations: 1) internal interactive
X    command or procedure execution and 2) external program execution.
X    Certain internal commands require tight control over the serial line.
X    For	instance, the dial command requires transmitting modem command
X    strings and	receiving modem	response codes.	 Such functions	are best
X    accomplished by single-process control of the line.	 External program
X    execution is of two	kinds, file transfer invocation	and local
X    shell/command execution.
X
X    The	RCVR process is	terminated in any of these cases either	to avoid the
X    RCVR swallowing characters intended	for other targets (the modem handler
X    in XMTR or the file	transfer protocol) or to avoid having remote data
X    interspersed with the output of local programs.
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				       4
X
X
X
X    2.2	 Receiver Process (RCVR)
X
X
X    The	receiver process reads the incoming serial data	stream and passes it
X    to the user	terminal driver	through	a filter which scans for events	such
X    as the occurrence of ASCII BEL (bell) characters or	terminal control
X    sequences.	RCVR also handles the session logging and ANSI filter
X    functions.
X
X
X    2.2.1  ANSI	Filter
X
X    Since the term "ANSI" is used to describe many variations on the ANSI
X    X3.64 recommendations for terminal control (read "IBM pseudo-ANSI"), the
X    ECU	receiver process has an	"ANSI filter" which attempts to	translate
X    incompatible (read "MSDOS")	ANSI-like control sequences to sequences
X    acceptable to the UNIX/XENIX display driver.  This includes	support	for
X    the	MS-DOS "save cursor" and "restore cursor" sequences.  More
X    information	may be found later in "Terminal	Model."
X
X
X    2.2.2  Session Logging
X
X    When directed by the user, the RCVR	process	logs incoming serial data to
X    a file named on the	log command line.  The default operation is to
X    filter unprintable characters (other than TAB and NL) from the log,	but
X    raw	logging	is available with a command option.  In	a like manner, the
X    default is for appending to	an existing file, but a	command	option may
X    specify scratching any previous contents.
X
X    Log	files receive header lines each	time the file is opened, stating the
X    logical system name, the telephone number and the date/time.
X
X
X
X    2.3	 Supported Terminals
X
X
X    ECU	does not attempt to support terminal emulation in the classic sense
X    of the word.  It presents to the remote host an "ANSI-like"	terminal
X    type as described earlier in the introduction and in the section titled
X    "ANSI Filter." However, it does support, with limitations, any LOCAL
X    terminal (console) for which a valid termcap description exists. You MAY
X    be able to use ECU with a remote terminal (calling into UNIX/XENIX over
X    a network or modem), but you may get unfavorable results with function
X    key	usage if your modem is a "packetizing" type, such as a Telebit or if
X    ethernet or	other networking chops up your keystroke sequences.  ECU
X    allows approximately 60 milliseconds after receiving an ASCII ESC
X    character for later	characters of a	function key sequence to arrive.  If
X    at least one character of the sequence has not been	received in that
X    time, ECU treats the key as	an ESCape, not a function key.	This typical
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				       5
X
X
X
X    problem of detecting ESC vs. function key is unfortunate, but we must
X    live with it until paradigms change	(say, in about 2010?).
X
X    The	termcap	entry for a console MUST contain a valid entry for the
X    following database entries:
X
X
X    cl	    clear screen
X    kl	    cursor left
X    kr	    cursor right
X    dc	    delete character
X    dl	    delete line
X    cd	    clear to end of display
X    ce	    clear to end of line
X    ic	    insert character
X    al	    insert line	("add" a "line")
X    cm	    cursor motion
X    so	    stand out (terminal	specific attention getter)
X    se	    stand end
X
X
X    The	above sequences	MUST be	present, valid and reasonably efficient.
X    ECU	does not use curses during most	of it's	operation, and unlike
X    curses, makes no attempt to	emulate	missing	terminal functionality.
X    Failure to provide valid entries will result in strange behavior with no
X    warning.
X
X    Note that the formal termcap description of	"kl" and "kr" state these
X    are	sequences generated by the terminal keyboard, but ECU expects that
X    these sequences also causes	the desired effect when	sent to	the screen.
X
X    Additionally, the following, optional, sequences will be used if they
X    are	detected.
X
X
X    mb	    bold on ("XENIX" extension)
X    me	    bold off ("XENIX" extension)
X    us	    underscrore	on
X    ue	    underscrore	off
X    vb	    visual bell
X
X
X    A future version of	ECU may	use terminfo instead of	termcap.  Problems
X    with terminfo prevent its use at the present time.	In addition, early
X    versions of	XENIX do not support terminfo.
X
X
X
X
X
X
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				       6
X
X
X
X    2.4	 Function Key Recognition
X
X
X    ECU	recognizes 23 function keys as having special significance to its
X    operation.	They are (with their AT/"ANSI" character sequences):
X
X	 Internal  Description	  AT/"ANSI" Char-
X	 Name	   or Key Label	  acter	Sequence
X	 --------  ------------	  ---------------
X	 F1	   F1		     ESC [ M
X	 F2	   F2		     ESC [ N
X	 F3	   F3		     ESC [ O
X	 F4	   F4		     ESC [ P
X	 F5	   F5		     ESC [ Q
X	 F6	   F6		     ESC [ R
X	 F7	   F7		     ESC [ S
X	 F8	   F8		     ESC [ T
X	 F9	   F9		     ESC [ U
X	 F10	   F10		     ESC [ V
X	 F11	   F11		     ESC [ W
X	 F12	   F12		     ESC [ X
X	 Home	   Home		     ESC [ H
X	 End	   End		     ESC [ F
X	 PgUp	   Page	up	     ESC [ I
X	 PgDn	   Page	down	     ESC [ G
X	 CUU	   Up arrow	     ESC [ A
X	 CUD	   Down	arrow	     ESC [ B
X	 CUL	   Left	arrow	     ESC [ D
X	 CUR	   Right arrow	     ESC [ C
X	 CU5	   "Cursor 5"	     ESC [ E
X	 Ins	   Insert	     ESC [ L
X	 BkTab	   Back	Tab	     ESC [ Z
X
X
X    ECU	recognizes function keys entered by the	user in	one of two ways,
X    depending upon whether the terminal	is recognized as an "ANSI" or "non-
X    ANSI" terminal (see	"Supported Terminals" above).
X
X    If an AT/"ANSI" terminal is	in use,	ECU expects the	standard AT/"ANSI"
X    sequences to be generated by the keyboard according	to the above table.
X    This means that no use of the setkey(C) program (or	similar
X    functionality) may be active.
X
X    If an "non-ANSI" terminal is in use, ECU matches a function	key sequence
X    to an internal function key	representation by testing all keystroke
X    sequences again an internal	table loaded at	the beginning of execution
X    from the file ~/.ecu/nonansikeys.  NOTE that supported terminals MUST
X    employ function keys which generate	sequences beginning with an ASCII
X    ESC	(escape, 0x1B, decimal 27, octal 33).
X
X    The	format of an file entry	is shown below in the 'ansilike' example
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				       7
X
X
X
X    (used to test ECU from the console by defining an 'ansi' terminal type
X    nevertheless equivalent to 'ansi').
X
X    Lines beginning with '#' are comments.
X
X
X	 #+------------------------------
X	 # ECU 3.0 nonansikeys
X	 #-------------------------------
X	 ansilike
X	 ansi
X	 msdos
X	 dos
X	 dosansi
X	 test
X	     F1:F1:	     esc [ M
X	     F2:F2:	     esc [ N
X	     F3:F3:	     esc [ O
X	     F4:F4:	     esc [ P
X	     F5:F5:	     esc [ Q
X	     F6:F6:	     esc [ R
X	     F7:F7:	     esc [ S
X	     F8:F8:	     esc [ T
X	     F9:F9:	     esc [ U
X	     F10:F10:	     esc [ V
X	     F11:F11:	     esc [ W
X	     F12:F12:	     esc [ X
X	     Home:Home:	     esc [ H
X	     End:End:	     esc [ F
X	     PgUp:PgUp:	     esc [ I
X	     PgDn:PgDn:	     esc [ G
X	     CUU:CUU:	     esc [ A
X	     CUL:CUL:	     esc [ D
X	     CU5:CU5:	     esc [ E
X	     CUR:CUR:	     esc [ C
X	     CUD:CUD:	     esc [ B
X	     Ins:Ins:	     esc [ L
X	     BkTab:BackTab:  esc [ Z
X
X
X    The	first line(s) in a terminal keyboard description begin in column 1
X    and	contain	the terminal types (a la $TERM)	for which the keyboard
X    description	are valid.  The	example	entry contains several references to
X    terminal types containing the substring description	servicing multiple
X    terminal types.
X
X    ECU	determines whether a terminal meets the	ansi vs.  ANSI distinction
X    by searching for 'ansi' in the $TERM environment variable (without
X    regard to case: 'AnSi' will	match as well as though	your $TERM
X    environment	variable does not contain 'ansi' (such as 'sun'), then you
X    may	add the	terminal type to the 'ansilike'	entry rather than create a
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				       8
X
X
X
X    separate entry.
X
X    Following the "first lines"	are key	definition entries, each preceded by
X    at least one tab or	space.	Each entry is composed of three	fields
X    delimited by commas.  The first field of an	entry is the internal ECU
X    function key name and must be chosen from the following strings (with no
X    regard to case): "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9",
X    "F10", "F11", "F12", "Home", "End",	"PgUp",	"PgDn",	"CUU" (cursor up),
X    "CUL" (cursor left), "CU5" (unshifted cursor pad 5), "CUR" (cursor
X    right) and "CUD" (cursor down). The	second field contains the name of
X    the	key as it appears on the non-ANSI keyboard (such as "F16" for End on
X    the	Wyse 60).  The third field is a	description of the character
X    sequence generated by the non-ANSI keyboard	when the chosen	key is
X    pressed; it	is a string of one or more tokens separated by spaces or
X    tabs.
X
X    Note that while ECU	requires a function key	sequence to begin with an
X    ASCII ESC (escape),	each table entry must contain an 'esc' as it's first
X    sequence token.  This seemingly superfluous	requirement ensures
X    compatibility with possible	future support for function keys which do
X    not	begin with ESC.
X
X    In addition, function key sequences	may not	contain	the NUL	(0)
X    character, nor may they exceed 10 characters, including the	leading	ESC.
X
X    The	tokens are described in	full in	the following  sections	titled
X    "Function Key Recognition" and "Function Key Mapping."
X
X    PLEASE NOTE: ECU does not have a reasonable	way for	you to terminate it
X    if there are no Home and End keys defined, so it refuses to	proceed	if
X    no definitions are found.  Even so,	if you have incorrect definitions,
X    you	may not	be able	to get out of ECU without a kill -1 <pid> from
X    another terminal or	hanging	up your	connection with	UNIX/XENIX if using
X    ECU	from remote.
X
X
X    2.5	 Function Key Mapping
X
X
X    ECU	recognizes function keys in a manner described in the above section
X    titled "Function Key Recognition." This section deals with how ECU
X    behaves once a function key	has been recognized as having been entered
X    at the keyboard.
X
X    All	function keys with the exception of the	Home, BkTab (shift TAB), and
X    keypad unshifted 5 key can be programmed to	emit selected strings.	For
X    instance, when communicating with a	Stratus	computer, doing	your best to
X    emulate a VT100, a function	key map	might be constructed as	follows:
X
X
X
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				       9
X
X
X
X     F1	 F1	F2  F2	       Home ecu	cmd	PgUp  dispform
X     F3	 F3	F4  F4	       End  enter	PgDn  cancel
X     F5	 F5	F6  F6	       Ins  local shell	CUR5  Screen dump
X     F7	 status	F8  no status  BkTab restore receiver display
X     F9		F10 redisp     CUR^ ^		CUR>  >
X     F11	F12	       CUR< <		CURv  v
X
X
X    Function key mapping is placed in ~/.ecu/keys.  The	Stratus	example:
X
X    stratus
X	F1:F1:esc O q
X	F2:F2:esc O r
X	F3:F3:esc O s
X	F4:F4:esc O t
X	F5:F5:esc O u
X	F6:F6:esc O v
X	F7:F7:esc O w
X	F8:status:dc4
X	F9:no status:nl
X	F10:redisp:esc O y
X	F11:redisp:syn
X	PGDN:cancel:esc	O Q
X	END:enter:esc O	M
X	PGUP:dispform:esc O R
X	CUU:^:dle
X	CUD:v:so
X	CUL:<:stx
X	CUR:>:ack
X
X
X    If you have	installed the mapkey file (as described	in the release
X    directory in mapkeys/README), then ALT-a through ALT-z causes the
X    "silent" execution of procedures 'alt_a.ep'	for ALT-a, 'alt_b.ep' for
X    ALT-b, etc.	 The models subdirectory contains an example alt_h.ep which
X    will home the cursor when ALT-h is pressed.	 This facility allows the
X    execution of 26 procedures without ECU itself changing the video display
X    at all.  Any changes to the	display	(short of procedure errors) will
X    result solely from the action of the invoked procedure.  If	the
X    procedure matching the ALT-[a-z] key pressed cannot	be found, a short
X    error message is printed and the terminal bell is rung.  (Using back tab
X    may	be used	to refresh the display in this event.)
X
X    The	strings	used to	represent "non-printable" characters are identical
X    to the formal ASCII	names given them (without regard to case), viz:
X
X
X
X
X
X
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				      10
X
X
X
X	 0x00 nul      NUL may not appear in a non-ANSI
X	 0x01 soh      function	key definition
X	 0x02 stx
X	 0x03 etx
X	 0x04 eot
X	 0x05 enq
X	 0x06 ack
X	 0x07 bel
X	 0x08 bs
X	 0x09 ht
X	 0x0A nl
X	 0x0B vt
X	 0x0C np
X	 0x0D cr
X	 0x0E so
X	 0x0F si
X	 0x10 dle
X	 0x11 dc1
X	 0x12 dc2
X	 0x13 dc3
X	 0x14 dc4
X	 0x15 nak
X	 0x16 syn
X	 0x17 etb
X	 0x18 can
X	 0x19 em
X	 0x1A sub
X	 0x1B esc
X	 0x1C fs
X	 0x1D gs
X	 0x1E rs
X	 0x1F us
X	 0x20 sp
X	 0x7F del
X
X
X
X    2.6	 Host Video Control Sequences
X
X
X
X    2.6.1  All Local Terminals
X
X    The	following sequences are	recieved over the line by ECU and properly
X    interpreted	for all	local terminal types (multiscreen, rlogin/xterm
X    pseudotty, serial).
X
X
X
X
X
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				      11
X
X
X
X    Sequence  |	Description
X    ----------+-------------------------------
X    ESC	[ @   |	ICH
X    ESC	[ A   |	CUU
X    ESC	[ B   |	CUD
X    ESC	[ C   |	CUF
X    ESC	[ D   |	CUB
X    ESC	[ E   |	CNL	  See ANSI X3.64,
X    ESC	[ F   |	CPL	  screen(HW) and/or
X    ESC	[ H   |	CUP	  MS-DOS Technical
X    ESC	[ J   |	ED	  Reference Manual
X    ESC	[ K   |	EL
X    ESC	[ L   |	IL
X    ESC	[ M   |	DL
X    ESC	[ P   |	DCH
X    ESC	[ S   |	SU
X    ESC	[ T   |	SD
X    ESC	[ X   |	ECH
X    ESC	[ `   |	HPA
X    ESC	[ a   |	HPR
X    ESC	[ d   |	VPA
X    ESC	[ e   |	VPR
X    ESC	[ f   |	HVP
X    ESC	[ ? m |	SGR
X    ESC	[ n   |	DSR (see below)
X    ESC	[ s   |	save cursor MS-DOSism
X    ESC	[ u   |	restore	cursor MS-DOSism
X
X    SGR	Sequences for ALL TERMINALS
X    Sequence  |	Description   |	 Maps to termcap
X    ----------+---------------+-------------------------------
X    ESC	[ 0 m |	normal	      |	 "se"+"me"+"ue"
X    ESC	[ 1 m |	bold	      |	 "so"
X    ESC	[ 4 m |	underscore    |	 "us"
X    ESC	[ 5 m |	blink	      |	 "mb" (XENIX extension)
X    ESC	[ 7 m |	reverse	video |	 "so"
X
X
X
X    2.6.2  Multiscreen Local Terminals
X
X    In addition	to the above, if you are operating from	a color	multiscreen,
X    additional (SCO and	MS-DOS/ANSI.SYS) sequences are supported (see
X    screen(HW)):
X
X
X
X
X
X
X
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				      12
X
X
X
X    Additional Multiscreen SGR Sequences
X    Sequence	| Description  (no termcap mapping)
X    ------------+-----------------------------------------------
X    ESC	[ 8 m	| non-display
X    ESC	[ 1 0 m	| select primary font
X    ESC	[ 1 1 m	| select first alternate font (0x00-0x1F)
X    ESC	[ 1 2 m	| select second	alternate font (0x80-0xFF)
X    ESC	[ 3 0 m	| black	foreground
X    ESC	[ 3 1 m	| red foreground
X    ESC	[ 3 2 m	| green	foreground
X    ESC	[ 3 3 m	| brown	foreground
X    ESC	[ 3 4 m	| blue foreground
X    ESC	[ 3 5 m	| magenta foreground
X    ESC	[ 3 6 m	| cyan foreground
X    ESC	[ 3 7 m	| white	foreground
X    ESC	[ 3 8 m	| enables underline option
X    ESC	[ 3 9 m	| disables underline option
X    ESC	[ 4 0 m	| black	background
X    ESC	[ 4 1 m	| red background
X    ESC	[ 4 2 m	| green	background
X    ESC	[ 4 3 m	| brown	background
X    ESC	[ 4 4 m	| blue background
X    ESC	[ 4 5 m	| magenta background
X    ESC	[ 4 6 m	| cyan background
X    ESC	[ 4 7 m	| white	background
X
X
X
X    ECU	also does it's best to interpret MS-DOS	"SGR gaggles" such as
X
X	 ESC [ 5 ; 3 4 ; 4 7 m
X
X    which means	"set the terminal to white background with blue	blinking
X    foreground."
X
X
X    2.6.3  Character Mapping
X
X    The	MS-DOS ROM signal ruling characters from the following table are
X    mapped after the fashion of:
X
X
X	   .-----+--------.
X	   |	 |	  |
X	   |	 +--------+
X	   |	 |	  |
X	   +-----+	  |
X	   |	 |	  |
X	   `-----+--------'
X
X
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				      13
X
X
X
X    Mapped Characters (see pc_scr.h):
X    Hex	 | Description
X    -----+---------------------------
X    0xDA | top left single rule
X    0xBF | top right single rule
X    0xC0 | bottom left single rule
X    0xD9 | bottom right	single rule
X    0xC3 | left	hand T
X    0xB4 | right hand T
X    0xB3 | vertical rule
X    0xC4 | horizontal rule
X
X
X    (Due to momentary laziness on the part of the author, double ruling
X    characters will appear as random druk, unless your terminal	is smart
X    enough to have joined the Church of	the True-Blue ROM.  One	day an X
X    version of this program will appear	and you	can choose to no longer
X    accomplish real work, but may spend	your days editing 42Kb resource
X    files which	will give you TAC, Total Anal Control, over all	this.)
X
X
X    2.7	 Line Editing
X
X
X    When you are entering a line of text for an	ecu command or in a field on
X    a screen, you may edit it in a number of ways at any time prior to
X    pressing Enter.  Cursor Left moves the cursofr left	by one character
X    position, nondestructively.	 Cursor	Right moves to the right.  Insert
X    toggles insert mode.  Backspace (your erase	key as specified to stty in
X    commands, the actual backspace key in screens) deletes the character to
X    the	left of	the cursor.  Your line kill key	(as specified to stty) in
X    command mode or the	^U character in	screen mode erases the entire line.
X    Esc	in command mode	cancels	the command.  Esc in screen mode usually
X    cancels the	screen or subfunction in a screen.  ^L or ^R in	interactive
X    command mode shows the current state of Insert mode	and redisplays the
X    edited string.
X
X
X    2.8	 Screen	Dump
X
X
X    When the "cursor 5"	key is pressed,	the screen contents are	dumped to a
X    file.  By default, this file is named '~/.ecu/screen.dump'.	 The sdname
X    interactive	command	either displays	or changes the current screen dump
X    file name, depending upon whether or not a argument	is supplied.  The
X    scrdump procedure command can initiate a dump.
X
X
X    2.8.1  Multiscreen and Non-Multiscreen
X    Note that from multiscreens, screen	dump produces a	dump of	the actual
X    screen contents, including ECU-generated output.  When using a non-
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				      14
X
X
X
X    multiscreen	terminal, screen dump dumps only the shared memory virtual
X    screen as received from the	host.  If standard input is not	a serial
X    line (xterm	o or /dev/null), screen	dumps will be of the non-multiscreen
X    type.
X
X    If,	at a multiscreen, you wish a screen dump free of ECU output
X    "pollution," use Shift-Tab (BkTab) to redraw the screen, then perform
X    the	screen dump.
X
X
X    2.8.2  Multiscreen Bug
X    There has been a bug in the	multiscreen driver for some time wherein a
X    MEDIA COPY (screen dump) sequence ("ESC [ 2	i") leaves the "ESC [ 2"
X    part "active".  When a screen dump (Cursor 5) command is given, I do the
X    sacreen dump, then send a "l" to the screen	to work	around the bug ("ESC
X    2 [	l" unlocks the keyboard, essentially a no-op).	If and when it gets
X    fixed, you'll see an "l" show up on	your screen after a screen dump
X    sequence.  To fix this, comment out	the
X
X	 #define MULTISCREEN_DUMP_BUG
X
X    at the top of ecuscrdump.c.
X
X
X    2.9	 Interactive Command History
X
X
X    After pressing the Home key, pressing it again invokes the interactive
X    command history function.  After the second	Home key is pressed, the
X    last interactive command is	redisplayed. Line editing may be performed
X    on the command as described	in the previous	section.
X
X    Additionally, using	the Cursor Up key accesses less	recent commands.
X    The	Cursor Down key	accesses more recent commands.	Pressing Enter
X    causes the command to be executed.	Pressing Esc aborts command entry.
X
X
X    2.10  Dialing Directory
X
X
X    ECU	provides an on-line editable dialing directory.	 Remote	systems	are
X    defined as records using alphanumeric identifiers as keys.	Other record
X    fields include telephone number, baud rate,	parity and textual
X    description.
X
X    Other features include changing to alternate dialing directory and a
X    multi-number redial	cycle function.	Refer below to the description of
X    the	interactive dial command.
X
X
X
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				      15
X
X
X
X    2.11  Online Command Dictionary
X
X
X    The	ECU help command presents a display of interactive commands.  The
X    user is then prompted to enter a command name for further, Unix-style
X    "usage" information.
X
X
X    2.12  Multiscreen Event Alarm
X
X
X    By using the BN (bell notify) interactive command, an audible alert	is
X    sent to all	multiscreens when an ASCII BEL (bell) is received or when a
X    file transfer completes.  An additional option causes an alert when	ANY
X    data is received from the line.  This makes	it simple to do	work on
X    other multiscreen consoles and be alerted when attention to	the
X    communications session is required.
X
X    For	instance, the Berkeley 4.x Unix	utility	"talk" rings the bell when
X    another user wishes	an interactive chat mode.  BSD "biff" rings the	bell
X    when incoming mail is received.  Scripts or	commands at remote sites can
X    be configured to ring the bell as in:
X
X	 make foo bar; bell; make more_stuff; bell;
X
X    to call attention to the ECU user when work	is being done on other
X    multiscreen	consoles.
X
X    This feature is only available when	you are	running	ECU from a
X    multiscreen.
X
X
X    2.13  Built-in Modem Dialer
X
X
X    The	built-in ECU dialer supports modems which use the Hayes-style AT
X    command set	or most	variants thereof.  It is used when HoneyDanBer UUCP
X    is not installed or	when there is no entry in the /usr/lib/uucp/Devices
X    file for the selected outgoing line.  (For more information, see the
X    later section titled "HoneyDanBer UUCP Interface".)
X
X    The	built-in dialer	uses files in the /usr/lib/ecu directory which
X    contains modem initialization information.	Modem initialization
X    filenames are made from concatenating the tty name with ".mi".  For
X    instance, tty1a's initialization file is named "tty1a.mi".
X
X    Commands for initializing the modem	and for	dialing	may be specified in
X    a very flexible manner.  Separate init and dial strings for	each legal
X    baud rate, a single	pair of	strings	for all	baud rates or a	combination
X    may	be specified.
X
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				      16
X
X
X
X		 Sample	Modem Initialization Files
X
X    #+-----------------------------------------------------------
X    #  tty1a.mi	- Microcom AX/9624c
X    #------------------------------------------------------------
X    init_>2400:ATS11=47X4S0=0S7=30Q1X1N3   # baud rates	> 2400
X    init_default:ATS11=47X4S0=0S7=30Q0X0N0 # other baud	rates
X    dial_default:ATDT
X
X
X    #+-----------------------------------------------------------
X    #  tty2d.mi	- USR Courier 2400
X    #------------------------------------------------------------
X    init_default:ATS11=47 X4 S0=0 S7=32
X    dial_default:ATDT
X
X
X    2.14  File Transfer
X
X
X    ECU	supports numerous file transfer	protocols: as of this writing,
X    XMODEM, XMODEM/CRC,	XMODEM-1K, YMODEM/CRC Batch, ZMODEM/CRC-16,
X    ZMODEM/CRC-32, and Kermit are supported.  Although a seamless interface
X    (there's some yuppie marketing newspeak) is	provided to the	user,
X    transfer is	facilitated by executing external programs.
X
X    As of this writing SEAlink is not in the best of health (no	one has
X    complained :-).
X
X    Kermit support required you	to obtain and patch C-Kermit 4E.  The patch
X    information	is available in	the ckermit subdirectory of the	release.  As
X    soon as C-Kermit 5 is stable and released by Columbia, a suitable patch
X    will be developed for it.  It is quite possible no patching	will be
X    necessary.
X
X    XMODEM, YMODEM and ZMODEM transfers	(thanks	to modified public domain
X    programs by	Chuck Forsberg)	present	dynamic	status displays	similar	to
X    the	following:
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				      17
X
X
X
X	.-[ ecusz 2.37 ]-- /tmp	-----------------------------------.
X	|  ZMODEM/CRC32	 Data xfer rate	~=    896 chars/sec	   |
X	|  File	  1 of	 1: ckermit-5a-130			   |
X	|  File	position:     34053 length:    34053  -rw-r--r--   |
X	|  Sending 34053 bytes	total time ~=  0:40		   |
X	|  tx: hdr ZFIN	 0	       rx: hdr ZFIN  0		   |
X	|  Comm	I/O: rx	     175  tx	34393 bytes		   |
X	|  Baud	rate:  9600 BINARY blklen:  1024 comm mode: NORMAL |
X	|  Time:	 started: 17:31:50  this file: 17:31:51	   |
X	|  17:32:29	 elapsed: 00:00:39	       00:00:38	   |
X	|  Errors: this	file:	0 total:    0 files skipped:   0   |
X	|  Total file bytes transferred: 34053			   |
X	|  End of file						   |
X	|  Remote: CRC32 y  duplex y  continuous stream	y	   |
X	`- Connected to	ki4xo -	procedure put_ck5a ----------------'
X
X
X
X    2.15  Procedures (Scripts)
X
X
X    A powerful,	language-style procedure language is incorporated into ECU.
X    The	language is described in later sections.
X
X
X    2.16  Initial (Startup) Procedure
X
X
X    An initial procedure may be	be specified to	ECU either to initialize an
X    interactive	session	or to execute an entirely unattended or	"batch"
X    communication session.
X
X
X
X    2.17  Home Directory Files
X
X
X    ECU	control	files reside in	the .ecu subdirectory of each user's home
X    directory.	For example, in	home directory /usr/wht:
X
X	 /usr/wht/.ecu/dir	      CD interactive command history file
X	 /usr/wht/.ecu/keys	      function key mapping
X	 /usr/wht/.ecu/nonansikeys    function key mapping
X	 /usr/wht/.ecu/log	      connect, file transfer history
X	 /usr/wht/.ecu/phone	      default dialing directory
X	 /usr/wht/.ecu/colors	      colors used by ECU
X
X
X    The	.ecu directory is also searched	for ECU	procedure files	(having	the
X    '.ep' extension) in	the procedure cannot be	found in the current working
X    directory.
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				      18
X
X
X
X    2.18  Lock Files
X
X
X    ECU	maintains lock files in	/usr/spool/uucp	in accordance with the
X    HoneyDanBer	UUCP conventions (ASCII	pids as	10-character strings
X    followed by	a newline).  Lock files	are created for	the lower-case
X    device names of a line and checked for in both cases. For example, both
X    LCK..tty1a is created when /dev/tty1a OR /dev/tty1A	is selected and
X    neither LCK..tty1a nor LCK..tty1A are active.  See the later section
X    titled "HoneyDanBer	UUCP Interface".
X
X
X    2.19  Dial-In/Dial-Out Line	Support
X
X
X    ECU	works with the SCO getty to support dialing out	on a line enabled
X    for	login.	After use of the line is complete, ECU signals the system to
X    restore incoming call status to the	line.  See the later section titled
X    "HoneyDanBer UUCP Interface".
X
X
X    2.20  Tools
X
X
X    Commands are provided for conversion of hexadecimal	or decimal numbers
X    to and from	ASCII equivalents.  For	example, 26(10)	== 0x1a	== ^Z ==
X    SUB.  For details, refer to	the description	of the XA and AX interactive
X    commands.
X
X
X    2.21  Shared Memory	'Friend' Interface
X
X
X    ECU	maintains a copy of the	received screen	image (80 x 43 maximum)	and
X    other information in its shared memory segment.  Normally, this
X    information	is used	only by	the transmitter	and receiver process.
X    However,  ECU supports the concept of a friend process which may access
X    the	shared memory segment, perform arbitrary auxiliary operations, read
X    from and write to the attached communications line and communicate
X    resulting information or status to an ECU procedure	via a 1024-byte
X    "friend" data area in the shared memory segment.
X
X    The	procedure language supports the	friend process concept through
X    commands and functions which allow
X
X       + passing the ECU shared	memory segment id (%shmid) to a	called
X	 program,
X
X       + reading a single character or string of characters from screen
X	 memory,
X
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				      19
X
X
X
X       + reading cursor	position information and
X
X       + reading and writing of	characters, short or long integers and
X	 strings in the	1024-byte "friend" shared memory data area.
X
X    The	algorithm for obtaining	the shared memory segment key is
X
X    0xEC000000L	+ transmitter process id
X
X    Thus a "friend" process may	either use a %shmid shared memory key passed
X    as an argument or obtain the shared	memory key by using:
X
X    key_t shmkey = 0xEC000000L | getppid();
X
X
X    This facility allows batch and interactive applications to be developed
X    with C programs which would	be tedious or impractical to implement with
X    procedure language alone.
X
X    For	more information, refer	to the shared memory header file ecushm.h,
X    the	ecufriend subdirectory of the software release and to the
X    description	of the %shmid, %cury and %curx procedure functions and the
X    getf and putf procedure commands.
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				      20
X
X
X
X    3.	Starting the Program
X
X
X
X    3.1	 Simple	Startup	- Initial Setup	Menu
X
X
X    ECU	may be started in a number of ways through use of command line
X    switches, but the easiest is to enter
X
X	 ecu
X
X    by itself.	In this	case, the screen is cleared and	the folowing screen
X    will be presented.
X
X
X
X
X      .--[ ecu 1.96 Copyright 1986,1989, W. Tucker ]-----------------.
X      |								     |
X      |	 Name/phone number to call: ___________________		     |
X      |								     |
X      |								     |
X      |	 tty: /dev/tty1a					     |
X      |								     |
X      |	 duplex: F  baud: 2400	 parity:N  (data bits 8)	     |
X      |	 Add NL	to transmitted CR: N				     |
X      |	 Add NL	to received CR:	   N				     |
X      |								     |
X      |								     |
X      |	  TAB:next ^B:prev END:proceed ^D:phone	dir  ESC:quit ecu    |
X      `- logical phone directory entry,	phone number or	empty -------'
X
X
X
X
X
X    3.1.1  Name/Phone Number Field
X
X    If a dialing directory has been configured,	a literal phone	number need
X    not	be entered.  However, on your first invocation,	 you'll	very likely
X    have no directory.	Therefore, you have three options:
X
X
X
X
X
X
X
X
X
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				      21
X
X
X
X	 1.  Enter a literal telephone number, (e.g. 18005551212).
X	     Hyphens and open and close	parentheses may	also
X	     be	entered.
X
X	 2.  Press ENTER to skip the 'Name/phone' field	and enter
X	     ^D	to enter the telephone directory to enter your
X	     first directory entry.
X
X	 3.  Press END to enter	interactive mode and use the Dial
X	     interactive command to dial a literal telephone num-
X	     ber or to enter the dialing directory.
X
X
X
X    3.1.2  Other Fields
X
X    The	'tty' field may	be used	to select an outgoing line other than the
X    default /dev/tty1a.	 Note:	only the last two characters of	the tty	name
X    need be entered.  The remainder of the tty name is assumed to be
X    '/dev/tty'.
X
X    The	'duplex' field may be used to select a duplex value other than the
X    default 'F'	(full).
X
X    The	'baud' field may be used to select a baud rate value other than	the
X    default 2400.
X
X    The	'parity' field may be used to select a parity value other than the
X    default 'N'	(none).
X
X
X    The	'Add NL	to transmitted CR' and 'Add NL to received CR' fields are
X    usually left defaulted to 'N' (no).	 If you	will be	communicating with a
X    terminal (with a human), you will usually need to set both of these
X    fields to 'Y' as well as to	select 'H'alf duplex.
X
X
X    3.1.3  Special Characters
X
X    Special keyboard characters	while filling in the startup screen are:
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				      22
X
X
X
X	  TAB	 move to next field ...	if nothing typed in
X		 the field, do not disturb contents
X
X	  ^B	 back up to previous field
X
X	  END	 proceed with session, dialing remote if
X		 logical directory entry name or literal
X		 telephone number enetered
X
X	  ^D	 enter phone directory
X
X	  ESC	 quit ecu without any communications
X
X
X
X    3.2	 Command Line Arguments	and Switches
X
X
X    ECU	can be started in a number of ways:
X
X
X	 ecu [-lxx] [-b<baud>] [-h] [-e|-o] [-t] <tel-number>
X	 ecu [-lxx] [-b<baud>] [-h] [-e|-o] [-t]
X	 ecu [-t] [-h] <logical>
X	 ecu [-lxx] [-b<baud>] [-h] [-e|-o] [-d] [-D] -p <proc>	[<arg> ...]
X
X
X
X    3.2.1  Non-Switch Arguments
X
X    Only one type of non-switch	argument may be	used on	the command line.
X    <tel-number> or <logical> may appear when the -p switch is absent.	One
X    or more <arg> arguments may	appear when the	-p switch is used.
X
X
X    3.2.2  <tel-number>
X
X    This type of argument has a	digit as its initial character and
X    represents an actual telephone number to be	passed to a modem dialer
X    program or Dialers chat script.  The string	may contain non-numeric
X    characters if appropriate for a dialer program, such as dialTBIT.  For
X    example:
X
X	ecu -l/dev/tty2a -b 19200 -e 5551212UC
X
X    uses tty2a (assumed	to be connected	to a Trailblazer modem)	and
X    establishes	a 19200	baud, even parity PEP Compressed connection after
X    dialing 5551212.
X
X
X
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				      23
X
X
X
X    3.2.3  <logical>
X
X    This type of argument has an alphabetic initial character and causes the
X    dialing directory entry by that name to be dialed.	The line may be
X    specified by '-l', but if the dialing directory specifies a	line (tty
X    field contaions other than 'Any'), the dialing directory entry will
X    override it.  The '-b', '-e' and '-o' switches are ignored;	the values
X    specified by the dialing directory entry are used.	The '-t' and '-h'
X    switches are valid and honored if present.
X
X
X    3.2.4  <arg>
X
X    This type of argument is passed to an initial procedure when the -p
X    switch is present.
X
X
X    ecu	-p unixlogin user pwd ansi43
X
X    executes unixlogin.ep with arguments 'user'	'pwd' 'ansi43'
X
X    For	more detail, refer to the description of -p, -d	and -D below.
X
X
X    3.2.5  -l
X
X    When ECU starts up,	it normally chooses a line as described	later in the
X    section titled "Choosing a Dialout Line".  Specifying the -l switch	can
X    suggest that the program choose a specific line.  The argument to the
X    switch is the last two charcters of	the ttyname; e.g., "-l1a".
X
X    On a system	with HoneyDanBerr UUCP,	to access a device which does not
X    appear in the Devices file,	it may be necessary to explicitly specify
X    the	device with -l.
X
X
X    3.2.6  -f
X    Normally, ECU starts up in the full	duplex mode.  If half duplex is
X    desired, the -f switch is used.
X
X
X    3.2.7  -e, -o
X
X    Normally, ECU starts up with 8 data	bits and no parity.  If	even parity
X    is desired,	the -e switch is specified.  If	odd parity is desired, the
X    -o switch is specified.
X
X    These switches
X
X
X
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				      24
X
X
X
X    3.2.8  -p <procname>
X
X    The	-p switch causes ECU to	execute	the procedure <procname>
X    ("<procname>.ep") immediately.  Such a procedure is	termed the initial
X    procedure.	All non-switch arguments after <procname> are passed as
X    arguments to the initial procedure (see the	descriptions of	the integer
X    function %argc and the string function %argv).
X
X
X    3.2.9  -d
X
X    The	-d switch instructs ECU	to "die" (terminate with error status) if an
X    initial procedure (-p) fails.  This	switch ensures a batch ECU execution
X    will hang up any connection	and terminate if a procedure error occurs.
X    See	also -D	below.
X
X    Absence of the -d and -D switches causes ecu (upon any completion of the
X    initial procedure) to enter	the 1) interactive mode	if a line was
X    successfully attached by the procedure or 2) the setup menu	if no line
X    was	attached.
X
X
X    3.2.10  -D
X
X    The	-D switch instructs ECU	to unconditionally terminate when an initial
X    procedure finishes.
X
X
X    3.2.11  -t
X
X    The	-t switch instructs ECU	to map incoming	and outgoing carriage
X    returns to carriage	return/line feed pairs.	 This is helpful if the
X    remote connection will be to a terminal with a human operator.  Use	of
X    the	-h switch is probably also necessary.
X
X
X    3.2.12  -A
X
X    Normally, ECU reads	the terminal type (TERM	environment variable) to
X    determine whether or not a terminal	is "ANSI"-like or not.	-A forces
X    ECU	to treat the terminal as an ANSI terminal, regardless of the
X    contents of	the $TERM string.
X
X
X    3.2.13  -N
X
X    This switch	forces ECU to treat the	terminal as a non-ANSI terminal.  It
X    has	the opposite effect of -A.  You	must have a valid function key
X    recognition	entry for the $TERM type if this switch	is used.
X
X
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				      25
X
X
X
X    3.3	 Environment Variables
X
X
X    Prior to starting ECU, it is useful, but not necessary, to establish two
X    environment	variables, ECUPROMPT and ECUHELP.
X
X
X    3.3.1  ECUPROMPT
X
X    The	ECUPROMPT environment variable determines the prompt printed by	ECU
X    when the interactive command key ("HOME") is pressed.  When	you first
X    run	ECU, try setting it to your name, e. g.,
X
X	 setenv	ECUPROMPT Ralph	   if you use csh
X
X	 ECUPROMPT=Ralph	   if you use sh, ksh, etc.
X	 export	ECUPROMPT
X
X    Then, when you see how it used, you	may wish to establish a	more
X    permanent choice in	your .login or .profile.
X
X
X    3.3.2  ECUHELP
X
X    Ordinarily,	ECU looks for interactive command help information in
X    "/usr/lib/ecu/ecuhelp.data".  The ECUHELP environment may be set to	the
X    complete pathname of the ecu help file if an alternate file	is to be
X    used.
X
X    The	help file is explained later in	the section titled "Online Command
X    Dictionary".
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				      26
X
X
X
X    4.	Interactive Mode Commands
X
X
X    The	following is a partial list of commands	available in the interactive
X    (non-procedure) mode.  It is not necessary to to enter the entire
X    command in most cases.  The	portion	of each	command	which must be
X    entered is capitalized in the following section headers.
X
X    Refer to the sections titled Interactive Command History and Line
X    Editing for	more information.
X
X
X    4.1	 AX : ascii char to hex/oct/dec
X
X    usage: ax [<param>]
X
X
X    <param> may	be a single ASCII character, a standard	ASCII identifier
X    (such as ETX), or a	two-character control character	identifier (such as
X    ^C,	typed as a caret followed by a C).
X
X    If no argument is supplied,	a table	of control characters is printed
X    containing decimal,	octal, hex, ASCII identifiers and two-character
X    control character identifier.
X
X
X
X    4.2	 BAud :	set/display line baud rate
X
X    usage: baud	[<baud-rate>]
X
X
X    <baud-rate>, if specified, must be taken from the values 110, 300, 600,
X    1200, 2400,	4800, 9600, 19200 and 38400.  On some systems, 19200 and
X    38400 may not be supported.	 If baud rate 110 is selected, 2 stop bits
X    are	automatically specified; other baud rates set 1	stop bit.  If
X    <baud-rate>	is not supplied, the current baud rate is displayed.
X
X    The	setting	may be automatically changed as	the result of a	'dial'
X    command.  See also the dial	and parity command descriptions.
X
X
X
X    4.3	 BN : all console event	alarm
X
X    usage: bn [	0 | 1 |	2 ]
X
X
X    "bell notify": If no argument is supplied, the current setting is
X    displayed.	Specifying 0 disables the facility; 1 causes an	audible
X    alarm to be	sounded	on all of the XENIX virtual consoles upon receipt of
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				      27
X
X
X
X    a bell (0x07) character from the remote system; 2 causes an	audible
X    alarm to be	sent to	all consoles upon receipt of ANY characters from the
X    remote system.  A non-zero value also causes an audible alarm to be	sent
X    to all console upon	the successful completion of a 'redial'	command
X    which must retry more than one redial attempt or upon completion of	a
X    file transfer operation.
X
X    Different alarms are sent depending	upon the the type of event causing
X    the	alarms.
X
X    BN is set to 1 when	ECU begins executing.
X
X    The	setting	of this	command	has no effect if ECU is	not run	from a
X    multiscreen.
X
X
X    4.4	 BReak : send break to remote
X
X    usage: break
X
X
X    This command sends a break signal to the remote system.
X
X
X
X    4.5	 CD : change current directory
X
X    usage: cd [<dir-path>]
X
X
X    This command allows	you to change the working directory of the ECU
X    process.  If <dir-path> is supplied, the previous working directory	is
X    displayed, and <dir-path> is made the new working directory.  A history
X    of previous	directory changes is maintained.  Entering the cd command
X    shows the numbered history list and	allows you to select a new directory
X    by entering	the number.  Other commands allow deletion of directories
X    from the list or saving the	list to	file ~/.ecu/phone.  This file is
X    automatically read at ECU startup, providing a convenient list of
X    directories	available for quick selection.
X
X
X
X    4.6	 DA : decimal to ascii char
X
X    usage: da [<decimal-val>]
X
X
X    <decimal-val> is a decimal value between 0 and 0377; the parity (sign)
X    bit	is stripped and	the equivalent ASCII character value is	displayed.
X
X    If no argument is supplied,	a table	of control characters is printed
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				      28
X
X
X
X    containing decimal,	octal, hex, ASCII identifiers and two-character
X    control character identifier.
X
X
X
X    4.7	 Dial :	dial remote destination
X
X    usage: dial	[<dial-param>]
X
X
X    <dial-param> may take one of two forms, a telephone	number to dial or a
X    logical name which can be found in the user	phone directory	(in file
X    ~/.ecu/phone).
X
X    If a telephone number is supplied, the phone number	is dialed; you must
X    first have set the desired baud rate and parity using the baud and
X    parity commands.
X
X    If a logical name is entered, the phone directory is searched; if the
X    entry is found, the	baud rate and parity is	automatically set.  If a
X    procedure file can be found	in the current directory or the	users home
X    .ECU subdirectory whose name matches the logical name, then	the
X    procedure is executed with the argument '!INTERACTIVE'.
X
X    If <dial-param> is not supplied, then a screen-oriented self-documenting
X    <:-)> directory manager is executed; you may scan the the directory	to
X    select a number to dial, as	well as	add, remove and	edit entries.
X
X    4.7.1  Alternate Dialing Directory
X
X    The	default	dialing	directory is ~/.ecu/phone.  You	may change to
X    another directory by issuing the interactive dial command with no
X    arguments to enter the dialing directory menu, selecting 'c'hange dial
X    directory, and entering the	name of	a new directory.  The specified
X    pathname must either be a fully qualified pathname or a pathname
X    relative to	the current working directory.	Once an	alternate directory
X    has	been selected, it will be used by both the interactive command 'dial
X    <logical>' and the dialing directory menu.
X
X    See	the section below titled "Choosing a Dialout Line" for more
X    information	on using "Any" in the "tty" field of a directory entry.
X
X
X    4.7.2  Multi-Number	Redial Cycle
X
X    While in the  dialing directory, you may "mark" one	or more	entries	for
X    a cyclical redial attempt.	When any entry is marked, typing ENTER
X    (carriage return or	line feed/newline) causes each marked entry to be
X    dialed in turn until one of	the remote systems is successfully
X    connected.	When a successful connection occurs, ECU unmarks the
X    associated entry, leaving the others marked.  Thus,	you may	mark several
X
X
X
X    Public Domain by wht@n4hgf				12/26/90
X
X
X
X
X
X
X
X    ECU	Technical Description				      29
X
X
X
X    entries and	merely reenter the dialing directory after each	connection
X    is finished	and press ENTER	to reenter the redial cycle.  If a single
X    entry is marked, ECU pauses	15 seconds between each	dialing	attempt,
X    otherwise 5	seconds.  Presing 'c' will cause the pause to be prematurely
X    terminated and the next attempt to be made.	 Pressing your interrupt key
X    (DEL, ^C or	whatever) aborts the cycle.  If	you interrupt an active
X    dialing attempt, you will be prompted as to	whether	or not you wish	to
SHAR_EOF
true || echo 'restore of doc/ecu.man failed'
echo 'End of ecuman3 part 1'
echo 'File doc/ecu.man is continued in part 2'
echo 2 > _shar_seq_.tmp
exit 0
--------------------------------------------------------------------
Warren Tucker, TuckerWare emory!n4hgf!wht or wht@n4hgf.Mt-Park.GA.US
Hacker Extraordinaire  d' async PADs,  pods,  proteins and protocols

exit 0 # Just in case...
-- 
Kent Landfield                   INTERNET: kent@sparky.IMD.Sterling.COM
Sterling Software, IMD           UUCP:     uunet!sparky!kent
Phone:    (402) 291-8300         FAX:      (402) 291-4362
Please send comp.sources.misc-related mail to kent@uunet.uu.net.