home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume21 / ecuman / part01 next >
Text File  |  1991-08-09  |  55KB  |  1,872 lines

  1. Newsgroups: comp.sources.misc
  2. From: Warren Tucker <wht@n4hgf.Mt-Park.GA.US>
  3. Subject:  REPOST: v21i090:  Manual for ECU comm package rev 3.10, Part01/04
  4. Message-ID: <csm-v21i090=ecuman.130602@sparky.imd.sterling.com>
  5. X-Md4-Signature: 9bc4d681805aadee2ea6a6ac90c48fe8
  6. Date: Fri, 9 Aug 1991 18:10:04 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: Warren Tucker <wht@n4hgf.Mt-Park.GA.US>
  10. Posting-number: Volume 21, Issue 90
  11. Archive-name: ecuman/part01
  12. Environment: SCO, XENIX, ISC
  13. Supersedes: ecuman3: Volume 16, Issue 22-24
  14.  
  15. [ Trouble with this getting out so lets try again... -Kent+ ]
  16.  
  17. ---- Cut Here and feed the following to sh ----
  18. #!/bin/sh
  19. # This is ecuman310, a shell archive (shar 3.46)
  20. # made 07/27/1991 20:06 UTC by wht@n4hgf.Mt-Park.GA.US
  21. # Source directory /u1/src/ecu
  22. #
  23. # existing files will NOT be overwritten unless -c is specified
  24. #
  25. # This is part 1 of a multipart archive                                    
  26. # do not concatenate these parts, unpack them in order with /bin/sh        
  27. #
  28. # This shar contains:
  29. # length  mode       name
  30. # ------ ---------- ------------------------------------------
  31. # 184389 -rw-r--r-- doc/ecu.man
  32. #   2201 -rw-r--r-- doc/exits.man
  33. #
  34. if touch 2>&1 | fgrep 'amc' > /dev/null
  35.  then TOUCH=touch
  36.  else TOUCH=true
  37. fi
  38. if test -r _shar_seq_.tmp; then
  39.     echo 'Must unpack archives in sequence!'
  40.     echo Please unpack part `cat _shar_seq_.tmp` next
  41.     exit 1
  42. fi
  43. # ============= doc/ecu.man ==============
  44. if test ! -d 'doc'; then
  45.     echo 'x - creating directory doc'
  46.     mkdir 'doc'
  47. fi
  48. if test -f 'doc/ecu.man' -a X"$1" != X"-c"; then
  49.     echo 'x - skipping doc/ecu.man (File already exists)'
  50.     rm -f _shar_wnt_.tmp
  51. else
  52. > _shar_wnt_.tmp
  53. echo 'x - extracting doc/ecu.man (Text)'
  54. sed 's/^X//' << 'SHAR_EOF' > 'doc/ecu.man' &&
  55. X
  56. X
  57. X
  58. X                  - 1 -
  59. X
  60. X
  61. X
  62. X                    ECU    3.10
  63. X
  64. X                (Extended Call Utility)
  65. X
  66. X
  67. X
  68. X
  69. X
  70. X
  71. X              Professional and Engineering
  72. X              Asynchronous Communications Package
  73. X              for UNIX and XENIX System V
  74. X
  75. X
  76. X
  77. X
  78. X
  79. X
  80. X
  81. X
  82. X
  83. X
  84. X
  85. X
  86. X        Warren H. Tucker, III <wht@n4hgf.Mt-Park.GA.US>
  87. X
  88. X
  89. X
  90. X
  91. X
  92. X
  93. X                 Technical Description
  94. X                 Revision 3.10
  95. X                    7/25/91
  96. X
  97. X
  98. X
  99. X
  100. X
  101. X
  102. X
  103. X
  104. X
  105. X
  106. X
  107. X
  108. X
  109. X
  110. X
  111. X
  112. X
  113. X
  114. X
  115. X
  116. X    Public Domain by wht@n4hgf                 7/25/91
  117. X
  118. X
  119. X
  120. X
  121. X
  122. X
  123. X
  124. X    ECU    Technical Description                       1
  125. X
  126. X
  127. X
  128. X    1.    Introduction
  129. X
  130. X
  131. X    ECU    (Extended Call Utility)    is a personal communications program for
  132. X    users of SCO UNIX V.3.2/386    and XENIX V on 80286 and 80386 systems.
  133. X    This preliminary document describes    ECU functionality and implementation
  134. X    from a technical point of view.
  135. X
  136. X    ECU    provides the classic terminal communications facility of passing
  137. X    keyboard data to a serial line and incoming    data to    the computer video
  138. X    display.  In addition, a dialing directory,    a function key mapping
  139. X    feature, and session logging are available.
  140. X
  141. X    A very flexible procedure (script) language    is also    incorporated to
  142. X    automate many communications tasks.     Using shell scripts and ECU
  143. X    procedures,    it is possible to use ECU in an    entirely "unattended"
  144. X    fashion for    batch-style communications sessions.
  145. X
  146. X    ECU    presents to the    host a flexible    "ANSI" terminal    type, accepting    any
  147. X    valid video    control    sequences from MS-DOS or SCO documentation as of
  148. X    late 1990.    It also    fares well, though imperfectly,    with Sun and VT-100
  149. X    in-band video control sequences.  Standards    are great: everybody should
  150. X    have one, especially if they call it "ANSI." For more information, refer
  151. X    to the section below titled    "ANSI Filter."
  152. X
  153. X    The    program    supports almost    any local terminal (console) which can be
  154. X    described in a termcap database entry.  For    more information, refer    to
  155. X    "Supported Terminals."
  156. X
  157. X    ECU    supports numerous file transfer    protocols: as of this writing,
  158. X    XMODEM, XMODEM/CRC,    XMODEM-1K, YMODEM/CRC Batch, ZMODEM/CRC-16,
  159. X    ZMODEM/CRC-32, Kermit and SEAlink are supported.  For more information,
  160. X    refer to the sections describing the individual interactive    and
  161. X    procedure file transfer commands.
  162. X
  163. X    This document is better than that supplied with ECU    2.0, but is still
  164. X    rough in many places.  It attempts to get across to    the inquiring mind
  165. X    how    ECU works.  In places, an understanding    of the UNIX programming
  166. X    model, UNIX, XENIX and UUCP    constructs and asynchronous communications
  167. X    techniques is assumed.  In other places, the document goes into tedious
  168. X    detail about the simplest of concepts.  A great deal of attention has
  169. X    been placed    in accurate and    robust coding of the program.  Perhaps,    time
  170. X    permitting,    one day    I can say the same for this document.
  171. X
  172. X
  173. X
  174. X
  175. X
  176. X
  177. X
  178. X
  179. X
  180. X
  181. X
  182. X    Public Domain by wht@n4hgf                 7/25/91
  183. X
  184. X
  185. X
  186. X
  187. X
  188. X
  189. X
  190. X    ECU    Technical Description                       2
  191. X
  192. X
  193. X
  194. X    2.    Basic Organization
  195. X
  196. X
  197. X    ECU    forks to run as    two separate processes,    a transmitter (XMTR) and a
  198. X    receiver (RCVR).  The two processes    communicate via    signals    and a System
  199. X    V shared memory segment.  XMTR controls RCVR and terminates    it under
  200. X    certain circumstances, called here auxiliary operations.  After an
  201. X    auxiliary operation    completes, XMTR    forks again to recreate    RCVR.
  202. X
  203. X
  204. X    2.1     Transmitter Process (XMTR)
  205. X
  206. X
  207. X    XMTR accepts user input from the computer keyboard;    input is recognized
  208. X    as belonging to one    of two types: 1) transmit data and 2) ECU commands.
  209. X    Keyboard input is passed to    the serial line    driver until an    ECU command
  210. X    is detected.  Commands are prefixed    with a HOME key    which causes ECU to
  211. X    accept keyboard data up to the next    ENTER key as command text.  After a
  212. X    command has    been processed,    keyed data is again routed to the serial
  213. X    line.
  214. X
  215. X
  216. X    2.1.1  Keyboard Interface
  217. X
  218. X    The    keyboard driver    is set into the    raw mode.  XMTR    reads characters one
  219. X    at a time from the driver.    Normally, characters read from the keyboard
  220. X    are    passed directly    to the serial line driver.  The    ASCII ESC ("escape")
  221. X    character is handled as a special case.  When a function key is pressed,
  222. X    the    keyboard generates to XMTR an ESC character, followed by more
  223. X    characters describing which    function key has been pressed.    Pressing the
  224. X    ESC    key also causes    XMTR to    see an ESC character, but with no subsequent
  225. X    function key "suffix".
  226. X
  227. X    When an ESC    character is read, XMTR    delays transmission of the character
  228. X    to the line    for a short period to determine    whether    the ESC    key has    been
  229. X    pressed or a function key has been pressed.     If no "suffix"    is detected,
  230. X    the    ESC is passed to the line, having suffered an insignificant delay
  231. X    given human    typing speeds.
  232. X
  233. X    If a function key "suffix" is detected, the    function key type is
  234. X    decoded.  The HOME key indicates an    ECU command follows.  Any other
  235. X    function key is passed to the function key mapping feature (described
  236. X    later).
  237. X
  238. X
  239. X    2.1.2  ECU Command Assembly
  240. X
  241. X    After HOME has been    pressed, XMTR presents a reverse video prompt on the
  242. X    display, indicating    its readiness to accept    a command.  During input,
  243. X    the    command    may be edited using the    same control keys specified with
  244. X    stty(C).  Additonal    editing    using the left and right arrow keys and    the
  245. X
  246. X
  247. X
  248. X    Public Domain by wht@n4hgf                 7/25/91
  249. X
  250. X
  251. X
  252. X
  253. X
  254. X
  255. X
  256. X    ECU    Technical Description                       3
  257. X
  258. X
  259. X
  260. X    Ins(ert) key are usually available.     Command input may be aborted by
  261. X    pressing ESC.  When    a command string has been assembled, it    is passed to
  262. X    the    command    processor, which breaks    the command arguments into a token
  263. X    array similar to the argc/argv array.  When    the command handler returns,
  264. X    XMTR returns to its    normal mode of copying keyboard    data to    the serial
  265. X    line.
  266. X
  267. X    Further information    on XMTR    command    line processing    may be found in
  268. X    later sections titled Line Editing and Interactive Command History.
  269. X
  270. X
  271. X    2.1.3  Function Key    Mapping
  272. X
  273. X    While in tty-to-line mode, function    keys other than    HOME are available
  274. X    to be mapped to transmit short keystroke sequences on a connection by
  275. X    connection basis.  Under control of    the dialing command ("Dial"
  276. X    described below)  or the function key control command ("FK"), predefined
  277. X    function key maps may be loaded.
  278. X
  279. X    Function keys which    may be mapped are F1 through F12, PgUp,    PgDn, End,
  280. X    Ins, Del, and the cursor control keys.
  281. X
  282. X    The    unshifted keypad '5' key is permanently    mapped to produce a screen
  283. X    snapshot when it is    pressed    and XMTR is reading from the keyboard.
  284. X
  285. X    Thhe BackTab (shift    Tab) key is mpermanently mapped    to a screen
  286. X    redisplay feature.
  287. X
  288. X
  289. X    2.1.4  Auxiliary Operation Control
  290. X
  291. X    Certain commands cause ECU to perform what is called an auxiliary
  292. X    operation, requiring temporary termination of the RCVR process.  Such
  293. X    operations are not as useful with cu(C), because cu    does NOT kill its
  294. X    receiver process at    any time.  As a    result,    it impossible to run a
  295. X    modern file    transfer protocol since    the cu receiver    process    eats some of
  296. X    the    characters sent    by the remote protocol program.
  297. X
  298. X    There are two types    of auxiliary operations: 1) internal interactive
  299. X    command or procedure execution and 2) external program execution.
  300. X    Certain internal commands require tight control over the serial line.
  301. X    For    instance, the dial command requires transmitting modem command
  302. X    strings and    receiving modem    response codes.     Such functions    are best
  303. X    accomplished by single-process control of the line.     External program
  304. X    execution is of two    kinds, file transfer invocation    and local
  305. X    shell/command execution.
  306. X
  307. X    The    RCVR process is    terminated in any of these cases either    to avoid the
  308. X    RCVR swallowing characters intended    for other targets (the modem handler
  309. X    in XMTR or the file    transfer protocol) or to avoid having remote data
  310. X    interspersed with the output of local programs.
  311. X
  312. X
  313. X
  314. X    Public Domain by wht@n4hgf                 7/25/91
  315. X
  316. X
  317. X
  318. X
  319. X
  320. X
  321. X
  322. X    ECU    Technical Description                       4
  323. X
  324. X
  325. X
  326. X    2.2     Receiver Process (RCVR)
  327. X
  328. X
  329. X    The    receiver process reads the incoming serial data    stream and passes it
  330. X    to the user    terminal driver    through    a filter which scans for events    such
  331. X    as the occurrence of ASCII BEL (bell) characters or    terminal control
  332. X    sequences.    RCVR also handles the session logging and ANSI filter
  333. X    functions.
  334. X
  335. X
  336. X    2.2.1  ANSI    Filter
  337. X
  338. X    Since the term "ANSI" is used to describe many variations on the ANSI
  339. X    X3.64 recommendations for terminal control (read "IBM pseudo-ANSI"), the
  340. X    ECU    receiver process has an    "ANSI filter" which attempts to    translate
  341. X    incompatible (read "MSDOS")    ANSI-like control sequences to sequences
  342. X    acceptable to the UNIX/XENIX display driver.  This includes    support    for
  343. X    the    MS-DOS "save cursor" and "restore cursor" sequences.  More
  344. X    information    may be found later in "Terminal    Model."
  345. X
  346. X
  347. X    2.2.2  Session Logging
  348. X
  349. X    When directed by the user, the RCVR    process    logs incoming serial data to
  350. X    a file named on the    log command line.  The default operation is to
  351. X    filter unprintable characters (other than TAB and NL) from the log,    but
  352. X    raw    logging    is available with a command option.  In    a like manner, the
  353. X    default is for appending to    an existing file, but a    command    option may
  354. X    specify scratching any previous contents.
  355. X
  356. X    Log    files receive header lines each    time the file is opened, stating the
  357. X    logical system name, the telephone number and the date/time.
  358. X
  359. X
  360. X
  361. X    2.3     Supported Terminals
  362. X
  363. X
  364. X    ECU    does not attempt to support terminal emulation in the classic sense
  365. X    of the word.  It presents to the remote host an "ANSI-like"    terminal
  366. X    type as described earlier in the introduction and in the section titled
  367. X    "ANSI Filter." However, it does support, with limitations, any LOCAL
  368. X    terminal (console) for which a valid termcap description exists. You MAY
  369. X    be able to use ECU with a remote terminal (calling into UNIX/XENIX over
  370. X    a network or modem), but you may get unfavorable results with function
  371. X    key    usage if your modem is a "packetizing" type, such as a Telebit or if
  372. X    ethernet or    other networking chops up your keystroke sequences.  ECU
  373. X    allows approximately 100 milliseconds after    receiving an ASCII ESC
  374. X    character for later    characters of a    function key sequence to arrive.  If
  375. X    at least one character of the sequence has not been    received in that
  376. X    time, ECU treats the key as    an ESCape, not a function key.    This typical
  377. X
  378. X
  379. X
  380. X    Public Domain by wht@n4hgf                 7/25/91
  381. X
  382. X
  383. X
  384. X
  385. X
  386. X
  387. X
  388. X    ECU    Technical Description                       5
  389. X
  390. X
  391. X
  392. X    problem of detecting ESC vs. function key is unfortunate, but we must
  393. X    live with it until paradigms change    (say, in about 2010?).
  394. X
  395. X    The    termcap    entry for a console MUST contain a valid entry for the
  396. X    following database entries:
  397. X
  398. X
  399. X    cl        clear screen
  400. X    kl        cursor left
  401. X    kr        cursor right
  402. X    dc        delete character
  403. X    dl        delete line
  404. X    cd        clear to end of display
  405. X    ce        clear to end of line
  406. X    ic        insert character
  407. X    al        insert line    ("add" a "line")
  408. X    cm        cursor motion
  409. X    so        stand out (terminal    specific attention getter)
  410. X    se        stand end
  411. X
  412. X
  413. X    The    above sequences    MUST be    present, valid and reasonably efficient.
  414. X    ECU    does not use curses during it's    primary    mode of    operation (keyboard
  415. X    send-receive). Unlike curses, ECU makes no attempt to emulate missing
  416. X    terminal functionality.  Failure to    provide    valid entries will result in
  417. X    strange behavior with no warning.
  418. X
  419. X    Note that the formal termcap description of    "kl" and "kr" state these
  420. X    are    sequences generated by the terminal keyboard, but ECU expects that
  421. X    these sequences also causes    the desired effect when    sent to    the screen.
  422. X
  423. X    Additionally, the following, optional, sequences will be used if they
  424. X    are    detected.
  425. X
  426. X
  427. X    mb        bold on ("XENIX" extension)
  428. X    me        bold off ("XENIX" extension)
  429. X    us        underscrore    on
  430. X    ue        underscrore    off
  431. X    vb        visual bell
  432. X
  433. X
  434. X    A future version of    ECU may    use terminfo instead of    termcap.  Problems
  435. X    with terminfo prevent its use at the present time.    In addition, early
  436. X    versions of    XENIX do not support terminfo.
  437. X
  438. X
  439. X
  440. X
  441. X
  442. X
  443. X
  444. X
  445. X
  446. X    Public Domain by wht@n4hgf                 7/25/91
  447. X
  448. X
  449. X
  450. X
  451. X
  452. X
  453. X
  454. X    ECU    Technical Description                       6
  455. X
  456. X
  457. X
  458. X    2.4     Function Key Recognition
  459. X
  460. X
  461. X    ECU    recognizes 23 function keys as having special significance to its
  462. X    operation.    They are (with their AT/"ANSI" character sequences):
  463. X
  464. X     Internal  Description      AT/"ANSI" Char-
  465. X     Name       or Key Label      acter    Sequence
  466. X     --------  ------------      ---------------
  467. X     F1       F1             ESC [ M
  468. X     F2       F2             ESC [ N
  469. X     F3       F3             ESC [ O
  470. X     F4       F4             ESC [ P
  471. X     F5       F5             ESC [ Q
  472. X     F6       F6             ESC [ R
  473. X     F7       F7             ESC [ S
  474. X     F8       F8             ESC [ T
  475. X     F9       F9             ESC [ U
  476. X     F10       F10             ESC [ V
  477. X     F11       F11             ESC [ W
  478. X     F12       F12             ESC [ X
  479. X     Home       Home             ESC [ H
  480. X     End       End             ESC [ F
  481. X     PgUp       Page    up         ESC [ I
  482. X     PgDn       Page    down         ESC [ G
  483. X     CUU       Up arrow         ESC [ A
  484. X     CUD       Down    arrow         ESC [ B
  485. X     CUL       Left    arrow         ESC [ D
  486. X     CUR       Right arrow         ESC [ C
  487. X     CU5       "Cursor 5"         ESC [ E
  488. X     Ins       Insert         ESC [ L
  489. X     BkTab       Back    Tab         ESC [ Z
  490. X
  491. X
  492. X    ECU    recognizes function keys entered by the    user in    one of two ways,
  493. X    depending upon whether the terminal    is recognized as an "ANSI" or "non-
  494. X    ANSI" terminal (see    "Supported Terminals" above).
  495. X
  496. X    If an AT/"ANSI" terminal is    in use,    ECU expects the    standard AT/"ANSI"
  497. X    sequences to be generated by the keyboard according    to the above table.
  498. X    This means that no use of the setkey(C) program (or    similar
  499. X    functionality) may be active.
  500. X
  501. X    If an "non-ANSI" terminal is in use, ECU matches a function    key sequence
  502. X    to an internal function key    representation by testing all keystroke
  503. X    sequences again an internal    table loaded at    the beginning of execution
  504. X    from the file ~/.ecu/nonansikeys.  NOTE that supported terminals MUST
  505. X    employ function keys which generate    sequences beginning with a character
  506. X    code between 0x01 and 0x1F,    inclusive, and containing no nulls.  Also,
  507. X    no sequence    may begin with your end    of line, erase,    interrupt, kill    or
  508. X    other tty control character.
  509. X
  510. X
  511. X
  512. X    Public Domain by wht@n4hgf                 7/25/91
  513. X
  514. X
  515. X
  516. X
  517. X
  518. X
  519. X
  520. X    ECU    Technical Description                       7
  521. X
  522. X
  523. X
  524. X    The    program    kbdtest3 (the source is    provided in the    distribution) can
  525. X    assist you in determining what codes (if any) are delivered    to ECU when
  526. X    certain keys are pressed.  kbdtest.c is a more primitive version of    the
  527. X    same program.
  528. X
  529. X    The    format of an file entry    is shown below in the 'ansilike' example
  530. X    (used to test ECU from the console by defining an 'test' terminal type
  531. X    nevertheless equivalent to 'ansi').
  532. X
  533. X    Lines beginning with '#' are comments.
  534. X
  535. X
  536. X     #+------------------------------
  537. X     # ECU 3.0 nonansikeys
  538. X     #-------------------------------
  539. X     ansilike
  540. X     ansi
  541. X     msdos
  542. X     dos
  543. X     dosansi
  544. X     test
  545. X         F1:F1:         esc [ M
  546. X         F2:F2:         esc [ N
  547. X         F3:F3:         esc [ O
  548. X         F4:F4:         esc [ P
  549. X         F5:F5:         esc [ Q
  550. X         F6:F6:         esc [ R
  551. X         F7:F7:         esc [ S
  552. X         F8:F8:         esc [ T
  553. X         F9:F9:         esc [ U
  554. X         F10:F10:         esc [ V
  555. X         F11:F11:         esc [ W
  556. X         F12:F12:         esc [ X
  557. X         Home:Home:         esc [ H
  558. X         End:End:         esc [ F
  559. X         PgUp:PgUp:         esc [ I
  560. X         PgDn:PgDn:         esc [ G
  561. X         CUU:CUU:         esc [ A
  562. X         CUL:CUL:         esc [ D
  563. X         CU5:CU5:         esc [ E
  564. X         CUR:CUR:         esc [ C
  565. X         CUD:CUD:         esc [ B
  566. X         Ins:Ins:         esc [ L
  567. X         BkTab:BackTab:  esc [ Z
  568. X
  569. X
  570. X    The    first line(s) in a terminal keyboard description begin in column 1
  571. X    and    contain    the terminal types (a la $TERM)    for which the keyboard
  572. X    description    are valid.  The    example    entry contains several references to
  573. X    terminal types containing the substring description    servicing multiple
  574. X    terminal types.
  575. X
  576. X
  577. X
  578. X    Public Domain by wht@n4hgf                 7/25/91
  579. X
  580. X
  581. X
  582. X
  583. X
  584. X
  585. X
  586. X    ECU    Technical Description                       8
  587. X
  588. X
  589. X
  590. X    ECU    determines whether a terminal meets the    ansi vs.  ANSI distinction
  591. X    by searching for 'ansi' in the $TERM environment variable (without
  592. X    regard to case: 'AnSi' will    match as well as though    your $TERM
  593. X    environment    variable does not contain 'ansi' (such as 'sun'), then you
  594. X    may    add the    terminal type to the 'ansilike'    entry rather than create a
  595. X    separate entry.
  596. X
  597. X    Following the "first lines"    are key    definition entries, each preceded by
  598. X    at least one tab or    space.    Each entry is composed of three    fields
  599. X    delimited by commas.  The first field of an    entry is the internal ECU
  600. X    function key name and must be chosen from the following strings (with no
  601. X    regard to case): "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9",
  602. X    "F10", "F11", "F12", "Home", "End",    "PgUp",    "PgDn",    "CUU" (cursor up),
  603. X    "CUL" (cursor left), "CU5" (unshifted cursor pad 5), "CUR" (cursor
  604. X    right) and "CUD" (cursor down). The    second field contains the name of
  605. X    the    key as it appears on the non-ANSI keyboard (such as "F16" for End on
  606. X    the    Wyse 60).  The third field is a    description of the character
  607. X    sequence generated by the non-ANSI keyboard    when the chosen    key is
  608. X    pressed; it    is a string of one or more tokens separated by spaces or
  609. X    tabs.
  610. X
  611. X    Note that while ECU    requires a function key    sequence to begin with an
  612. X    ASCII ESC (escape),    each table entry must contain an 'esc' as it's first
  613. X    sequence token.  This seemingly superfluous    requirement ensures
  614. X    compatibility with possible    future support for function keys which do
  615. X    not    begin with ESC.
  616. X
  617. X    In addition, function key sequences    may not    contain    the NUL    (0)
  618. X    character, nor may they exceed 10 characters, including the    leading    ESC.
  619. X
  620. X    The    tokens are described in    full in    the following  sections    titled
  621. X    "Function Key Recognition" and "Function Key Mapping."
  622. X
  623. X    PLEASE NOTE: ECU does not have a reasonable    way for    you to terminate it
  624. X    if there are no Home and End keys defined, so it refuses to    proceed    if
  625. X    no definitions are found.  Even so,    if you have incorrect definitions,
  626. X    you    may not    be able    to get out of ECU without a kill -1 <pid> from
  627. X    another terminal or    hanging    up your    connection with    UNIX/XENIX if using
  628. X    ECU    from remote.
  629. X
  630. X
  631. X    2.5     Function Key Mapping
  632. X
  633. X
  634. X    ECU    recognizes function keys in a manner described in the above section
  635. X    titled "Function Key Recognition." This section deals with how ECU
  636. X    behaves once a function key    has been recognized as having been entered
  637. X    at the keyboard.
  638. X
  639. X    All    function keys with the exception of the    Home, BkTab (shift TAB), and
  640. X    keypad unshifted 5 key can be programmed to    emit selected strings.    For
  641. X
  642. X
  643. X
  644. X    Public Domain by wht@n4hgf                 7/25/91
  645. X
  646. X
  647. X
  648. X
  649. X
  650. X
  651. X
  652. X    ECU    Technical Description                       9
  653. X
  654. X
  655. X
  656. X    instance, when communicating with a    Stratus    computer, doing    your best to
  657. X    emulate a VT100, a function    key map    might be constructed as    follows:
  658. X
  659. X     F1     F1    F2  F2           Home ecu    cmd    PgUp  dispform
  660. X     F3     F3    F4  F4           End  enter    PgDn  cancel
  661. X     F5     F5    F6  F6           Ins  local shell    CUR5  Screen dump
  662. X     F7     status    F8  no status  BkTab restore receiver display
  663. X     F9        F10 redisp     CUR^ ^        CUR>  >
  664. X     F11    F12           CUR< <        CURv  v
  665. X
  666. X
  667. X    Function key mapping is placed in ~/.ecu/keys.  The    Stratus    example:
  668. X
  669. X    stratus
  670. X    F1:F1:esc O q
  671. X    F2:F2:esc O r
  672. X    F3:F3:esc O s
  673. X    F4:F4:esc O t
  674. X    F5:F5:esc O u
  675. X    F6:F6:esc O v
  676. X    F7:F7:esc O w
  677. X    F8:status:dc4
  678. X    F9:no status:nl
  679. X    F10:redisp:esc O y
  680. X    F11:redisp:syn
  681. X    PGDN:cancel:esc    O Q
  682. X    END:enter:esc O    M
  683. X    PGUP:dispform:esc O R
  684. X    CUU:^:dle
  685. X    CUD:v:so
  686. X    CUL:<:stx
  687. X    CUR:>:ack
  688. X
  689. X
  690. X    If you have    installed the mapkey file (as described    in the release
  691. X    directory in mapkeys/README), then ALT-a through ALT-z causes the
  692. X    "silent" execution of procedures 'alt_a.ep'    for ALT-a, 'alt_b.ep' for
  693. X    ALT-b, etc.     The models subdirectory contains an example alt_h.ep which
  694. X    will home the cursor when ALT-h is pressed.     This facility allows the
  695. X    execution of 26 procedures without ECU itself changing the video display
  696. X    at all.  Any changes to the    display    (short of procedure errors) will
  697. X    result solely from the action of the invoked procedure.  If    the
  698. X    procedure matching the ALT-[a-z] key pressed cannot    be found, a short
  699. X    error message is printed and the terminal bell is rung.  (Using back tab
  700. X    may    be used    to refresh the display in this event.)
  701. X
  702. X    NOTE: ECU 3.10 CHANGES TO THE SINGLE KEY PROCEDURE FUNCTIONALITY MAKE IT
  703. X    NECESSARY FOR YOU TO REVIEW    mapkeys/README IF YOU HAVE USED    THIS FEATURE
  704. X    IN PREVIOUS    REVISIONS.
  705. X
  706. X    The    strings    used to    represent "non-printable" characters are identical
  707. X
  708. X
  709. X
  710. X    Public Domain by wht@n4hgf                 7/25/91
  711. X
  712. X
  713. X
  714. X
  715. X
  716. X
  717. X
  718. X    ECU    Technical Description                      10
  719. X
  720. X
  721. X
  722. X    to the formal ASCII    names given them (without regard to case), viz:
  723. X
  724. X           NUL may not appear in a non-ANSI    function key definition
  725. X
  726. X     0x00 nul    0x10 dle
  727. X     0x01 soh    0x11 dc1
  728. X     0x02 stx    0x12 dc2
  729. X     0x03 etx    0x13 dc3
  730. X     0x04 eot    0x14 dc4
  731. X     0x05 enq    0x15 nak
  732. X     0x06 ack    0x16 syn
  733. X     0x07 bel    0x17 etb
  734. X     0x08 bs     0x18 can
  735. X     0x09 ht     0x19 em
  736. X     0x0A nl     0x1A sub
  737. X     0x0B vt     0x1B esc
  738. X     0x0C np     0x1C fs
  739. X     0x0D cr     0x1D gs
  740. X     0x0E so     0x1E rs
  741. X     0x0F si     0x1F us
  742. X             0x20 sp
  743. X             0x7F del
  744. X
  745. X
  746. X
  747. X    2.6     Host Video Control Sequences
  748. X
  749. X
  750. X
  751. X    2.6.1  All Local Terminals
  752. X
  753. X    The    following sequences are    recieved over the line by ECU and properly
  754. X    interpreted    for all    local terminal types (multiscreen, rlogin/xterm
  755. X    pseudotty, serial).
  756. X
  757. X
  758. X
  759. X
  760. X
  761. X
  762. X
  763. X
  764. X
  765. X
  766. X
  767. X
  768. X
  769. X
  770. X
  771. X
  772. X
  773. X
  774. X
  775. X
  776. X    Public Domain by wht@n4hgf                 7/25/91
  777. X
  778. X
  779. X
  780. X
  781. X
  782. X
  783. X
  784. X    ECU    Technical Description                      11
  785. X
  786. X
  787. X
  788. X    Sequence  |    Description
  789. X    ----------+-------------------------------
  790. X    ESC    [ @   |    ICH
  791. X    ESC    [ A   |    CUU
  792. X    ESC    [ B   |    CUD
  793. X    ESC    [ C   |    CUF
  794. X    ESC    [ D   |    CUB
  795. X    ESC    [ E   |    CNL      See ANSI X3.64,
  796. X    ESC    [ F   |    CPL      screen(HW) and/or
  797. X    ESC    [ H   |    CUP      MS-DOS Technical
  798. X    ESC    [ J   |    ED      Reference Manual
  799. X    ESC    [ K   |    EL
  800. X    ESC    [ L   |    IL
  801. X    ESC    [ M   |    DL
  802. X    ESC    [ P   |    DCH
  803. X    ESC    [ S   |    SU
  804. X    ESC    [ T   |    SD
  805. X    ESC    [ X   |    ECH
  806. X    ESC    [ `   |    HPA
  807. X    ESC    [ a   |    HPR
  808. X    ESC    [ d   |    VPA
  809. X    ESC    [ e   |    VPR
  810. X    ESC    [ f   |    HVP
  811. X    ESC    [ ? m |    SGR
  812. X    ESC    [ n   |    DSR (see below)
  813. X    ESC    [ s   |    save cursor MS-DOSism
  814. X    ESC    [ u   |    restore    cursor MS-DOSism
  815. X
  816. X    SGR    Sequences for ALL TERMINALS
  817. X    Sequence  |    Description   |     Maps to termcap
  818. X    ----------+---------------+-------------------------------
  819. X    ESC    [ 0 m |    normal          |     "se"+"me"+"ue"
  820. X    ESC    [ 1 m |    bold          |     "so"
  821. X    ESC    [ 4 m |    underscore    |     "us"
  822. X    ESC    [ 5 m |    blink          |     "mb" (XENIX extension)
  823. X    ESC    [ 7 m |    reverse    video |     "so"
  824. X
  825. X
  826. X
  827. X    2.6.2  Multiscreen Local Terminals
  828. X
  829. X    In addition    to the above, if you are operating from    a color    multiscreen,
  830. X    additional (SCO and    MS-DOS/ANSI.SYS) sequences are supported (see
  831. X    screen(HW)):
  832. X
  833. X
  834. X
  835. X
  836. X
  837. X
  838. X
  839. X
  840. X
  841. X
  842. X    Public Domain by wht@n4hgf                 7/25/91
  843. X
  844. X
  845. X
  846. X
  847. X
  848. X
  849. X
  850. X    ECU    Technical Description                      12
  851. X
  852. X
  853. X
  854. X    Additional Multiscreen SGR Sequences
  855. X    Sequence    | Description  (no termcap mapping)
  856. X    ------------+-----------------------------------------------
  857. X    ESC    [ 8 m    | non-display
  858. X    ESC    [ 1 0 m    | select primary font
  859. X    ESC    [ 1 1 m    | select first alternate font (0x00-0x1F)
  860. X    ESC    [ 1 2 m    | select second    alternate font (0x80-0xFF)
  861. X    ESC    [ 3 0 m    | black    foreground
  862. X    ESC    [ 3 1 m    | red foreground
  863. X    ESC    [ 3 2 m    | green    foreground
  864. X    ESC    [ 3 3 m    | brown    foreground
  865. X    ESC    [ 3 4 m    | blue foreground
  866. X    ESC    [ 3 5 m    | magenta foreground
  867. X    ESC    [ 3 6 m    | cyan foreground
  868. X    ESC    [ 3 7 m    | white    foreground
  869. X    ESC    [ 3 8 m    | enables underline option
  870. X    ESC    [ 3 9 m    | disables underline option
  871. X    ESC    [ 4 0 m    | black    background
  872. X    ESC    [ 4 1 m    | red background
  873. X    ESC    [ 4 2 m    | green    background
  874. X    ESC    [ 4 3 m    | brown    background
  875. X    ESC    [ 4 4 m    | blue background
  876. X    ESC    [ 4 5 m    | magenta background
  877. X    ESC    [ 4 6 m    | cyan background
  878. X    ESC    [ 4 7 m    | white    background
  879. X
  880. X
  881. X
  882. X    ECU    also does it's best to interpret MS-DOS    "SGR gaggles" such as
  883. X
  884. X     ESC [ 5 ; 3 4 ; 4 7 m
  885. X
  886. X    which means    "set the terminal to white background with blue    blinking
  887. X    foreground."
  888. X
  889. X
  890. X    2.6.3  Character Mapping
  891. X
  892. X    The    PC ROM single ruling characters    from the following table are mapped
  893. X    after the fashion of:
  894. X
  895. X
  896. X       .-----+--------.
  897. X       |     |      |
  898. X       |     +--------+
  899. X       |     |      |
  900. X       +-----+      |
  901. X       |     |      |
  902. X       `-----+--------'
  903. X
  904. X
  905. X
  906. X
  907. X
  908. X    Public Domain by wht@n4hgf                 7/25/91
  909. X
  910. X
  911. X
  912. X
  913. X
  914. X
  915. X
  916. X    ECU    Technical Description                      13
  917. X
  918. X
  919. X
  920. X    Mapped Characters (see pc_scr.h):
  921. X    Hex     | Description
  922. X    -----+---------------------------
  923. X    0xDA | top left single rule
  924. X    0xBF | top right single rule
  925. X    0xC0 | bottom left single rule
  926. X    0xD9 | bottom right    single rule
  927. X    0xC3 | left    hand T
  928. X    0xB4 | right hand T
  929. X    0xB3 | vertical rule
  930. X    0xC4 | horizontal rule
  931. X
  932. X
  933. X    (Due to momentary laziness on the part of the author, double ruling
  934. X    characters will appear as random druk, unless your terminal    has joined
  935. X    the    Church of the True-Blue    ROM.  One day an X version of this program
  936. X    may    appear and you can choose to no    longer accomplish real work, but may
  937. X    spend your days editing 42Kb resource files    which will give    you TAC,
  938. X    Total Anal Control,    over all this.)
  939. X
  940. X
  941. X    2.7     Line Editing
  942. X
  943. X
  944. X    When you are entering a line of text for an    ecu command or in a field on
  945. X    a screen, you may edit it in a number of ways at any time prior to
  946. X    pressing Enter.  Cursor Left moves the cursofr left    by one character
  947. X    position, nondestructively.     Cursor    Right moves to the right.  Insert
  948. X    toggles insert mode.  Backspace (your erase    key as specified to stty in
  949. X    commands, the actual backspace key in screens) deletes the character to
  950. X    the    left of    the cursor.  Your line kill key    (as specified to stty) in
  951. X    command mode or the    ^U character in    screen mode erases the entire line.
  952. X    Esc    in command mode    cancels    the command.  Esc in screen mode usually
  953. X    cancels the    screen or subfunction in a screen.  ^L or ^R in    interactive
  954. X    command mode shows the current state of Insert mode    and redisplays the
  955. X    edited string.
  956. X
  957. X
  958. X    2.8     Screen    Dump
  959. X
  960. X    When the "cursor 5"    key is pressed,    the screen contents are    dumped to a
  961. X    file.  By default, this file is named '~/.ecu/screen.dump'.     The sdname
  962. X    interactive    command    either displays    or changes the current screen dump
  963. X    file name, depending upon whether or not a argument    is supplied.  The
  964. X    scrdump procedure command can initiate a dump.
  965. X
  966. X
  967. X    2.8.1  Multiscreen and Non-Multiscreen
  968. X    Note that from multiscreens, screen    dump produces a    dump of    the actual
  969. X    screen contents, including ECU-generated output.  When using a non-
  970. X    multiscreen    terminal, screen dump dumps only the shared memory virtual
  971. X
  972. X
  973. X
  974. X    Public Domain by wht@n4hgf                 7/25/91
  975. X
  976. X
  977. X
  978. X
  979. X
  980. X
  981. X
  982. X    ECU    Technical Description                      14
  983. X
  984. X
  985. X
  986. X    screen as received from the    host.  If standard input is not    a serial
  987. X    line (xterm    o or /dev/null), screen    dumps will be of the non-multiscreen
  988. X    type.
  989. X
  990. X    If,    at a multiscreen, you wish a screen dump free of ECU output
  991. X    "pollution," use Shift-Tab (BkTab) to redraw the screen, then perform
  992. X    the    screen dump.
  993. X
  994. X
  995. X    2.8.2  Multiscreen Bug
  996. X    There has been a bug in the    multiscreen driver for some time wherein a
  997. X    MEDIA COPY (screen dump) sequence ("ESC [ 2    i") leaves the "ESC [ 2"
  998. X    part "active".  When a screen dump (Cursor 5) command is given, I do the
  999. X    sacreen dump, then send a "l" to the screen    to work    around the bug ("ESC
  1000. X    2 [    l" unlocks the keyboard, essentially a no-op).    If and when it gets
  1001. X    fixed, you'll see an "l" show up on    your screen after a screen dump
  1002. X    sequence.  To fix this, comment out    the
  1003. X
  1004. X     #define MULTISCREEN_DUMP_BUG
  1005. X
  1006. X    at the top of ecuscrdump.c.
  1007. X
  1008. X
  1009. X    2.9     Interactive Command History
  1010. X
  1011. X
  1012. X    After pressing the Home key, pressing it again invokes the interactive
  1013. X    command history function.  After the second    Home key is pressed, the
  1014. X    last interactive command is    redisplayed. Line editing may be performed
  1015. X    on the command as described    in the previous    section.
  1016. X
  1017. X    Additionally, using    the Cursor Up key accesses less    recent commands.
  1018. X    The    Cursor Down key    accesses more recent commands.    Pressing Enter
  1019. X    causes the command to be executed.    Pressing Esc aborts command entry.
  1020. X
  1021. X
  1022. X    2.10  Dialing Directory
  1023. X
  1024. X
  1025. X    ECU    provides an on-line editable dialing directory.     Remote    systems    are
  1026. X    defined as records using alphanumeric identifiers as keys.    Other record
  1027. X    fields include telephone number, baud rate,    parity and textual
  1028. X    description.
  1029. X
  1030. X    Other features include changing to alternate dialing directory and a
  1031. X    multi-number redial    cycle function.    Refer below to the description of
  1032. X    the    interactive dial command.
  1033. X
  1034. X    Entering or    editing    a dialing directory entry is for the most part
  1035. X    straightforward.  A    note on    the use    of the "tty" field is useful,
  1036. X    however.  When prompted for    a tty, you may choose
  1037. X
  1038. X
  1039. X
  1040. X    Public Domain by wht@n4hgf                 7/25/91
  1041. X
  1042. X
  1043. X
  1044. X
  1045. X
  1046. X
  1047. X
  1048. X    ECU    Technical Description                      15
  1049. X
  1050. X
  1051. X
  1052. X       + "Any" line
  1053. X
  1054. X       + a tty line matching a Devices type
  1055. X
  1056. X       + a specific tty    line (enter the    tty name minus the "/dev/tty"
  1057. X     portion)
  1058. X
  1059. X    "Any" matches any tty line in the /usr/lib/Devices file supporting the
  1060. X    specified baud rate    and whose Devices type begins with the characters
  1061. X    (case independent) "ACU".  This choice is provided to be compatible    with
  1062. X    earlier versions of    ECU (prior to 3.10).
  1063. X
  1064. X    A more general choice for choosing a tty line based    on Devices type    is
  1065. X    the    "Devices type matching"    choice,    invoked    by prefixing the tty field
  1066. X    with a slash or equals sign.
  1067. X
  1068. X
  1069. X       + / prefix searches for a Devices type matching a regular expression
  1070. X     (a la sed or ed)
  1071. X
  1072. X       + = prefix searches for an exact    match on a Devices type
  1073. X
  1074. X
  1075. X    Examples:
  1076. X
  1077. X       =ACU       matches "ACU", fails    on "acu" and "ACUx"
  1078. X       /.*tbit.*   matches "ACUtbit1", "tbit"
  1079. X
  1080. X
  1081. X    A specific tty line    may also be specified.    This is    the only means of
  1082. X    attaching a    line not mentioned in the Devices file.
  1083. X
  1084. X    The    following sample dialing directory screen shows    an edit    in progress.
  1085. X
  1086. X    NOTE:  If the bell rings and you are not allowed to    leave a    field, it is
  1087. X    because you    MUST enter acceptible data before you can leave    a field
  1088. X    using other    than the ESCape    key.
  1089. X
  1090. X
  1091. X
  1092. X
  1093. X
  1094. X
  1095. X
  1096. X
  1097. X
  1098. X
  1099. X
  1100. X
  1101. X
  1102. X
  1103. X
  1104. X
  1105. X
  1106. X    Public Domain by wht@n4hgf                 7/25/91
  1107. X
  1108. X
  1109. X
  1110. X
  1111. X
  1112. X
  1113. X
  1114. X    ECU    Technical Description                      16
  1115. X
  1116. X
  1117. X
  1118. X    | entry name | telephone number | tty | baud P | description    |
  1119. X    | ......     | ........        |Any  | 2400 N | ...............    |
  1120. X    | li.--[ entry: new    ]--------------------------------------------.    |
  1121. X    | ..|                                 |    |
  1122. X    | ..| telephone number  1(800)555-1212                 |    |
  1123. X    | ..| device        =ACUtbit                     |..|
  1124. X    | ..| baud rate        19200                     |..|
  1125. X    | ..| parity        N                         |    |
  1126. X    | ..| description        don't call this_________________________ |..|
  1127. X    | ..| debug    level        0  (dialer -x value    0-9)             | .|
  1128. X    | ..|                                 |    |
  1129. X    | ..| Enter    description                         |..|
  1130. X    | ..| ESC: finish  ^U: erase ^B: back  TAB:    fwd             |    |
  1131. X    | ..`------------------------------------------------------------'    |
  1132. X    | .....     | ..........        |2b      | 9600 N | ...................|
  1133. X    | sco19     | 1(408)426-9525p  |2b      | 9600 N | SCO Tech Services    |
  1134. X    | sco24     | 1(408)426-9495   |2b      | 2400 N | SCO Tech Services    |
  1135. X    +-------------------------------------------------------------------+
  1136. X
  1137. X
  1138. X
  1139. X    2.11  Online Command Dictionary
  1140. X
  1141. X
  1142. X    The    ECU help command presents a display of interactive commands.  The
  1143. X    user is then prompted to enter a command name for further, Unix-style
  1144. X    "usage" information.
  1145. X
  1146. X
  1147. X    2.12  Multiscreen Event Alarm
  1148. X
  1149. X
  1150. X    By using the BN (bell notify) interactive command, an audible alert    is
  1151. X    sent to all    multiscreens when an ASCII BEL (bell) is received or when a
  1152. X    file transfer completes.  An additional option causes an alert when    ANY
  1153. X    data is received from the line.  This makes    it simple to do    work on
  1154. X    other multiscreen consoles and be alerted when attention to    the
  1155. X    communications session is required.
  1156. X
  1157. X    For    instance, the Berkeley 4.x Unix    utility    "talk" rings the bell when
  1158. X    another user wishes    an interactive chat mode.  BSD "biff" rings the    bell
  1159. X    when incoming mail is received.  Scripts or    commands at remote sites can
  1160. X    be configured to ring the bell as in:
  1161. X
  1162. X     make foo bar; bell; make more_stuff; bell;
  1163. X
  1164. X    to call attention to the ECU user when work    is being done on other
  1165. X    multiscreen    consoles.
  1166. X
  1167. X    This feature is only available when    you are    running    ECU from a
  1168. X    multiscreen.
  1169. X
  1170. X
  1171. X
  1172. X    Public Domain by wht@n4hgf                 7/25/91
  1173. X
  1174. X
  1175. X
  1176. X
  1177. X
  1178. X
  1179. X
  1180. X    ECU    Technical Description                      17
  1181. X
  1182. X
  1183. X
  1184. X    2.13  Built-in Modem Dialer
  1185. X
  1186. X
  1187. X    The    built-in ECU dialer supports modems which use the Hayes-style AT
  1188. X    command set    or most    variants thereof.  It is used when HoneyDanBer UUCP
  1189. X    is not installed or    when there is no entry in the /usr/lib/uucp/Devices
  1190. X    file for the selected outgoing line.  (For more information, see the
  1191. X    later section titled "HoneyDanBer UUCP Interface".)
  1192. X
  1193. X    The    built-in dialer    uses files in the /usr/lib/ecu directory which
  1194. X    contains modem initialization information.    Modem initialization
  1195. X    filenames are made from concatenating the tty name with ".mi".  For
  1196. X    instance, tty1a's initialization file is named "tty1a.mi".
  1197. X
  1198. X    Commands for initializing the modem    and for    dialing    may be specified in
  1199. X    a very flexible manner.  Separate init and dial strings for    each legal
  1200. X    baud rate, a single    pair of    strings    for all    baud rates or a    combination
  1201. X    may    be specified.
  1202. X
  1203. X         Sample    Modem Initialization Files
  1204. X
  1205. X    #+-----------------------------------------------------------
  1206. X    #  tty1a.mi    - Microcom AX/9624c
  1207. X    #------------------------------------------------------------
  1208. X    init_>2400:ATS11=47X4S0=0S7=30Q1X1N3   # baud rates    > 2400
  1209. X    init_default:ATS11=47X4S0=0S7=30Q0X0N0 # other baud    rates
  1210. X    dial_default:ATDT
  1211. X
  1212. X
  1213. X    #+-----------------------------------------------------------
  1214. X    #  tty2d.mi    - USR Courier 2400
  1215. X    #------------------------------------------------------------
  1216. X    init_default:ATS11=47 X4 S0=0 S7=32
  1217. X    dial_default:ATDT
  1218. X
  1219. X
  1220. X
  1221. X
  1222. X    2.14  File Transfer
  1223. X
  1224. X
  1225. X    ECU    supports numerous file transfer    protocols: as of this writing,
  1226. X    XMODEM, XMODEM/CRC,    XMODEM-1K, YMODEM/CRC Batch, ZMODEM/CRC-16,
  1227. X    ZMODEM/CRC-32, and Kermit are supported.  Although a seamless interface
  1228. X    (there's some yuppie marketing newspeak) is    provided to the    user,
  1229. X    transfer is    facilitated by executing external programs.
  1230. X
  1231. X    As of this writing SEAlink is not in the best of health (no    one has
  1232. X    complained :-).
  1233. X
  1234. X    Kermit support required you    to obtain and patch C-Kermit 4E.  The patch
  1235. X
  1236. X
  1237. X
  1238. X    Public Domain by wht@n4hgf                 7/25/91
  1239. X
  1240. X
  1241. X
  1242. X
  1243. X
  1244. X
  1245. X
  1246. X    ECU    Technical Description                      18
  1247. X
  1248. X
  1249. X
  1250. X    information    is available in    the ckermit subdirectory of the    release.  As
  1251. X    soon as C-Kermit 5 is stable and released by Columbia, a suitable patch
  1252. X    will be developed for it.  It is quite possible no patching    will be
  1253. X    necessary.
  1254. X
  1255. X    XMODEM, YMODEM and ZMODEM transfers    (thanks    to modified public domain
  1256. X    programs by    Chuck Forsberg)    present    dynamic    status displays    similar    to
  1257. X    the    following:
  1258. X
  1259. X    .-[ ecusz 2.37 ]-- /tmp    -----------------------------------.
  1260. X    |  ZMODEM/CRC32     Data xfer rate    ~=    896 chars/sec       |
  1261. X    |  File      1 of     1: ckermit-5a-130               |
  1262. X    |  File    position:     34053 length:    34053  -rw-r--r--   |
  1263. X    |  Sending 34053 bytes    total time ~=  0:40           |
  1264. X    |  tx: hdr ZFIN     0           rx: hdr ZFIN  0           |
  1265. X    |  Comm    I/O: rx         175  tx    34393 bytes           |
  1266. X    |  Baud    rate:  9600 BINARY blklen:  1024 comm mode: NORMAL |
  1267. X    |  Time:     started: 17:31:50  this file: 17:31:51       |
  1268. X    |  17:32:29     elapsed: 00:00:39           00:00:38       |
  1269. X    |  Errors: this    file:    0 total:    0 files skipped:   0   |
  1270. X    |  Total file bytes transferred: 34053               |
  1271. X    |  End of file                           |
  1272. X    |  Remote: CRC32 y  duplex y  continuous stream    y       |
  1273. X    `- Connected to    ki4xo -    procedure put_ck5a ----------------'
  1274. X
  1275. X
  1276. X    During file    transfer, transfer rates are displayed from time to time.
  1277. X    While the figures may vary significantly during the    transfer, bear in
  1278. X    mind the calculations are for actual data throughput, measured as total
  1279. X    DATA characters transferred    from the time the file is opened until it is
  1280. X    closed.  So, if the    transfer rate appears to be low    at the start of    the
  1281. X    transfer and increase over time, perhaps it    took a significant amount of
  1282. X    time for the receiver to open it's file or to respond to protocol
  1283. X    startup stimuli.  If the transfer rate appears to be higher    at the
  1284. X    beginning and become lower over time, perhaps flow control is being
  1285. X    invoked.  A    sudden reduction in the    "last file" or "transaction"
  1286. X    transfer rate over the in progress rate reflects the time required to
  1287. X    close files, operate the protocol or to skip files (in the case of
  1288. X    ZMODEM).  If any files are skipped in a transfer session, you may be
  1289. X    sure the transaction rate will be (perhaps much) lower than    the per-file
  1290. X    rate.
  1291. X
  1292. X
  1293. X    2.15  Procedures (Scripts)
  1294. X
  1295. X
  1296. X    A powerful,    language-style procedure language is incorporated into ECU.
  1297. X    The    language is described in later sections.
  1298. X
  1299. X    Procedures are files of programmatic instructions written in the ECU
  1300. X    procedure language invoked explicitly by the
  1301. X
  1302. X
  1303. X
  1304. X    Public Domain by wht@n4hgf                 7/25/91
  1305. X
  1306. X
  1307. X
  1308. X
  1309. X
  1310. X
  1311. X
  1312. X    ECU    Technical Description                      19
  1313. X
  1314. X
  1315. X
  1316. X    dointeractivecommandorautomaticallybyECUfunctionsdescribed Procedures
  1317. X    are    invoked    by name, and result in execution of the    file name.ep.
  1318. X
  1319. X    The    file is    searched for in    the current directory.    If not found there,
  1320. X    ECU    checks your personal .ecu subdirectory.     If not    there, the ECU
  1321. X    library "ep" subdirectory is searched (e.g., /usr/local/lib/ecu/ep).
  1322. X
  1323. X
  1324. X    2.15.1  Initial (Startup) Procedure
  1325. X    An initial procedure may be    be specified to    ECU either to initialize an
  1326. X    interactive    session    or to execute an entirely unattended or    "batch"
  1327. X    communication session.  Refer to the section on command switches ("-p").
  1328. X
  1329. X
  1330. X    2.15.2  Dialing Procedure
  1331. X    When a named dialing entry is selected for calling,    if a procedure can
  1332. X    be located using the abovementioned    search sequence    whose name matches
  1333. X    the    name of    the directory, then all    of the usual ECU built-in dialing
  1334. X    procedure is bypassed and the procedure is used.  For details, refer to
  1335. X    other sections related to dialing.
  1336. X
  1337. X
  1338. X    2.16  Home Directory Files
  1339. X
  1340. X
  1341. X    ECU    control    files reside in    the .ecu subdirectory of each user's home
  1342. X    directory.    For example, in    home directory /usr/wht:
  1343. X
  1344. X     /usr/wht/.ecu/dir          CD interactive command history file
  1345. X     /usr/wht/.ecu/keys          function key mapping
  1346. X     /usr/wht/.ecu/nonansikeys    function key mapping
  1347. X     /usr/wht/.ecu/log          connect, file transfer history
  1348. X     /usr/wht/.ecu/phone          default dialing directory
  1349. X     /usr/wht/.ecu/colors          colors used by ECU
  1350. X
  1351. X
  1352. X    The    .ecu directory is also searched    for ECU    procedure files    (having    the
  1353. X    '.ep' extension) in    the procedure cannot be    found in the current working
  1354. X    directory.
  1355. X
  1356. X
  1357. X    2.17  Lock Files
  1358. X
  1359. X
  1360. X    ECU    maintains lock files in    /usr/spool/uucp    in accordance with the
  1361. X    HoneyDanBer    UUCP conventions (ASCII    pids as    10-character strings
  1362. X    followed by    a newline).  Lock files    are created for    the lower-case
  1363. X    device names of a line and checked for in both cases. For example, both
  1364. X    LCK..tty1a is created when /dev/tty1a OR /dev/tty1A    is selected and
  1365. X    neither LCK..tty1a nor LCK..tty1A are active.  See the later section
  1366. X    titled "HoneyDanBer    UUCP Interface".
  1367. X
  1368. X
  1369. X
  1370. X    Public Domain by wht@n4hgf                 7/25/91
  1371. X
  1372. X
  1373. X
  1374. X
  1375. X
  1376. X
  1377. X
  1378. X    ECU    Technical Description                      20
  1379. X
  1380. X
  1381. X
  1382. X    2.18  Dial-In/Dial-Out Line    Support
  1383. X
  1384. X
  1385. X    ECU    works with the SCO getty to support dialing out    on a line enabled
  1386. X    for    login.    After use of the line is complete, ECU signals the system to
  1387. X    restore incoming call status to the    line.  See the later section titled
  1388. X    "HoneyDanBer UUCP Interface".
  1389. X
  1390. X
  1391. X    2.19  Tools
  1392. X
  1393. X
  1394. X    Commands are provided for conversion of hexadecimal    or decimal numbers
  1395. X    to and from    ASCII equivalents.  For    example, 26(10)    == 0x1a    == ^Z ==
  1396. X    SUB.  For details, refer to    the description    of the XA and AX interactive
  1397. X    commands.
  1398. X
  1399. X
  1400. X    2.20  Shared Memory    'Friend' Interface
  1401. X
  1402. X
  1403. X    ECU    maintains a copy of the    received screen    image (80 x 43 maximum)    and
  1404. X    other information in its shared memory segment.  Normally, this
  1405. X    information    is used    only by    the transmitter    and receiver process.
  1406. X    However,  ECU supports the concept of a friend process which may access
  1407. X    the    shared memory segment, perform arbitrary auxiliary operations, read
  1408. X    from and write to the attached communications line and communicate
  1409. X    resulting information or status to an ECU procedure    via a 1024-byte
  1410. X    "friend" data area in the shared memory segment.
  1411. X
  1412. X    The    procedure language supports the    friend process concept through
  1413. X    commands and functions which allow
  1414. X
  1415. X       + passing the ECU shared    memory segment id (%shmid) to a    called
  1416. X     program,
  1417. X
  1418. X       + reading a single character or string of characters from screen
  1419. X     memory,
  1420. X
  1421. X       + reading cursor    position information and
  1422. X
  1423. X       + reading and writing of    characters, short or long integers and
  1424. X     strings in the    1024-byte "friend" shared memory data area.
  1425. X
  1426. X    The    algorithm for obtaining    the shared memory segment key is
  1427. X
  1428. X    0xEC000000L    + transmitter process id
  1429. X
  1430. X    Thus a "friend" process may    either use a %shmid shared memory key passed
  1431. X    as an argument or obtain the shared    memory key by using:
  1432. X
  1433. X
  1434. X
  1435. X
  1436. X    Public Domain by wht@n4hgf                 7/25/91
  1437. X
  1438. X
  1439. X
  1440. X
  1441. X
  1442. X
  1443. X
  1444. X    ECU    Technical Description                      21
  1445. X
  1446. X
  1447. X
  1448. X    key_t shmkey = 0xEC000000L | getppid();
  1449. X
  1450. X
  1451. X    This facility allows batch and interactive applications to be developed
  1452. X    with C programs which would    be tedious or impractical to implement with
  1453. X    procedure language alone.
  1454. X
  1455. X    For    more information, refer    to the shared memory header file ecushm.h,
  1456. X    the    ecufriend subdirectory of the software release and to the
  1457. X    description    of the %shmid, %cury and %curx procedure functions and the
  1458. X    getf and putf procedure commands.
  1459. X
  1460. X
  1461. X
  1462. X
  1463. X
  1464. X
  1465. X
  1466. X
  1467. X
  1468. X
  1469. X
  1470. X
  1471. X
  1472. X
  1473. X
  1474. X
  1475. X
  1476. X
  1477. X
  1478. X
  1479. X
  1480. X
  1481. X
  1482. X
  1483. X
  1484. X
  1485. X
  1486. X
  1487. X
  1488. X
  1489. X
  1490. X
  1491. X
  1492. X
  1493. X
  1494. X
  1495. X
  1496. X
  1497. X
  1498. X
  1499. X
  1500. X
  1501. X
  1502. X    Public Domain by wht@n4hgf                 7/25/91
  1503. X
  1504. X
  1505. X
  1506. X
  1507. X
  1508. X
  1509. X
  1510. X    ECU    Technical Description                      22
  1511. X
  1512. X
  1513. X
  1514. X    3.    Starting the Program
  1515. X
  1516. X
  1517. X
  1518. X    3.1     Simple    Startup    - Initial Setup    Menu
  1519. X
  1520. X
  1521. X    ECU    may be started in a number of ways through use of command line
  1522. X    switches, but the easiest is to enter
  1523. X
  1524. X     ecu
  1525. X
  1526. X    by itself.    In this    case, the screen is cleared and    the folowing screen
  1527. X    will be presented.
  1528. X
  1529. X
  1530. X
  1531. X
  1532. X      .--[ ecu 1.96 Copyright 1986,1989, W. Tucker ]-----------------.
  1533. X      |                                     |
  1534. X      |     Name/phone number to call: ___________________             |
  1535. X      |                                     |
  1536. X      |                                     |
  1537. X      |     tty: /dev/tty1a                         |
  1538. X      |                                     |
  1539. X      |     duplex: F  baud: 2400     parity:N  (data bits 8)         |
  1540. X      |     Add NL    to transmitted CR: N                     |
  1541. X      |     Add NL    to received CR:       N                     |
  1542. X      |                                     |
  1543. X      |                                     |
  1544. X      |      TAB:next ^B:prev END:proceed ^D:phone    dir  ESC:quit ecu    |
  1545. X      `- logical phone directory entry,    phone number or    empty -------'
  1546. X
  1547. X
  1548. X
  1549. X
  1550. X
  1551. X    3.1.1  Name/Phone Number Field
  1552. X
  1553. X    If a dialing directory has been configured,    a literal phone    number need
  1554. X    not    be entered.  However, on your first invocation,     you'll    very likely
  1555. X    have no directory.    Therefore, you have three options:
  1556. X
  1557. X
  1558. X
  1559. X
  1560. X
  1561. X
  1562. X
  1563. X
  1564. X
  1565. X
  1566. X
  1567. X
  1568. X    Public Domain by wht@n4hgf                 7/25/91
  1569. X
  1570. X
  1571. X
  1572. X
  1573. X
  1574. X
  1575. X
  1576. X    ECU    Technical Description                      23
  1577. X
  1578. X
  1579. X
  1580. X     1.  Enter a literal telephone number, (e.g. 18005551212).
  1581. X         Hyphens and open and close    parentheses may    also
  1582. X         be    entered.
  1583. X
  1584. X     2.  Press ENTER to skip the 'Name/phone' field    and enter
  1585. X         ^D    to enter the telephone directory to enter your
  1586. X         first directory entry.
  1587. X
  1588. X     3.  Press END to enter    interactive mode and use the Dial
  1589. X         interactive command to dial a literal telephone num-
  1590. X         ber or to enter the dialing directory.
  1591. X
  1592. X
  1593. X
  1594. X    3.1.2  Other Fields
  1595. X
  1596. X    The    'tty' field may    be used    to select an outgoing line other than the
  1597. X    default /dev/tty1a.     Note:    only the last two characters of    the tty    name
  1598. X    need be entered.  The remainder of the tty name is assumed to be
  1599. X    '/dev/tty'.
  1600. X
  1601. X    The    'duplex' field may be used to select a duplex value other than the
  1602. X    default 'F'    (full).
  1603. X
  1604. X    The    'baud' field may be used to select a baud rate value other than    the
  1605. X    default 2400.
  1606. X
  1607. X    The    'parity' field may be used to select a parity value other than the
  1608. X    default 'N'    (none).
  1609. X
  1610. X
  1611. X    The    'Add NL    to transmitted CR' and 'Add NL to received CR' fields are
  1612. X    usually left defaulted to 'N' (no).     If you    will be    communicating with a
  1613. X    terminal (with a human), you will usually need to set both of these
  1614. X    fields to 'Y' as well as to    select 'H'alf duplex.
  1615. X
  1616. X
  1617. X    3.1.3  Special Characters
  1618. X
  1619. X    Special keyboard characters    while filling in the startup screen are:
  1620. X
  1621. X
  1622. X
  1623. X
  1624. X
  1625. X
  1626. X
  1627. X
  1628. X
  1629. X
  1630. X
  1631. X
  1632. X
  1633. X
  1634. X    Public Domain by wht@n4hgf                 7/25/91
  1635. X
  1636. X
  1637. X
  1638. X
  1639. X
  1640. X
  1641. X
  1642. X    ECU    Technical Description                      24
  1643. X
  1644. X
  1645. X
  1646. X      TAB     move to next field ...    if nothing typed in
  1647. X         the field, do not disturb contents
  1648. X
  1649. X      ^B     back up to previous field
  1650. X
  1651. X      END     proceed with session, dialing remote if
  1652. X         logical directory entry name or literal
  1653. X         telephone number enetered
  1654. X
  1655. X      ^D     enter phone directory
  1656. X
  1657. X      ESC     quit ecu without any communications
  1658. X
  1659. X
  1660. X
  1661. X    3.2     Command Line Arguments    and Switches
  1662. X
  1663. X
  1664. X    ECU    can be started in a number of ways:
  1665. X
  1666. X
  1667. X     ecu [-lxx] [-b<baud>] [-h] [-e|-o] [-t] <tel-number>
  1668. X     ecu [-lxx] [-b<baud>] [-h] [-e|-o] [-t]
  1669. X     ecu [-t] [-h] <logical>
  1670. X     ecu [-lxx] [-b<baud>] [-h] [-e|-o] [-d] [-D] -p <proc>    [<arg> ...]
  1671. X
  1672. X
  1673. X
  1674. X    3.2.1  Non-Switch Arguments
  1675. X
  1676. X    Only one type of non-switch    argument may be    used on    the command line.
  1677. X    <tel-number> or <logical> may appear when the -p switch is absent.    One
  1678. X    or more <arg> arguments may    appear when the    -p switch is used.
  1679. X
  1680. X
  1681. X    3.2.2  <tel-number>
  1682. X
  1683. X    This type of argument has a    digit as its initial character and
  1684. X    represents an actual telephone number to be    passed to a modem dialer
  1685. X    program or Dialers chat script.  The string    may contain non-numeric
  1686. X    characters if appropriate for a dialer program, such as dialTBIT.  For
  1687. X    example:
  1688. X
  1689. X    ecu -l/dev/tty2a -b 19200 -e 5551212UC
  1690. X
  1691. X    uses tty2a (assumed    to be connected    to a Trailblazer modem)    and
  1692. X    establishes    a 19200    baud, even parity PEP Compressed connection after
  1693. X    dialing 5551212.
  1694. X
  1695. X
  1696. X
  1697. X
  1698. X
  1699. X
  1700. X    Public Domain by wht@n4hgf                 7/25/91
  1701. X
  1702. X
  1703. X
  1704. X
  1705. X
  1706. X
  1707. X
  1708. X    ECU    Technical Description                      25
  1709. X
  1710. X
  1711. X
  1712. X    3.2.3  <logical>
  1713. X
  1714. X    This type of argument has an alphabetic initial character and causes the
  1715. X    dialing directory entry by that name to be dialed.    The line may be
  1716. X    specified by '-l', but if the dialing directory specifies a    line (tty
  1717. X    field contaions other than 'Any'), the dialing directory entry will
  1718. X    override it.  The '-b', '-e' and '-o' switches are ignored;    the values
  1719. X    specified by the dialing directory entry are used.    The '-t' and '-h'
  1720. X    switches are valid and honored if present.
  1721. X
  1722. X
  1723. X    3.2.4  <arg>
  1724. X
  1725. X    This type of argument is passed to an initial procedure when the -p
  1726. X    switch is present.
  1727. X
  1728. X
  1729. X    ecu    -p unixlogin user pwd ansi43
  1730. X
  1731. X    executes unixlogin.ep with arguments 'user'    'pwd' 'ansi43'
  1732. X
  1733. X    For    more detail, refer to the description of -p, -d    and -D below.
  1734. X
  1735. X
  1736. X    3.2.5  -l
  1737. X
  1738. X    When ECU starts up,    it normally chooses a line as described    later in the
  1739. X    section titled "Choosing a Dialout Line".  Specifying the -l switch    can
  1740. X    suggest that the program choose a specific line.  The argument to the
  1741. X    switch is the last two charcters of    the ttyname; e.g., "-l1a".
  1742. X
  1743. X    On a system    with HoneyDanBerr UUCP,    to access a device which does not
  1744. X    appear in the Devices file,    it may be necessary to explicitly specify
  1745. X    the    device with -l.
  1746. X
  1747. X
  1748. X    3.2.6  -f
  1749. X    Normally, ECU starts up in the full    duplex mode.  If half duplex is
  1750. X    desired, the -f switch is used.
  1751. X
  1752. X
  1753. X    3.2.7  -e, -o
  1754. X
  1755. X    Normally, ECU starts up with 8 data    bits and no parity.  If    even parity
  1756. X    is desired,    the -e switch is specified.  If    odd parity is desired, the
  1757. X    -o switch is specified.
  1758. X
  1759. X    These switches
  1760. X
  1761. X
  1762. X
  1763. X
  1764. X
  1765. X
  1766. X    Public Domain by wht@n4hgf                 7/25/91
  1767. X
  1768. X
  1769. X
  1770. X
  1771. X
  1772. X
  1773. X
  1774. X    ECU    Technical Description                      26
  1775. X
  1776. X
  1777. X
  1778. X    3.2.8  -p <procname>
  1779. X
  1780. X    The    -p switch causes ECU to    execute    the procedure <procname>
  1781. X    ("<procname>.ep") immediately.  Such a procedure is    termed the initial
  1782. X    procedure.    All non-switch arguments after <procname> are passed as
  1783. X    arguments to the initial procedure (see the    descriptions of    the integer
  1784. X    function %argc and the string function %argv).
  1785. X
  1786. X
  1787. X    3.2.9  -d
  1788. X
  1789. X    The    -d switch instructs ECU    to "die" (terminate with error status) if an
  1790. X    initial procedure (-p) fails.  This    switch ensures a batch ECU execution
  1791. X    will hang up any connection    and terminate if a procedure error occurs.
  1792. X    See    also -D    below.
  1793. X
  1794. X    Absence of the -d and -D switches causes ecu (upon any completion of the
  1795. X    initial procedure) to enter    the 1) interactive mode    if a line was
  1796. X    successfully attached by the procedure or 2) the setup menu    if no line
  1797. X    was    attached.
  1798. X
  1799. X
  1800. X    3.2.10  -D
  1801. X
  1802. X    The    -D switch instructs ECU    to unconditionally terminate when an initial
  1803. X    procedure finishes.
  1804. X
  1805. X
  1806. X    3.2.11  -t
  1807. X
  1808. X    The    -t switch instructs ECU    to map incoming    and outgoing carriage
  1809. X    returns to carriage    return/line feed pairs.     This is helpful if the
  1810. X    remote connection will be to a terminal with a human operator.  Use    of
  1811. X    the    -h switch is probably also necessary.
  1812. X
  1813. X
  1814. X    3.2.12  -A
  1815. X
  1816. X    Normally, ECU reads    the terminal type (TERM    environment variable) to
  1817. X    determine whether or not a terminal    is "ANSI"-like or not.    -A forces
  1818. X    ECU    to treat the terminal as an ANSI terminal, regardless of the
  1819. X    contents of    the $TERM string.
  1820. X
  1821. X
  1822. X    3.2.13  -N
  1823. X
  1824. X    This switch    forces ECU to treat the    terminal as a non-ANSI terminal.  It
  1825. X    has    the opposite effect of -A.  You    must have a valid function key
  1826. X    recognition    entry for the $TERM type if this switch    is used.
  1827. X
  1828. X
  1829. X
  1830. X
  1831. X
  1832. X    Public Domain by wht@n4hgf                 7/25/91
  1833. X
  1834. X
  1835. X
  1836. X
  1837. X
  1838. X
  1839. X
  1840. X    ECU    Technical Description                      27
  1841. X
  1842. X
  1843. X
  1844. X    3.3     Environment Variables
  1845. X
  1846. X
  1847. X    Prior to starting ECU, it is useful, but not necessary, to establish two
  1848. X    environment    variables, ECUPROMPT and ECUHELP.
  1849. X
  1850. X
  1851. X    3.3.1  ECUPROMPT
  1852. X
  1853. X    The    ECUPROMPT environment variable determines the prompt printed by    ECU
  1854. X    when the interactive command key ("HOME") is pressed.  When    you first
  1855. SHAR_EOF
  1856. true || echo 'restore of doc/ecu.man failed'
  1857. fi
  1858. echo 'End of ecuman310 part 1'
  1859. echo 'File doc/ecu.man is continued in part 2'
  1860. echo 2 > _shar_seq_.tmp
  1861. exit 0
  1862. --------------------------------------------------------------------
  1863. Warren Tucker, TuckerWare emory!n4hgf!wht or wht@n4hgf.Mt-Park.GA.US
  1864. Hacker Extraordinaire  d' async PADs,  pods,  proteins and protocols
  1865.  
  1866. exit 0 # Just in case...
  1867. -- 
  1868. Kent Landfield                   INTERNET: kent@sparky.IMD.Sterling.COM
  1869. Sterling Software, IMD           UUCP:     uunet!sparky!kent
  1870. Phone:    (402) 291-8300         FAX:      (402) 291-4362
  1871. Please send comp.sources.misc-related mail to kent@uunet.uu.net.
  1872.