From decwrl!elroy.jpl.nasa.gov!sdd.hp.com!cs.utexas.edu!uunet!allbery Wed May 16 10:14:18 PDT 1990 Article 1563 of comp.sources.misc: Path: decwrl!elroy.jpl.nasa.gov!sdd.hp.com!cs.utexas.edu!uunet!allbery From: wht%n4hgf@gatech.edu (Warren Tucker) Newsgroups: comp.sources.misc Subject: v12i083: ECU 2.80 manual part 01/03 Message-ID: <88386@uunet.UU.NET> Date: 12 May 90 02:06:39 GMT Sender: allbery@uunet.UU.NET Lines: 1988 Approved: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc) Posting-number: Volume 12, Issue 83 Submitted-by: wht%n4hgf@gatech.edu (Warren Tucker) Archive-name: ecuman2.80/part01 This is an nroffed manual for ecu. It doesn't have backspace/ underlines, so if you have nroff, cd doc and type runoff for a 'prettier' version. ---- Cut Here and unpack ---- #!/bin/sh # This is ecuman280, a shell archive (shar 3.23) # made 05/09/1990 14:09 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 # ------ ---------- ------------------------------------------ # 143012 -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!" next=`cat @shar_seq_.tmp`; echo "Please unpack part $next 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 X X X X ECU 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 X X X X X X X Technical Description X Revision 1.22 (ecu 2.80) X 5/7/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 5/7/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 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. X X This document is preliminary and is NOT well written. It attempts to X get across to the inquiring mind how ECU works. In places, an X understanding of the UNIX programming model, UNIX, XENIX and UUCP X constructs and asynchrononous communications techniques is assumed. In X other places, the document goes into tedious detail about the simplest X of concepts. 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 5/7/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 driver presents to XMTR an ESC character, followed by two X more characters describing which function key has been pressed. X Pressing the ESC key also causes XMTR to see an ESC character, but with X no subsequent 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). Command input is aborted by pressing ESC. When a command X X X X Public Domain by wht@n4hgf 5/7/90 X X X X X X X X ECU Technical Description 3 X X X X string has been assembled, it is passed to the command processor, which X breaks the command arguments into a token array similar to the argc/argv X array. When the command handler returns, XMTR returns to its normal X mode of copying keyboard data to the serial 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 Function keys other than HOME are available to be mapped to transmit X short keystroke sequences on a connection by connection basis. Under X control of the dialing command ("Dial" described below) or the function X key control command ("FK"), predefined 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 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 command X execution and 2) external program execution. Certain internal commands X require tight control over the serial line. For instance, the dial X command requires transmitting modem command strings and receiving modem X response codes. Such procedures are best accomplished by single-process X control of the line. External program execution is of two kinds, file X transfer invocation and local 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 X X X X X X X Public Domain by wht@n4hgf 5/7/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 XENIX display driver. This includes support for the X "save cursor" and "restore cursor" sequences. 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 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 5/7/90 X X X X X X X X ECU Technical Description 5 X X X X 3. Features X X X X 3.1 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 command mode X shows the current state of Insert mode and redisplays the edited string. X X X 3.2 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. Preesing Esc abort command entry. X X X 3.3 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 X 3.4 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 X X X X Public Domain by wht@n4hgf 5/7/90 X X X X X X X X ECU Technical Description 6 X X X X 3.5 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 X 3.6 Function Key Mapping X 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 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 X X X X X X X X X X X X X X X Public Domain by wht@n4hgf 5/7/90 X X X X X X X X ECU Technical Description 7 X X 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, the bell X is rung. X X X 3.7 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 Public Domain by wht@n4hgf 5/7/90 X X X X X X X X ECU Technical Description 8 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 3.8 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 programmer newspeak) is provided to the user, X transfer is facilitated by executing external programs. 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 .-[ 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 X X X X X X Public Domain by wht@n4hgf 5/7/90 X X X X X X X X ECU Technical Description 9 X X X X 3.9 Procedures (Scripts) X X X A powerful, language-style procedure language is incorporated into ECU. X The lnaguage is described in later sections. X X X 3.10 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 3.11 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/log connect, file transfer history X /usr/wht/.ecu/phone dialing directory X /usr/wht/.ecu/colors colors used by ECU X X X The .ecu directory also contains ECU procedure files (having the '.ep' X extension). X X X 3.12 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 both device names of X a line. For example, both LCK..tty1A and LCK..tty1a are created when X /dev/tty1a OR /dev/tty1A is selected. See the later section titled X "HoneyDanBer UUCP Interface". X X X 3.13 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 X Public Domain by wht@n4hgf 5/7/90 X X X X X X X X ECU Technical Description 10 X X X X 3.14 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 3.15 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 + 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 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 Public Domain by wht@n4hgf 5/7/90 X X X X X X X X ECU Technical Description 11 X X X X 4. Starting the Program X X X X 4.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 4.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 5/7/90 X X X X X X X X ECU Technical Description 12 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 4.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 4.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 5/7/90 X X X X X X X X ECU Technical Description 13 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 4.2 Command Line Arguments and Switches X X X ECU can be started in a number of ways: X X X ecu [-lxx] [-b] [-h] [-e|-o] [-t] X ecu [-lxx] [-b] [-h] [-e|-o] [-t] X ecu [-t] X ecu [-lxx] [-b] [-h] [-e|-o] [-d] -p [ ...] X X X X 4.2.1 -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 4.2.2 -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 4.2.3 -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 X X X Public Domain by wht@n4hgf 5/7/90 X X X X X X X X ECU Technical Description 14 X X X X These switches X X X 4.2.4 -p X X The -p switch causes ECU to execute the procedure X (".ep") immediately. Such a procedure is termed the initial X procedure. All non-switch arguments after 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 4.2.5 -d X X The -d switch instructs ECU to "die" (terminate with error status) if X any specified initial procedure fails. This switch ensures a batch ECU X execution will hang up any connection and terminate if a procedure error X occurs. X X Absence of the -d switch causes ecu (upon any completion of the initial X procedure) to enter the 1) interactive mode if a line was successfully X attached by the procedure or 2) the setup menu if not line was attached. X X X 4.2.6 -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 4.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 4.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 X X X Public Domain by wht@n4hgf 5/7/90 X X X X X X X X ECU Technical Description 15 X X X X permanent choice in your .login or .profile. X X X 4.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 X X X X X X X X X X X X X X X X X X X Public Domain by wht@n4hgf 5/7/90 X X X X X X X X ECU Technical Description 16 X X X X 5. 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 5.1 AX : ascii char to hex/oct/dec X X usage: ax [] X X X 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 5.2 BAud : set/display line baud rate X X usage: baud [] X X X , 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 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 5.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 5/7/90 X X X X X X X X ECU Technical Description 17 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 X 5.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 5.5 CD : change current directory X X usage: cd [] X X X This command allows you to change the working directory of the ECU X process. If is supplied, the previous working directory is X displayed, and 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 5.6 DA : decimal to ascii char X X usage: da [] X X X 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 containing decimal, octal, hex, ASCII identifiers and two-character X control character identifier. X X X X X Public Domain by wht@n4hgf 5/7/90 X X X X X X X X ECU Technical Description 18 X X X X 5.7 Dial : dial remote destination X X usage: dial [] X X X 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 X If is not supplied, then a screen-oriented self-documenting X directory manager is executed; you may scan the the directory to select X a number to dial, as well as add, remove and edit entries. Upon dialing X from the menu, if a procedure file can be found in the current directory X or the users home .ECU subdirectory whose name matches the logical name, X then the procedure is executed with the argument '!MENU'. X X X X 5.8 DO : perform procedure X X usage: do [ ... ] X X X Perform ECU procedure. Ecu searches for .ep in the current X directory. If the file is not found, the program looks for the file in X the ~/.ECU directory. One or more arguments may be passed to the X procedure. Arguments aare made available in the called procedure by use X of the %argc integer function and %argv string function. X X Unlike arguments to the do procedure command, arguments to the do X interactive command are not quoted and may not contain embedded spaces X or tabs. X X X X X X X X X X X X Public Domain by wht@n4hgf 5/7/90 X X X X X X X X ECU Technical Description 19 X X X X 5.9 DUplex : set/display duplex X X usage: duplex [ Full | Half ] X X X This command specifies whether or not ECU is to locally echo characters X typed by you at the keyboard. The overwhelming majority of remote X systems provide the echo function, in which case full duplex must be X used. For the rare occasions when the remote system does not echo your X keyboard input, setting half duplex will allow you to see what you are X typing. X X When communicating with another terminal in a "teletype conversation", X setting half duplex is generally required. In such cases, use of the X nl, nlin and nlout commands may also be required. X X The default setting for duplex is full. X X X X 5.10 EXit : drop carrier, exit program X X usage: exit X X X This command terminates ECU promptly. If your modem does not drop X carrier upon loss of Data Terminal Ready (DTR), the command will X terminate ECU, but may leave the communications line off hook. It is X strongly recommended that you configure your modem to hang up the phone X line when DTR drops. A shorthand version of this command exists: '.' is X equivalent to exit. X X X X 5.11 FI : send text file to line X X usage: fi [] X X X "file insert": This command causes file characters to be inserted into X the transmit data stream as though they had been entered at the X keyboard. No error correction is provided, although XON/XOFF flow X control is obeyed. X X If is not entered on the command line, a prompt for the X filename is made. Once the filename has been entered and file has been X opened, you are asked whether the file should be transmitted at full X speed, by "echo pacing" or by a single line at a time. You may also X append an 'f', 'e' or 's' argument to the command line. X X If your remote can tolerate it, full speed transmission is the fastest. X X X X Public Domain by wht@n4hgf 5/7/90 X X X X X X X X ECU Technical Description 20 X X X X Some systems are not capable of receiving large amount of data X ("streaming data") without pauses. Even with "full" speed transmission, X some "pacing" (inter-character delay) is introduced to ease loading on X the remote system. Pressing the interrupt key (DEL) stops a full speed X transmission. X X By specifying echo pacing, it is possible to increase the likelihood of X proper receipt. Echo pacing reads the return data stream to attempt to X keep from overloading the remote. Pressing the interrupt key (DEL) X stops an echo paced transmission. X X As a last resort, if echo pacing is not working for you, (i.e., you are X using the command in an environment where the remote does not echo your X characters), single line at a time transmission is available. With X "single" line transmission, you must press the space key to initiate X sending each line. Pressing the 'ESC' or 's' key stops the transfer. X X X 5.12 FKey : function key definition X X usage: fkey [] X X X This command allows the mapping of function keys F1-F12, PgUp, PgDn, End X and Ins and the cursor up, down, left and right keys to emit a desired X sequence of characters when a function key is pressed. X specifies which key set in ~/.ecu/keys is to be selected. Sample entry: X X hayes X F1:escape:+ + + X F2:autoans:A T S 0 = 1 cr X F3:dial:A T D T X bbs X F1:cancel:^K X F2:yes:y cr X X X If a keyset_name matches a logical dial directory name, it is loaded X when the number is dialed. X X The characters in the mapped string may be any printable character or X one of the following: X X X X X X X X X X X X X Public Domain by wht@n4hgf 5/7/90 X X X X X X X X ECU Technical Description 21 X X X X map -> character map -> character X --- ----------- --- ------------ X nul 0 000 00 ^@ | dle 16 020 10 ^P X soh 1 001 01 ^A | dc1 17 021 11 ^Q X stx 2 002 02 ^B | dc2 18 022 12 ^R X etx 3 003 03 ^C | dc3 19 023 13 ^S X eot 4 004 04 ^D | dc4 20 024 14 ^T X enq 5 005 05 ^E | nak 21 025 15 ^U X ack 6 006 06 ^F | syn 22 026 16 ^V X bel 7 007 07 ^G | etb 23 027 17 ^W X bs 8 010 08 ^H | can 24 030 18 ^X X ht 9 011 09 ^I | em 25 031 19 ^Y X nl 10 012 0a ^J | sub 26 032 1a ^Z X vt 11 013 0b ^K | esc 27 033 1b ^[ X ff 12 014 0c ^L | fs 28 034 1c ^( X cr 13 015 0d ^M | gs 29 035 1d ^] X so 14 016 0e ^N | rs 30 036 1e ^^ X si 15 017 0f ^O | us 31 037 1f ^_ X X X X 5.13 HAngup : hang up modem X X usage: hangup X X X This causes DTR to be momentarily interrupted, terminating any X outstanding connection. Your DCE (modem) must be able to drop carrier X upon loss of DTR. X X X 5.14 HElp : invoke help X X usage: help [] X X X Issuing this command with no argument displays a list of commands X followed by a request for a command for further information. X X X 5.15 LLp : set session log to /dev/lp X X usage: llp X X X This command is a shorthand version of 'log /dev/lp'. /dev/lp must not X be under the control of a print spooler. X X X X X X X X Public Domain by wht@n4hgf 5/7/90 X X X X X X X X ECU Technical Description 22 X X X X 5.16 LOFf : turn off session logging X X usage: loff X X X This command is shorthand for 'log off'. If session logging is active, X it is turned off. X X X 5.17 LOG : session logging control X X usage: log [-s] [-r] [ | off | filename ] X -s "scratch" previous file contents; otherwise append X -r "raw" logging; otherwise non-printable characters X other than tab and newline are omitted from the log X X X This command controls session logging; issuing the command with no X argument causes the status of session logging to be displayed. The X special argument 'off' causes active logging to be terminated. Other X argument values cause logging to start using the argument as a filename. X Issuing a log command with a filename when logging is already active X causes the previous file to be closed and the new file to be opened. X Switches are meaningful only when used in conjunction with a filename to X start logging. X X X X 5.18 NL : display CR/LF mapping X X usage: nl X X X Display the current setting of CR/LF mapping. For more information, X refer to the nlin and nlout command descriptions. X X X X 5.19 NLIn : set receive CR/LF mapping X X usage: nlin [] X X X This command controls whether or not a newline (NL/LF) character is sent X to the screen upon receipt of a carriage return (CR) from the remote X system. Most remote computers supply a NL after CR. When communicating X with another terminal in a "teletype conversation", this is generally X not the case (see also the duplex command). X X Issuing the command without causes the current setting to be X displayed. The format of is flexible: 'y' or '1' enables X X X X Public Domain by wht@n4hgf 5/7/90 X X X X X X X X ECU Technical Description 23 X X X X appending NL to CR, 'n' or '0' causes the feature to be disabled. X X X X 5.20 NLOut : set transmit CR/LF mapping X X usage: nlout [] X X X This command controls whether or not a newline (NL/LF) character is sent X to the remote system upon transmission of a carriage return (CR) entered X by the keyboard. Most remote computers do not require (indeed X "dislike") a NL after CR. When communicating with another terminal in a X "teletype conversation", this is generally not the case (see also the X duplex command). X X Issuing the command without causes the current setting to be X displayed. The format of is flexible: 'y' or '1' enables X appending NL to CR, 'n' or '0' causes the feature to be disabled. X X X X 5.21 OA : octal to ascii char X X usage: oa [] X X X is a octal value between 0 and 0377; the parity (sign) bit X 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 containing decimal, octal, hex, ASCII identifiers and two-character X control character identifier. X X X X 5.22 PARity : set/display line parity X X usage: parity [ None | Even | Odd ] X X X This command controls the parity of characters transmitted by the X keyboard. Issuing the command with no argument displays the current X setting. When the argument is supplied, only the first character is X required. Even or odd parity implies seven data bits; no parity implies X eight data bits. Parity of incoming characters is not checked. X X The setting may be automatically changed as the result of an interactive X or procedure dial command. See the baud and dial command descriptions. X X X X X X Public Domain by wht@n4hgf 5/7/90 X X X X X X X X ECU Technical Description 24 X X X X 5.23 PId : display process ids X X usage: pid X X X This command displays the process id of the ECU transmitter process, the X ECU receiver process and the process ids of ECU's parent and group. X X X 5.24 PLog : procedure logging X X usage: plog [ | off] X X X This command enables or disbles procedure logging. X X X 5.25 PTrace : control procedure trace X X usage: ptrace [ 0 | 1 | on | off] X X X This command controls whether or not procedure execution is to be X traced. Trace output is written to the screen and varys in its nature X depending upon the command being traced. Specifically, any change to a X string or integer variable is noted. If tracing is enabled, the output X will also be written to the procedure log file (see the interactive and X procedure commands). Issuing the command with no argument shows current X status. X X X 5.26 PWd : print working directory X X usage: pwd X X X This command prints the current working directory of the ECU process. X X X X 5.27 REDial : redial last number X X usage: redial [ []] X X X This command redials a number previously dialed with the 'dial' command. X Modem status is tested and multiple retries may be made. X specifies how many retries are to be made. specifies X how many seconds the program pauses after a failure to connect. You X must specify in order to specify . The X default value for is 10, for is 60. X X X X Public Domain by wht@n4hgf 5/7/90 X X X X X X X X ECU Technical Description 25 X X X X You should know that in some jurisdictions, it is ILLEGAL to dial the X same telephone number more than a specified number of times during some X interval of time. In any case, a less than 15 seconds X is silently changed to 15 seconds. X X X 5.28 REV : ECU revision/make date X X usage: rev X X X This command displays ECU's revision, the transmitter process id' and X the date and time ECU was made. X X X 5.29 RK : receive via C-Kermit X X usage: rk X X X This command searches the PATH list for 'ckermit' (Columbia University X C-Kermit) and invokes it to receive files. X X The file ~/.kermrc must be set up to have any desired initialization X paraeters you desire. Refer to C-Kermit documentation for more X information. X X X X 5.30 RS : receive via SEAlink X X usage: rs X X X This command invokes a SEAlink receive protocol. X X X 5.31 RTScts : control RTS/CTS flow control X X usage: bn [ 0 | 1 | y | n ] X X X This command controls the RTS/CTS flow control feature of the SCO X UNIX/XENIX line driver. If no argument is supplied, the current setting X is displayed. Specifying 0 or n disables the facility; 1 or y causes X RTS/CTS flow control to be enabled. X X X X X X X X X Public Domain by wht@n4hgf 5/7/90 X X X X X X X X ECU Technical Description 26 X X X X 5.32 RX : receive via XMODEM/CRC X X usage: rx X X X This command invokes ecurz to receive files from the remote system using X XMODEM/CRC. X X After entering the command, you are prompted as to whether or not file X CR/LF characters are to be converted to newlines. If you are X transferring text files from a system which contain CR/LF line X terminators, you must answer yes to this question. You should answer no X when transferring binary files, such as executables, .arc files and the X like. File transfer progress is presented on a visual display. To X abort the transfer, press your interrupt key (usually DEL unless reset X with stty(C)). X X X X 5.33 RY : receive via YMODEM Batch X X usage: ry X X X This command invokes ecurz to receive files from the remote system using X YMODEM batch with CRC-16 error correction. The YMODEM is "true YMODEM", X not XMODEM-1k. File transfer progress is presented on a visual display. X To abort the transfer, press your interrupt key (usually DEL unless X reset with stty(C)). X X X X 5.34 RZ : receive via ZMODEM/CRC32 X X usage: rz X X X This command invokes ecurz to receive files from the remote system using X ZMODEM/CRC32. File transfer progress is presented on a visual display. X To abort the transfer, press your interrupt key (usually DEL unless X reset with stty(C)). X X X X 5.35 SDNAME : select screen dump file name X X usage: sdname [] 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'. This X X X X Public Domain by wht@n4hgf 5/7/90 X X X X X X X X ECU Technical Description 27 X X X X command either displays or changes the current screen dump file name, X depending upon whether or not a argument is supplied. X X The actions of this command have no effect on the operation of the X procedure command. X X X 5.36 SK : send via C-Kermit X X usage: sk [] X X X This command searches the PATH list for 'ckermit' (Columbia University X C-Kermit) and invokes it to send files. The file ~/.kermrc must be set X up to have any desired initialization paraeters you desire. X X After entering the command, you are prompted as to whether or not file X newline characters are to be converted to CR/LF. If you are X transferring text files to a system which requires CR/LF line X terminators, you must answer yes to this question. You should answer no X when transferring binary files, such as executables, .arc files and the X like. You are prompted to enter a list of files to send, which may X contain one or more wildcard specifications. X X The file ~/.kermrc must be set up to have any desired initialization X arguments you desire. Refer to C-Kermit documentation for more X information. X X X X 5.37 SS : send via SEAlink X X usage: ss [] X X X This command invokes a SEAlink file transmission protocol. X X X .--[ Send SEAlink ]-------- dir: /u1/src/ecu ------------------. X | | X | File(s) to send: | X | ___________________________________________________________ | X | | X | TAB:next ^B:prev END:perform transfer ESC:abort | X `-- enter file(s) to send -------------------------------------' X X X X X X X X X X Public Domain by wht@n4hgf 5/7/90 X X X X X X X X ECU Technical Description 28 X X X X 5.38 STat : connection status X X usage: stat X X X This command displays statistics about ECU usage. Example display: X X Date/time: 06-14-1988 11:40:35 (UTC 15:40) X Total chars transmitted: 178 X Total chars received: 3681 X X Date/time: 06-14-1988 14:41:24 (UTC 18:41) X Connected to CompuHost (555-1234) at 14:40:57 X Parameters: 2400-N-1 Connect time: 00:01:27 X Total chars transmitted: 234 (since CONNECT 142) X Total chars received: 2278 (since CONNECT 1478) X X X X 5.39 SX : send via XMODEM/CRC X X usage: sx [] X X X This command invokes ecusz to send a file to the remote system using X XMODEM/CRC. X X After entering the command, you are prompted as to whether or not file X CR/LF characters are to be converted to newlines. If you are X transferring text files from a system which contain CR/LF line X terminators, you must answer yes to this question. You should answer no X when transferring binary files, such as executables, .arc files and the X like. X X You are prompted to enter a filename to send. File transfer progress is X presented on a visual display. To abort the transfer, press your X interrupt key (usually DEL unless reset with stty(C)). X X .--[ Send XMODEM/CRC ]----- dir: /u1/src/ecu -----------. X | | X | File to send: | X | ____________________________________________________ | X | | X | Binary: Y (no NL-CR/LF translation) | X | | X | TAB:next ^B:prev END:perform transfer ESC:abort | X `-- enter file(s) to send ------------------------------' X X X X X X X X Public Domain by wht@n4hgf 5/7/90 X X X X X X X X ECU Technical Description 29 X X X X 5.40 SY : send via YMODEM Batch X X usage: sy [] X X X This command invokes ecusz to send file(s) to the remote system using X YMODEM/CRC. X X You are prompted to enter filename(s) to send, which may consist of one X or more wildcard specifications. File transfer progress is presented on X a visual display. To abort the transfer, press your interrupt key X (usually DEL unless reset with stty(C)). X X .--[ Send YMODEM/CRC ]----- dir: /u1/src/ecu -----------. X | | X | File to send: | X | ____________________________________________________ | X | | X | Binary: Y (no NL-CR/LF translation) | X | | X | TAB:next ^B:prev END:perform transfer ESC:abort | X `-- enter file(s) to send ------------------------------' SHAR_EOF echo "End of ecuman280 part 1" echo "File doc/ecu.man is continued in part 2" echo "2" > @shar_seq_.tmp exit 0