home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume21 / ecuman / part02 < prev    next >
Text File  |  1991-08-09  |  55KB  |  2,093 lines

  1. Newsgroups: comp.sources.misc
  2. From: Warren Tucker <wht@n4hgf.Mt-Park.GA.US>
  3. Subject:  REPOST: v21i091:  Manual for ECU comm package rev 3.10, Part02/04
  4. Message-ID: <1991Aug9.181151.28543@sparky.IMD.Sterling.COM>
  5. X-Md4-Signature: 15b71571fc1f2c98a29aad62d3d58733
  6. Date: Fri, 9 Aug 1991 18:11:51 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 91
  11. Archive-name: ecuman/part02
  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.02 (part 2 of ecuman310)
  20. # do not concatenate these parts, unpack them in order with /bin/sh
  21. # file doc/ecu.man continued
  22. #
  23. if touch 2>&1 | fgrep 'amc' > /dev/null
  24.  then TOUCH=touch
  25.  else TOUCH=true
  26. fi
  27. if test ! -r _shar_seq_.tmp; then
  28.     echo 'Please unpack part 1 first!'
  29.     exit 1
  30. fi
  31. (read Scheck
  32.  if test "$Scheck" != 2; then
  33.     echo Please unpack part "$Scheck" next!
  34.     exit 1
  35.  else
  36.     exit 0
  37.  fi
  38. ) < _shar_seq_.tmp || exit 1
  39. if test ! -f _shar_wnt_.tmp; then
  40.     echo 'x - still skipping doc/ecu.man'
  41. else
  42. echo 'x - continuing file doc/ecu.man'
  43. sed 's/^X//' << 'SHAR_EOF' >> 'doc/ecu.man' &&
  44. X    run    ECU, try setting it to your name, e. g.,
  45. X
  46. X     setenv    ECUPROMPT Ralph       if you use csh
  47. X
  48. X     ECUPROMPT=Ralph       if you use sh, ksh, etc.
  49. X     export    ECUPROMPT
  50. X
  51. X    Then, when you see how it used, you    may wish to establish a    more
  52. X    permanent choice in    your .login or .profile.
  53. X
  54. X
  55. X    3.3.2  ECUHELP
  56. X
  57. X    Ordinarily,    ECU looks for interactive command help information in
  58. X    "/usr/lib/ecu/ecuhelp.data".  The ECUHELP environment may be set to    the
  59. X    complete pathname of the ecu help file if an alternate file    is to be
  60. X    used.
  61. X
  62. X    The    help file is explained later in    the section titled "Online Command
  63. X    Dictionary".
  64. X
  65. X
  66. X
  67. X
  68. X
  69. X
  70. X
  71. X
  72. X
  73. X
  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
  87. X    Public Domain by wht@n4hgf                 7/25/91
  88. X
  89. X
  90. X
  91. X
  92. X
  93. X
  94. X
  95. X    ECU    Technical Description                      28
  96. X
  97. X
  98. X
  99. X    4.    Interactive Mode Commands
  100. X
  101. X
  102. X    The    following is a partial list of commands    available in the interactive
  103. X    (non-procedure) mode.  It is not necessary to to enter the entire
  104. X    command in most cases.  The    portion    of each    command    which must be
  105. X    entered is capitalized in the following section headers.
  106. X
  107. X    Refer to the sections titled Interactive Command History and Line
  108. X    Editing for    more information.
  109. X
  110. X
  111. X    4.1     AX : ascii char to hex/oct/dec
  112. X
  113. X    usage: ax [<param>]
  114. X
  115. X
  116. X    <param> may    be a single ASCII character, a standard    ASCII identifier
  117. X    (such as ETX), or a    two-character control character    identifier (such as
  118. X    ^C,    typed as a caret followed by a C).
  119. X
  120. X    If no argument is supplied,    a table    of control characters is printed
  121. X    containing decimal,    octal, hex, ASCII identifiers and two-character
  122. X    control character identifier.
  123. X
  124. X
  125. X
  126. X    4.2     BAud :    set/display line baud rate
  127. X
  128. X    usage: baud    [<baud-rate>]
  129. X
  130. X
  131. X    <baud-rate>, if specified, must be taken from the values 110, 300, 600,
  132. X    1200, 2400,    4800, 9600, 19200 and 38400.  On some systems, 19200 and
  133. X    38400 may not be supported.     If baud rate 110 is selected, 2 stop bits
  134. X    are    automatically specified; other baud rates set 1    stop bit.  If
  135. X    <baud-rate>    is not supplied, the current baud rate is displayed.
  136. X
  137. X    The    setting    may be automatically changed as    the result of a    'dial'
  138. X    command.  See also the dial    and parity command descriptions.
  139. X
  140. X
  141. X
  142. X    4.3     BN : all console event    alarm
  143. X
  144. X    usage: bn [    0 | 1 |    2 ]
  145. X
  146. X
  147. X    "bell notify": If no argument is supplied, the current setting is
  148. X    displayed.    Specifying 0 disables the facility; 1 causes an    audible
  149. X    alarm to be    sounded    on all of the XENIX virtual consoles upon receipt of
  150. X
  151. X
  152. X
  153. X    Public Domain by wht@n4hgf                 7/25/91
  154. X
  155. X
  156. X
  157. X
  158. X
  159. X
  160. X
  161. X    ECU    Technical Description                      29
  162. X
  163. X
  164. X
  165. X    a bell (0x07) character from the remote system; 2 causes an    audible
  166. X    alarm to be    sent to    all consoles upon receipt of ANY characters from the
  167. X    remote system.  A non-zero value also causes an audible alarm to be    sent
  168. X    to all console upon    the successful completion of a 'redial'    command
  169. X    which must retry more than one redial attempt or upon completion of    a
  170. X    file transfer operation.
  171. X
  172. X    Different alarms are sent depending    upon the the type of event causing
  173. X    the    alarms.
  174. X
  175. X    BN is set to 1 when    ECU begins executing.
  176. X
  177. X    The    setting    of this    command    has no effect if ECU is    not run    from a
  178. X    multiscreen.
  179. X
  180. X
  181. X    4.4     BReak : send break to remote
  182. X
  183. X    usage: break
  184. X
  185. X
  186. X    This command sends a break signal to the remote system.
  187. X
  188. X
  189. X
  190. X    4.5     CD : change current directory
  191. X
  192. X    usage: cd [<dir-path>]
  193. X
  194. X
  195. X    This command allows    you to change the working directory of the ECU
  196. X    process.  If <dir-path> is supplied, the previous working directory    is
  197. X    displayed, and <dir-path> is made the new working directory.  A history
  198. X    of previous    directory changes is maintained.  Entering the cd command
  199. X    shows the numbered history list and    allows you to select a new directory
  200. X    by entering    the number.  Other commands allow deletion of directories
  201. X    from the list or saving the    list to    file ~/.ecu/dir.  This file is
  202. X    automatically read at ECU startup, providing a convenient list of
  203. X    directories    available for quick selection.    If you edit this file by
  204. X    hand, you may force    ECU to re-read the file    using the %read    option.
  205. X
  206. X    The    %xmitcd    option transmits "cd "+current_directory+CR to the remote, a
  207. X    convenience    to set the remote current directory to the same    as your
  208. X    local one.
  209. X
  210. X    The    %pushd # option    pushes the current directory onto the same stack
  211. X    used by the    pushd interactive command and changes the current directory
  212. X    to the numbered directory specified    by #.  Use the popd interactive
  213. X    command to return to the previous directory.
  214. X
  215. X    Other %options have    usage information by entering them with    no
  216. X
  217. X
  218. X
  219. X    Public Domain by wht@n4hgf                 7/25/91
  220. X
  221. X
  222. X
  223. X
  224. X
  225. X
  226. X
  227. X    ECU    Technical Description                      30
  228. X
  229. X
  230. X
  231. X    arguments.
  232. X
  233. X    4.6     DA : decimal to ascii char
  234. X
  235. X    usage: da [<decimal-val>]
  236. X
  237. X
  238. X    <decimal-val> is a decimal value between 0 and 0377; the parity (sign)
  239. X    bit    is stripped and    the equivalent ASCII character value is    displayed.
  240. X
  241. X    If no argument is supplied,    a table    of control characters is printed
  242. X    containing decimal,    octal, hex, ASCII identifiers and two-character
  243. X    control character identifier.
  244. X
  245. X
  246. X
  247. X    4.7     Dial :    dial remote destination
  248. X
  249. X    usage: dial    [<dial-param>]
  250. X
  251. X
  252. X    <dial-param> may take one of two forms, a telephone    number to dial or a
  253. X    logical name which can be found in the user    phone directory    (in file
  254. X    ~/.ecu/phone).
  255. X
  256. X    If a telephone number is supplied, the phone number    is dialed; you must
  257. X    first have set the desired baud rate and parity using the baud and
  258. X    parity commands.
  259. X
  260. X    If a logical name is entered, the phone directory is searched; if the
  261. X    entry is found, the    baud rate and parity is    automatically set.  if a
  262. X    procedure file can be found    in the current directory, the user's home
  263. X    .ecu subdirectory or the ECU library directory (normally
  264. X    /usr/local/lib/ecu)    whose name matches the logical name, then the
  265. X    procedure is executed with the argument '!INTERACTIVE'.
  266. X
  267. X    If <dial-param> is not supplied, then a screen-oriented self-documenting
  268. X    <:-)> directory manager is executed; you may scan the the directory    to
  269. X    select a number to dial, as    well as    add, remove and    edit entries.
  270. X
  271. X    4.7.1  Alternate Dialing Directory
  272. X
  273. X    The    default    dialing    directory is ~/.ecu/phone.  You    may change to
  274. X    another directory by issuing the interactive dial command with no
  275. X    arguments to enter the dialing directory menu, selecting 'c'hange dial
  276. X    directory, and entering the    name of    a new directory.  The specified
  277. X    pathname must either be a fully qualified pathname or a pathname
  278. X    relative to    the current working directory.    Once an    alternate directory
  279. X    has    been selected, it will be used by both the interactive command 'dial
  280. X    <logical>' and the dialing directory menu.
  281. X
  282. X
  283. X
  284. X
  285. X    Public Domain by wht@n4hgf                 7/25/91
  286. X
  287. X
  288. X
  289. X
  290. X
  291. X
  292. X
  293. X    ECU    Technical Description                      31
  294. X
  295. X
  296. X
  297. X    See    the section below titled "Choosing a Dialout Line" for more
  298. X    information    on using "Any" in the "tty" field of a directory entry.
  299. X
  300. X
  301. X    4.7.2  Multi-Number    Redial Cycle
  302. X
  303. X    While in the  dialing directory, you may "mark" one    or more    entries    for
  304. X    a cyclical redial attempt.    When any entry is marked, typing ENTER
  305. X    (carriage return or    line feed/newline) causes each marked entry to be
  306. X    dialed in turn until one of    the remote systems is successfully
  307. X    connected.    When a successful connection occurs, ECU unmarks the
  308. X    associated entry, leaving the others marked.  Thus,    you may    mark several
  309. X    entries and    merely reenter the dialing directory after each    connection
  310. X    is finished    and press ENTER    to reenter the redial cycle.  If a single
  311. X    entry is marked, ECU pauses    15 seconds between each    dialing    attempt,
  312. X    otherwise 5    seconds.  Presing 'c' will cause the pause to be prematurely
  313. X    terminated and the next attempt to be made.     Pressing your interrupt key
  314. X    (DEL, ^C or    whatever) aborts the cycle.  If    you interrupt an active
  315. X    dialing attempt, you will be prompted as to    whether    or not you wish    to
  316. X    cycle to the next entry or abort the cycle.
  317. X
  318. X    If no entries are marked for redial, the current, highlighted directory
  319. X    entry is used for dialing.
  320. X
  321. X    To unmark a    single entry, press 'M'    (uppercase M).    To unmark all
  322. X    entries, press 'U'.
  323. X
  324. X
  325. X    4.7.3  Automatic Dialing/Login Procedure
  326. X
  327. X    Upon dialing from the menu,    if a procedure file can    be found in the
  328. X    current directory, the user's home .ecu subdirectory or the    ECU library
  329. X    directory (normally    /usr/local/lib/ecu) whose name matches the logical
  330. X    name, then the procedure is    executed with the argument '!MENU'.  It    is
  331. X    the    responsibility of the automatically executed procedure to establish
  332. X    connection with the    remote system (by using    the procedure dial command).
  333. X    An example of an automatic login procedure can be found in the
  334. X    distribution subdirectory 'models' named 'sysname.ep'.  A companion
  335. X    procedure is 'unixlogin.ep'.
  336. X
  337. X    For    example,
  338. X
  339. X    | entry name | telephone number | tty | baud P | ...
  340. X    | sysname     | 555-1234        | Any | 2400 N | ...
  341. X
  342. X
  343. X
  344. X
  345. X
  346. X
  347. X
  348. X
  349. X
  350. X
  351. X    Public Domain by wht@n4hgf                 7/25/91
  352. X
  353. X
  354. X
  355. X
  356. X
  357. X
  358. X
  359. X    ECU    Technical Description                      32
  360. X
  361. X
  362. X
  363. X    #-----------------------------------------------------------
  364. X    # sysname.ep - procedure to    call UNIX-like system 'sysname'
  365. X    #
  366. X    # CONFIDENTIAL - This function should be chmod 0600    because
  367. X    # it contains a password which you probably    don't want to be
  368. X    # common knowledge.
  369. X    #
  370. X    # This procedure calls 'unixlogin.ep' to do    the hard work.
  371. X    #-----------------------------------------------------------
  372. X
  373. X    mkvar $s_pwd(20)    # local variable preserves password
  374. X    $s_pwd = 'password' # security by disappearing when the
  375. X                # procedure    terminates
  376. X
  377. X    #    also, by keeping the password text off the following line,
  378. X    #    the password will not be displayed if you abort    (interrupt)
  379. X    #    the procedure
  380. X
  381. X    do 'unixlogin' %argv(0)    'username' $s_pwd 'ansi-or-whatever'
  382. X
  383. X
  384. X
  385. X    4.8     DO : perform procedure
  386. X
  387. X    usage: do <procname> [<arg>    ... ]
  388. X
  389. X
  390. X    Perform ECU    procedure.  Ecu    searches for <procname>.ep in the current
  391. X    directory.    If the file is not found, the program looks for    the file in
  392. X    the    ~/.ECU directory.  One or more arguments may be    passed to the
  393. X    procedure.    Arguments aare made available in the called procedure by use
  394. X    of the %argc integer function and %argv string function.
  395. X
  396. X    Unlike arguments to    the do procedure command, arguments to the do
  397. X    interactive    command    are not    quoted and may not contain embedded spaces
  398. X    or tabs.
  399. X
  400. X
  401. X
  402. X    4.9     DUplex    : set/display duplex
  403. X
  404. X    usage: duplex [ Full | Half    ]
  405. X
  406. X
  407. X    This command specifies whether or not ECU is to locally echo characters
  408. X    typed by you at the    keyboard.  The overwhelming majority of    remote
  409. X    systems provide the    echo function, in which    case full duplex must be
  410. X    used.  For the rare    occasions when the remote system does not echo your
  411. X    keyboard input, setting half duplex    will allow you to see what you are
  412. X    typing.
  413. X
  414. X
  415. X
  416. X
  417. X    Public Domain by wht@n4hgf                 7/25/91
  418. X
  419. X
  420. X
  421. X
  422. X
  423. X
  424. X
  425. X    ECU    Technical Description                      33
  426. X
  427. X
  428. X
  429. X    When communicating with another terminal in    a "teletype conversation",
  430. X    setting half duplex    is generally required.    In such    cases, use of the
  431. X    nl,    nlin and nlout commands    may also be required.
  432. X
  433. X    The    default    setting    for duplex is full.
  434. X
  435. X
  436. X
  437. X    4.10  EXit : drop carrier, exit program
  438. X
  439. X    usage: exit
  440. X
  441. X
  442. X    This command terminates ECU    promptly.  If your modem does not drop
  443. X    carrier upon loss of Data Terminal Ready (DTR), the    command    will
  444. X    terminate ECU, but may leave the communications line off hook.  It is
  445. X    strongly recommended that you configure your modem to hang up the phone
  446. X    line when DTR drops.  A shorthand version of this command exists: '.' is
  447. X    equivalent to exit.
  448. X
  449. X
  450. X
  451. X    4.11  FI : send text file to line
  452. X
  453. X    usage: fi [<filename>]
  454. X
  455. X
  456. X    "file insert": This    command    causes file characters to be inserted into
  457. X    the    transmit data stream as    though they had    been entered at    the
  458. X    keyboard.  No error    correction is provided,    although XON/XOFF flow
  459. X    control is obeyed.
  460. X
  461. X    If <filename> is not entered on the    command    line, a    prompt for the
  462. X    filename is    made.  Once the    filename has been entered and file has been
  463. X    opened, you    are asked whether the file should be transmitted at full
  464. X    speed, by "echo pacing" or by a single line    at a time.  You    may also
  465. X    append an 'f', 'e' or 's' argument to the command line.
  466. X
  467. X    If your remote can tolerate    it, full speed transmission is the fastest.
  468. X    Some systems are not capable of receiving large amount of data
  469. X    ("streaming    data") without pauses.    Even with "full" speed transmission,
  470. X    some "pacing" (inter-character delay) is introduced    to ease    loading    on
  471. X    the    remote system.    Pressing the interrupt key (DEL) stops a full speed
  472. X    transmission.
  473. X
  474. X    By specifying echo pacing, it is possible to increase the likelihood of
  475. X    proper receipt.  Echo pacing reads the return data stream to attempt to
  476. X    keep from overloading the remote.  Pressing    the interrupt key (DEL)
  477. X    stops an echo paced    transmission.
  478. X
  479. X    As a last resort, if echo pacing is    not working for    you, (i.e., you    are
  480. X
  481. X
  482. X
  483. X    Public Domain by wht@n4hgf                 7/25/91
  484. X
  485. X
  486. X
  487. X
  488. X
  489. X
  490. X
  491. X    ECU    Technical Description                      34
  492. X
  493. X
  494. X
  495. X    using the command in an environment    where the remote does not echo your
  496. X    characters), single    line at    a time transmission is available.  With
  497. X    "single" line transmission,    you must press the space key to    initiate
  498. X    sending each line.    Pressing the 'ESC' or 's' key stops the    transfer.
  499. X
  500. X
  501. X    4.12  FKey : function key definition
  502. X
  503. X    usage: fkey    [<keyset_name>]
  504. X
  505. X
  506. X    This command allows    the mapping of function    keys F1-F12, PgUp, PgDn, End
  507. X    and    Ins and    the cursor up, down, left and right keys to emit a desired
  508. X    sequence of    characters when    a function key is pressed.  <keyset_name>
  509. X    specifies which key    set in ~/.ecu/keys is to be selected. Sample entry:
  510. X
  511. X     hayes
  512. X         F1:escape:+ + +
  513. X         F2:autoans:A T S 0    = 1 cr
  514. X         F3:dial:A T D T
  515. X     bbs
  516. X         F1:cancel:^K
  517. X         F2:yes:y cr
  518. X
  519. X
  520. X    If a keyset_name matches a logical dial directory name, it is loaded
  521. X    when the number is dialed.
  522. X
  523. X    The    characters in the mapped string    may be any printable character or
  524. X    one    of the following:
  525. X
  526. X     map ->    character    map -> character
  527. X     ---    -----------    ---    ------------
  528. X     nul    0 000 00 ^@  |    dle    16 020 10 ^P
  529. X     soh    1 001 01 ^A  |    dc1    17 021 11 ^Q
  530. X     stx    2 002 02 ^B  |    dc2    18 022 12 ^R
  531. X     etx    3 003 03 ^C  |    dc3    19 023 13 ^S
  532. X     eot    4 004 04 ^D  |    dc4    20 024 14 ^T
  533. X     enq    5 005 05 ^E  |    nak    21 025 15 ^U
  534. X     ack    6 006 06 ^F  |    syn    22 026 16 ^V
  535. X     bel    7 007 07 ^G  |    etb    23 027 17 ^W
  536. X     bs    8 010 08 ^H  |    can    24 030 18 ^X
  537. X     ht    9 011 09 ^I  |    em     25 031 19 ^Y
  538. X     nl    10 012 0a ^J  |    sub    26 032 1a ^Z
  539. X     vt    11 013 0b ^K  |    esc    27 033 1b ^[
  540. X     ff    12 014 0c ^L  |    fs     28 034 1c ^(
  541. X     cr    13 015 0d ^M  |    gs     29 035 1d ^]
  542. X     so    14 016 0e ^N  |    rs     30 036 1e ^^
  543. X     si    15 017 0f ^O  |    us     31 037 1f ^_
  544. X
  545. X
  546. X
  547. X
  548. X
  549. X    Public Domain by wht@n4hgf                 7/25/91
  550. X
  551. X
  552. X
  553. X
  554. X
  555. X
  556. X
  557. X    ECU    Technical Description                      35
  558. X
  559. X
  560. X
  561. X    4.13  HAngup : hang    up modem
  562. X
  563. X    usage: hangup
  564. X
  565. X
  566. X    This causes    DTR to be momentarily interrupted, terminating any
  567. X    outstanding    connection.  Your DCE (modem) must be able to drop carrier
  568. X    upon loss of DTR.
  569. X
  570. X
  571. X    4.14  HElp : invoke    help
  572. X
  573. X    usage: help    [<cmd-name>]
  574. X
  575. X
  576. X    Issuing this command with no argument displays a list of commands
  577. X    followed by    a request for a    command    for further information.
  578. X
  579. X
  580. X    4.15  LLp :    set session log    to /dev/lp
  581. X
  582. X    usage: llp
  583. X
  584. X
  585. X    This command is a shorthand    version    of 'log    /dev/lp'.  /dev/lp must    not
  586. X    be under the control of a print spooler.
  587. X
  588. X
  589. X    4.16  LOFf : turn off session logging
  590. X
  591. X    usage: loff
  592. X
  593. X
  594. X    This command is shorthand for 'log off'.  If session logging is active,
  595. X    it is turned off.
  596. X
  597. X
  598. X    4.17  LOG :    session    logging    control
  599. X
  600. X    usage: log [-s] [-r] [ | off | filename ]
  601. X    -s "scratch" previous file contents; otherwise append
  602. X    -r "raw" logging; otherwise non-printable characters
  603. X        other than tab and newline are omitted from    the log
  604. X
  605. X
  606. X    This command controls session logging; issuing the command with no
  607. X    argument causes the    status of session logging to be    displayed.  The
  608. X    special argument 'off' causes active logging to be terminated.  Other
  609. X    argument values cause logging to start using the argument as a filename.
  610. X    Issuing a log command with a filename when logging is already active
  611. X    causes the previous    file to    be closed and the new file to be opened.
  612. X
  613. X
  614. X
  615. X    Public Domain by wht@n4hgf                 7/25/91
  616. X
  617. X
  618. X
  619. X
  620. X
  621. X
  622. X
  623. X    ECU    Technical Description                      36
  624. X
  625. X
  626. X
  627. X    Switches are meaningful only when used in conjunction with a filename to
  628. X    start logging.
  629. X
  630. X
  631. X
  632. X    4.18  NL : display CR/LF mapping
  633. X
  634. X    usage: nl
  635. X
  636. X
  637. X    Display the    current    setting    of CR/LF mapping.  For more information,
  638. X    refer to the nlin and nlout    command    descriptions.
  639. X
  640. X
  641. X
  642. X    4.19  NLIn : set receive CR/LF mapping
  643. X
  644. X    usage: nlin    [<y-n>]
  645. X
  646. X
  647. X    This command controls whether or not a newline (NL/LF) character is    sent
  648. X    to the screen upon receipt of a carriage return (CR) from the remote
  649. X    system.  Most remote computers supply a NL after CR.  When communicating
  650. X    with another terminal in a "teletype conversation",    this is    generally
  651. X    not    the case (see also the duplex command).
  652. X
  653. X    Issuing the    command    without    <y-n> causes the current setting to be
  654. X    displayed.    The format of <y-n> is flexible: 'y' or    '1' enables
  655. X    appending NL to CR,    'n' or '0' causes the feature to be disabled.
  656. X
  657. X
  658. X
  659. X    4.20  NLOut    : set transmit CR/LF mapping
  660. X
  661. X    usage: nlout [<y-n>]
  662. X
  663. X
  664. X    This command controls whether or not a newline (NL/LF) character is    sent
  665. X    to the remote system upon transmission of a    carriage return    (CR) entered
  666. X    by the keyboard.  Most remote computers do not require (indeed
  667. X    "dislike") a NL after CR.  When communicating with another terminal    in a
  668. X    "teletype conversation", this is generally not the case (see also the
  669. X    duplex command).
  670. X
  671. X    Issuing the    command    without    <y-n> causes the current setting to be
  672. X    displayed.    The format of <y-n> is flexible: 'y' or    '1' enables
  673. X    appending NL to CR,    'n' or '0' causes the feature to be disabled.
  674. X
  675. X
  676. X
  677. X
  678. X
  679. X
  680. X
  681. X    Public Domain by wht@n4hgf                 7/25/91
  682. X
  683. X
  684. X
  685. X
  686. X
  687. X
  688. X
  689. X    ECU    Technical Description                      37
  690. X
  691. X
  692. X
  693. X    4.21  OA : octal to    ascii char
  694. X
  695. X    usage: oa [<octal-val>]
  696. X
  697. X
  698. X    <octal-val>    is a octal value between 0 and 0377; the parity    (sign) bit
  699. X    is stripped    and the    equivalent ASCII character value is displayed.
  700. X
  701. X    If no argument is supplied,    a table    of control characters is printed
  702. X    containing decimal,    octal, hex, ASCII identifiers and two-character
  703. X    control character identifier.
  704. X
  705. X
  706. X
  707. X    4.22  PARity : set/display line parity
  708. X
  709. X    usage: parity [ None | Even    | Odd ]
  710. X
  711. X
  712. X    This command controls the parity of    characters transmitted by the
  713. X    keyboard.  Issuing the command with    no argument displays the current
  714. X    setting.  When the argument    is supplied, only the first character is
  715. X    required.  Even or odd parity implies seven    data bits; no parity implies
  716. X    eight data bits.  Parity of    incoming characters is not checked.
  717. X
  718. X    The    setting    may be automatically changed as    the result of an interactive
  719. X    or procedure dial command.    See the    baud and dial command descriptions.
  720. X
  721. X
  722. X
  723. X    4.23  PId :    display    process    ids
  724. X
  725. X    usage: pid
  726. X
  727. X
  728. X    This command displays the process id of the    ECU transmitter    process, the
  729. X    ECU    receiver process and the process ids of    ECU's parent and group.
  730. X
  731. X
  732. X    4.24  PLog : procedure logging
  733. X
  734. X    usage: plog    [ <filename> | off]
  735. X
  736. X
  737. X    This command enables or disbles procedure logging.
  738. X
  739. X
  740. X
  741. X
  742. X
  743. X
  744. X
  745. X
  746. X
  747. X    Public Domain by wht@n4hgf                 7/25/91
  748. X
  749. X
  750. X
  751. X
  752. X
  753. X
  754. X
  755. X    ECU    Technical Description                      38
  756. X
  757. X
  758. X
  759. X    4.25  POpd : pop to    previous directory
  760. X
  761. X    usage: popd    [ | <#>    | all]
  762. X
  763. X
  764. X    This command returns to a previous directory after a pushd command has
  765. X    been previously executed.
  766. X
  767. X    If no argument is supplied,    the directory at the immediately previous
  768. X    level is restored.
  769. X
  770. X    If a numeric argument is supplied, the directory at    the specified level
  771. X    is restored; the level numbers may be obtained by issuing a    pushd
  772. X    command with no arguments.
  773. X
  774. X    If the 'all' argument is supplied, it is treated as    a numeric argument
  775. X    of 0; that is the directory    stack is cleared and the directory at level
  776. X    0 is restored.
  777. X
  778. X    The    directory stack    is shared between interactive and procedure
  779. X    commands.  Neither beginning nor ending a procedure    affects    the
  780. X    directory stack level.
  781. X
  782. X
  783. X    Examples:
  784. X       popd
  785. X       popd 3
  786. X       popd all
  787. X
  788. X
  789. X
  790. X    4.26  PTrace : control procedure trace
  791. X
  792. X    usage: ptrace [ 0 |    1 | on | off]
  793. X
  794. X
  795. X    This command controls whether or not procedure execution is    to be
  796. X    traced. Trace output is written to the screen and varys in its nature
  797. X    depending upon the command being traced.  Specifically, any    change to a
  798. X    string or integer variable is noted.  If tracing is    enabled, the output
  799. X    will also be written to the    procedure log file (see    the interactive    and
  800. X    procedure commands).  Issuing the command with no argument shows current
  801. X    status.
  802. X
  803. X
  804. X    4.27  PUshd    : push to new directory
  805. X
  806. X    usage: pushd [ | <dir>]
  807. X
  808. X
  809. X    This command either    1) saves the current directory pathname    on a stack
  810. X
  811. X
  812. X
  813. X    Public Domain by wht@n4hgf                 7/25/91
  814. X
  815. X
  816. X
  817. X
  818. X
  819. X
  820. X
  821. X    ECU    Technical Description                      39
  822. X
  823. X
  824. X
  825. X    and    establishes a new current directory or 2) displays the current stack
  826. X    and    current    directory.  The    stack size is 10.
  827. X
  828. X    If no argument is supplied,    the directory stack is displayed.
  829. X
  830. X    The    directory stack    is shared between interactive and procedure
  831. X    commands.  Neither beginning nor ending a procedure    affects    the
  832. X    directory stack level.
  833. X
  834. X
  835. X    Examples:
  836. X       pushd
  837. X       pushd /tmp
  838. X
  839. X
  840. X
  841. X    4.28  PWd :    print working directory
  842. X
  843. X    usage: pwd
  844. X
  845. X
  846. X    This command prints    the current working directory of the ECU process.
  847. X
  848. X
  849. X
  850. X    4.29  REDial : redial last number
  851. X
  852. X    usage: redial [<retry-count> [<pause-interval>]]
  853. X
  854. X
  855. X    This command redials a number previously dialed with the 'dial' command.
  856. X    Modem status is tested and multiple    retries    may be made.  <retry-count>
  857. X    specifies how many retries are to be made.    <pause-interval> specifies
  858. X    how    many seconds the program pauses    after a    failure    to connect.  You
  859. X    must specify <retry-count> in order    to specify <pause-interval>.  The
  860. X    default value for <retry-count> is 10, for <pause-interval>    is 60.
  861. X
  862. X    You    should know that in some jurisdictions,    it is ILLEGAL to dial the
  863. X    same telephone number more than a specified    number of times    during some
  864. X    interval of    time.  In any case, a <pause-interval> less than 15 seconds
  865. X    is silently    changed    to 15 seconds.
  866. X
  867. X
  868. X    4.30  REV :    ECU revision/make date
  869. X
  870. X    usage: rev
  871. X
  872. X
  873. X    This command displays ECU's    revision, the transmitter process id' and
  874. X    the    date and time ECU was made.
  875. X
  876. X
  877. X
  878. X
  879. X    Public Domain by wht@n4hgf                 7/25/91
  880. X
  881. X
  882. X
  883. X
  884. X
  885. X
  886. X
  887. X    ECU    Technical Description                      40
  888. X
  889. X
  890. X
  891. X    4.31  RK : receive via C-Kermit
  892. X
  893. X    usage: rk
  894. X
  895. X
  896. X    This command searches the PATH list    for 'ckermit' (Columbia    University
  897. X    C-Kermit) and invokes it to    receive    files.
  898. X
  899. X    The    file ~/.kermrc must be set up to have any desired initialization
  900. X    paraeters you desire.  Refer to C-Kermit documentation for more
  901. X    information.
  902. X
  903. X
  904. X
  905. X    4.32  RS : receive via SEAlink
  906. X
  907. X    usage: rs
  908. X
  909. X
  910. X    This command invokes a SEAlink receive protocol.
  911. X
  912. X
  913. X    4.33  RTScts : control RTS/CTS flow    control
  914. X
  915. X    usage: rtscts [ off| on | no | yes | 0 | 1 | 2 | 3 ]
  916. X
  917. X
  918. X    This SCO-only command controls the RTS/CTS flow control feature of the
  919. X    SCO    UNIX/XENIX line    driver (which may or may not work).
  920. X
  921. X    If no argument is supplied,    the current setting is displayed.
  922. X    Specifying 0 or n disables the facility; 1 or y causes RTS/CTS flow
  923. X    control to be enabled.
  924. X
  925. X    What the command does is to    manipulate the RTSFLOW and CTSFLOW bits    of
  926. X    the    termio c_cflag word (see termio(S)).
  927. X
  928. X    As of this writing,     SCO's driver does half    duplex (traditional, brain
  929. X    damaged) flow control if RTSFLOW is    enabled.  FAS does hardware flow
  930. X    control based on the device    magic number, but if you use a device number
  931. X    specifying no hardware flow    control, RTSFLOW and CTSFLOW can be used to
  932. X    specify SCO-style flow control.  Advice: use rts on    or off for SCO,    use
  933. X    appropriate    magic numbered device for FAS.
  934. X
  935. X
  936. X
  937. X
  938. X
  939. X
  940. X
  941. X
  942. X
  943. X
  944. X
  945. X    Public Domain by wht@n4hgf                 7/25/91
  946. X
  947. X
  948. X
  949. X
  950. X
  951. X
  952. X
  953. X    ECU    Technical Description                      41
  954. X
  955. X
  956. X
  957. X     argument | RTSFLOW | CTSFLOW    argument | RTSFLOW | CTSFLOW
  958. X     ---------+---------+---------    ---------+---------+---------
  959. X       off      |   0        |    0      0     |   0       |   0
  960. X       on      |   0        |    1      1     |   0       |   1
  961. X       no      |   0        |    0      2     |   1       |   0
  962. X       yes      |   1        |    1      3     |   1       |   1
  963. X
  964. X
  965. X
  966. X    4.34  RX : receive via XMODEM/CRC
  967. X
  968. X    usage: rx
  969. X
  970. X
  971. X    This command invokes ecurz to receive files    from the remote    system using
  972. X    XMODEM/CRC.
  973. X
  974. X    After entering the command,    you are    prompted as to whether or not file
  975. X    CR/LF characters are to be converted to newlines.  If you are
  976. X    transferring text files from a system which    contain    CR/LF line
  977. X    terminators, you must answer yes to    this question.    You should answer no
  978. X    when transferring binary files, such as executables, .arc files and    the
  979. X    like.  File    transfer progress is presented on a visual display.  To
  980. X    abort the transfer,    press your interrupt key (usually DEL unless reset
  981. X    with stty(C)).
  982. X
  983. X
  984. X
  985. X    4.35  RY : receive via YMODEM Batch
  986. X
  987. X    usage: ry
  988. X
  989. X
  990. X    This command invokes ecurz to receive files    from the remote    system using
  991. X    YMODEM batch with CRC-16 error correction.    The YMODEM is "true YMODEM",
  992. X    not    XMODEM-1k.  File transfer progress is presented    on a visual display.
  993. X    To abort the transfer, press your interrupt    key (usually DEL unless
  994. X    reset with stty(C)).
  995. X
  996. X
  997. X
  998. X    4.36  RZ : receive via ZMODEM/CRC32
  999. X
  1000. X    usage: rz
  1001. X
  1002. X
  1003. X    This command invokes ecurz to receive files    from the remote    system using
  1004. X    ZMODEM/CRC32.  File    transfer progress is presented on a visual display.
  1005. X    To abort the transfer, press your interrupt    key (usually DEL unless
  1006. X    reset with stty(C)).
  1007. X
  1008. X
  1009. X
  1010. X
  1011. X    Public Domain by wht@n4hgf                 7/25/91
  1012. X
  1013. X
  1014. X
  1015. X
  1016. X
  1017. X
  1018. X
  1019. X    ECU    Technical Description                      42
  1020. X
  1021. X
  1022. X
  1023. X    4.37  SDNAME : select screen dump file name
  1024. X
  1025. X    usage: sdname [<filename>]
  1026. X
  1027. X
  1028. X    When the "cursor 5"    key is pressed,    the screen contents are    dumped to a
  1029. X    file.  By default, this file is named '~/.ecu/screen.dump'.     This
  1030. X    command either displays or changes the current screen dump file name,
  1031. X    depending upon whether or not a argument is    supplied.
  1032. X
  1033. X    The    actions    of this    command    have no    effect on the operation    of the
  1034. X    procedure command.
  1035. X
  1036. X    See    the section titled "Screen Dump" for more information.
  1037. X
  1038. X
  1039. X    4.38  SK : send via    C-Kermit
  1040. X
  1041. X    usage: sk [<file-list>]
  1042. X
  1043. X
  1044. X    This command searches the PATH list    for 'ckermit' (Columbia    University
  1045. X    C-Kermit) and invokes it to    send files.  The file ~/.kermrc    must be    set
  1046. X    up to have any desired initialization paraeters you    desire.
  1047. X
  1048. X    After entering the command,    you are    prompted as to whether or not file
  1049. X    newline characters are to be converted to CR/LF.  If you are
  1050. X    transferring text files to a system    which requires CR/LF line
  1051. X    terminators, you must answer yes to    this question.    You should answer no
  1052. X    when transferring binary files, such as executables, .arc files and    the
  1053. X    like.  You are prompted to enter a list of files to    send, which may
  1054. X    contain one    or more    wildcard specifications.
  1055. X
  1056. X    The    file ~/.kermrc must be set up to have any desired initialization
  1057. X    arguments you desire.  Refer to C-Kermit documentation for more
  1058. X    information.
  1059. X
  1060. X
  1061. X
  1062. X    4.39  SS : send via    SEAlink
  1063. X
  1064. X    usage: ss [<file-list>]
  1065. X
  1066. X
  1067. X    This command invokes a SEAlink file    transmission protocol.
  1068. X
  1069. X
  1070. X
  1071. X
  1072. X
  1073. X
  1074. X
  1075. X
  1076. X
  1077. X    Public Domain by wht@n4hgf                 7/25/91
  1078. X
  1079. X
  1080. X
  1081. X
  1082. X
  1083. X
  1084. X
  1085. X    ECU    Technical Description                      43
  1086. X
  1087. X
  1088. X
  1089. X
  1090. X     .--[ Send SEAlink ]-------- dir: /u1/src/ecu ------------------.
  1091. X     |                                    |
  1092. X     |    File(s)    to send:                        |
  1093. X     |    ___________________________________________________________ |
  1094. X     |                                    |
  1095. X     |      TAB:next  ^B:prev  END:perform transfer  ESC:abort        |
  1096. X     `-- enter file(s) to send -------------------------------------'
  1097. X
  1098. X
  1099. X
  1100. X    4.40  STat : connection status
  1101. X
  1102. X    usage: stat
  1103. X
  1104. X
  1105. X    This command displays statistics about ECU usage.  Example display:
  1106. X
  1107. X    Date/time: 06-14-1988 11:40:35 (UTC    15:40)
  1108. X    Total chars    transmitted: 178
  1109. X    Total chars    received:    3681
  1110. X
  1111. X    Date/time: 06-14-1988 14:41:24 (UTC    18:41)
  1112. X    Connected to CompuHost (555-1234) at 14:40:57
  1113. X    Parameters:    2400-N-1 Connect time: 00:01:27
  1114. X    Total chars    transmitted: 234 (since    CONNECT    142)
  1115. X    Total chars    received:    2278 (since CONNECT 1478)
  1116. X
  1117. X
  1118. X
  1119. X    4.41  SX : send via    XMODEM/CRC
  1120. X
  1121. X    usage: sx [<file-name>]
  1122. X
  1123. X
  1124. X    This command invokes ecusz to send a file to the remote system using
  1125. X    XMODEM/CRC.
  1126. X
  1127. X    After entering the command,    you are    prompted as to whether or not file
  1128. X    CR/LF characters are to be converted to newlines.  If you are
  1129. X    transferring text files from a system which    contain    CR/LF line
  1130. X    terminators, you must answer yes to    this question.    You should answer no
  1131. X    when transferring binary files, such as executables, .arc files and    the
  1132. X    like.
  1133. X
  1134. X    You    are prompted to    enter a    filename to send.  File    transfer progress is
  1135. X    presented on a visual display.  To abort the transfer, press your
  1136. X    interrupt key (usually DEL unless reset with stty(C)).
  1137. X
  1138. X
  1139. X
  1140. X
  1141. X
  1142. X
  1143. X    Public Domain by wht@n4hgf                 7/25/91
  1144. X
  1145. X
  1146. X
  1147. X
  1148. X
  1149. X
  1150. X
  1151. X    ECU    Technical Description                      44
  1152. X
  1153. X
  1154. X
  1155. X     .--[ Send XMODEM/CRC ]----- dir: /u1/src/ecu -----------.
  1156. X     |                                 |
  1157. X     |    File to    send:                         |
  1158. X     |    ____________________________________________________ |
  1159. X     |                                 |
  1160. X     |    Binary:    Y (no NL-CR/LF translation)             |
  1161. X     |                                 |
  1162. X     |     TAB:next  ^B:prev  END:perform    transfer  ESC:abort  |
  1163. X     `-- enter file(s) to send ------------------------------'
  1164. X
  1165. X
  1166. X
  1167. X    4.42  SY : send via    YMODEM Batch
  1168. X
  1169. X    usage: sy [<file-list>]
  1170. X
  1171. X
  1172. X    This command invokes ecusz to send file(s) to the remote system using
  1173. X    YMODEM/CRC.
  1174. X
  1175. X    You    are prompted to    enter filename(s) to send, which may consist of    one
  1176. X    or more wildcard specifications.  File transfer progress is    presented on
  1177. X    a visual display.  To abort    the transfer, press your interrupt key
  1178. X    (usually DEL unless    reset with stty(C)).
  1179. X
  1180. X     .--[ Send YMODEM/CRC ]----- dir: /u1/src/ecu -----------.
  1181. X     |                                 |
  1182. X     |    File to    send:                         |
  1183. X     |    ____________________________________________________ |
  1184. X     |                                 |
  1185. X     |    Binary:    Y (no NL-CR/LF translation)             |
  1186. X     |                                 |
  1187. X     |     TAB:next  ^B:prev  END:perform    transfer  ESC:abort  |
  1188. X     `-- enter file(s) to send ------------------------------'
  1189. X
  1190. X
  1191. X
  1192. X    4.43  SZ : send via    ZMODEM/CRC32
  1193. X
  1194. X    usage: sz [<file-list>]
  1195. X
  1196. X
  1197. X    This command invokes ecusz to send file(s) to the remote system using
  1198. X    ZMODEM/CRC32.
  1199. X
  1200. X    You    are prompted to    enter filename(s) to send, which may consist of    one
  1201. X    or more wildcard specifications.  File transfer progress is    presented on
  1202. X    a visual display.  To abort    the transfer, press your interrupt key
  1203. X    (usually DEL unless    reset with stty(C)).
  1204. X
  1205. X    Note: if you specify sending only newer files and the remote receiver
  1206. X
  1207. X
  1208. X
  1209. X    Public Domain by wht@n4hgf                 7/25/91
  1210. X
  1211. X
  1212. X
  1213. X
  1214. X
  1215. X
  1216. X
  1217. X    ECU    Technical Description                      45
  1218. X
  1219. X
  1220. X
  1221. X    does not support the feature, it may skip (reject) all your    files.
  1222. X    Retry the transfer specifying 'N' to 'Transfer only    newer files'.
  1223. X
  1224. X    |                                     |
  1225. X    |  File(s) to send:                             |
  1226. X    |  ckermit-5a-130                             |
  1227. X    |                                     |
  1228. X    |  Binary: Y (no NL-CR/LF translation)                 |
  1229. X    |  Overwrite destination files: Y                     |
  1230. X    |  Send full pathames:  N                         |
  1231. X    |  Transfer    only newer files: N                     |
  1232. X    |                                     |
  1233. X    |      TAB:next  ^B:prev  END:perform transfer  ESC:abort         |
  1234. X    `--    enter file(s) to send ---------------------------------------'
  1235. X    `--    Y: no conversion, N: NLs converted to CR/LF -----------------'
  1236. X    `--    Y: overwrite, N: protect destination files ------------------'
  1237. X    `--    Y: full    pathnames, N: strip directory portion from names ----'
  1238. X    `--    Y: send    only if    source newer than destination, N send all ---'
  1239. X
  1240. X
  1241. X
  1242. X    4.44  TIme : time of day
  1243. X
  1244. X    usage: time
  1245. X
  1246. X
  1247. X    This command displays the local date and time as well as the current
  1248. X    UTC.
  1249. X
  1250. X
  1251. X    4.45  TTy :    console    tty name
  1252. X
  1253. X    usage: tty
  1254. X
  1255. X
  1256. X    This command displays the current console tty name.
  1257. X
  1258. X
  1259. X
  1260. X    4.46  XA : hex to ascii char
  1261. X
  1262. X    usage: xa [<hex-val>]
  1263. X
  1264. X
  1265. X    <hex-val> is a hexadecimal value between 0 and FF; the parity (sign) bit
  1266. X    is stripped    and the    equivalent ASCII character value is displayed.
  1267. X
  1268. X    If no argument is supplied,    a table    of control characters is printed
  1269. X    containing decimal,    octal, hex, ASCII identifiers and two-character
  1270. X    control character identifier.
  1271. X
  1272. X
  1273. X
  1274. X
  1275. X    Public Domain by wht@n4hgf                 7/25/91
  1276. X
  1277. X
  1278. X
  1279. X
  1280. X
  1281. X
  1282. X
  1283. X    ECU    Technical Description                      46
  1284. X
  1285. X
  1286. X
  1287. X    4.47  XON :    xon/xoff flow control
  1288. X
  1289. X    usage: xon [<arg>]
  1290. X    where <arg>    is on     input and output flow control
  1291. X           off     no flow control
  1292. X           in     input flow control
  1293. X           out     output    flow control
  1294. X
  1295. X
  1296. X    This command enables or disables xon/xoff flow control.  If    the argument
  1297. X    is omitted,    the current flow control state is displayed.
  1298. X
  1299. X
  1300. X    4.48  ! : execute shell
  1301. X
  1302. X    usage: !
  1303. X       !<command>
  1304. X
  1305. X
  1306. X    The    '!' command is a shell escape.    The environment    variable SHELL is
  1307. X    read to determine what shell program to execute (e.g., /bin/sh, etc).
  1308. X    If '!' is entered by itself, an interactive    shell is started; press    ^D
  1309. X    to exit back to ECU.  If <command> is supplied, it is executed by the
  1310. X    shell with an immediate return to ECU.
  1311. X
  1312. X
  1313. X
  1314. X
  1315. X
  1316. X
  1317. X
  1318. X
  1319. X
  1320. X
  1321. X
  1322. X
  1323. X
  1324. X
  1325. X
  1326. X
  1327. X
  1328. X
  1329. X
  1330. X
  1331. X
  1332. X
  1333. X
  1334. X
  1335. X
  1336. X
  1337. X
  1338. X
  1339. X
  1340. X
  1341. X    Public Domain by wht@n4hgf                 7/25/91
  1342. X
  1343. X
  1344. X
  1345. X
  1346. X
  1347. X
  1348. X
  1349. X    ECU    Technical Description                      47
  1350. X
  1351. X
  1352. X
  1353. X    5.    Procedures
  1354. X
  1355. X
  1356. X    Procedures are "programs" or "scripts" written in an addled    but adequate
  1357. X    language which ECU executes    upon demand.  An "initial procedure" may be
  1358. X    executed when ECU starts up    (see the description of    the -p command line
  1359. X    switch).  Certain special procedures are executed automatically as
  1360. X    described below in the section "Special Procedures."
  1361. X
  1362. X
  1363. X    5.1     Procedures
  1364. X
  1365. X
  1366. X    The    procedures themselves are source files consisting of the procedure
  1367. X    "name" with    an extension of    ".ep".    When executing a procedure by name,
  1368. X
  1369. X     do name       interactive
  1370. X     -or-
  1371. X     do 'name'     from insikde a procedure
  1372. X
  1373. X    is sufficient if the procedure is in the current directory,    the user's
  1374. X    ~/.ecu directory or    in the ECU library directory (normally
  1375. X    /usr/local/lib/ecu).  Procedure files are search for in the    above order,
  1376. X    so you may have a system default in    the lib    directory, a user default in
  1377. X    the    ~/.ecu directory and a specific    version    in the current directory all
  1378. X    by the same    name.
  1379. X
  1380. X    Many example procedures, some useful, some not so, are found in the
  1381. X    models subdirectory    of the release.     There are also    several    complrete
  1382. X    procedures and many    fragments used as examples throughout the following
  1383. X    sections.
  1384. X
  1385. X
  1386. X    5.2     Line Syntax (Labels, Commands and Comments)
  1387. X
  1388. X    Lines in a procedure consist of an optional    label, followed    by optional
  1389. X    commands and arguments.  Anything on a line    after an octothorpe (#)
  1390. X    outside of quote marks is ignored (read "# is the comment character.")
  1391. X
  1392. X    Labels must    begin in column    one.  Commands must have white space before
  1393. X    them.  A label may appear on a line    by itself or with a comment
  1394. X    appended.  A common    mistake    I make (from writing too much C) is to
  1395. X    append a colon to a    label derclaration; this does not work unless you
  1396. X    also "goto LABEL:".     Labels    are not    allowed    inside braces (inside if
  1397. X    compound statements).  You may get away with it sometimes because the
  1398. X    procedure language processor is written for    speed, not political
  1399. X    correctness.
  1400. X
  1401. X
  1402. X
  1403. X
  1404. X
  1405. X
  1406. X
  1407. X    Public Domain by wht@n4hgf                 7/25/91
  1408. X
  1409. X
  1410. X
  1411. X
  1412. X
  1413. X
  1414. X
  1415. X    ECU    Technical Description                      48
  1416. X
  1417. X
  1418. X
  1419. X    5.3     Arguments
  1420. X
  1421. X
  1422. X    There are five types of arguments to procedure commands:
  1423. X
  1424. X     Switch
  1425. X     Alphabetic Token
  1426. X     Integer
  1427. X     String
  1428. X     Relational Operators
  1429. X
  1430. X    This section describes the syntax and construction of each type in turn.
  1431. X    There are separate groups of valid of relational operators for integers
  1432. X    and    strings; thus, they are    described under    the appropriate    sections.
  1433. X
  1434. X
  1435. X    5.3.1  Switches
  1436. X
  1437. X    Switch arguments begin with    a hyphen (minus, '-').    The switch argument
  1438. X    must be the    first argument after the command.  Only    one switch argument
  1439. X    is allowed on the command line.  If    switches '-a', '-b' and    '-c', are
  1440. X    available and '-a' and '-b'    are desired, '-ab' or '-ba' is entered.
  1441. X
  1442. X
  1443. X    5.3.2  Alphabetic Tokens
  1444. X
  1445. X    Alphabetic tokens, for lack    of a better term, are non-integer, non-
  1446. X    quoted terms used as arguments for certain commands, such as:
  1447. X
  1448. X     plog off
  1449. X
  1450. X    Such argument types    are fairly simple to understand    and use; they are
  1451. X    described here for completeness.
  1452. X
  1453. X
  1454. X    5.3.3  Integers
  1455. X
  1456. X    Integer values are 32-bit quantities ranging between -2147483647 and
  1457. X    2147483647.
  1458. X
  1459. X    In one case, an integer is used to store a 32-bit color mask as
  1460. X    described by the color command and the %colors integer function.
  1461. X
  1462. X
  1463. X    5.3.3.1  Constants
  1464. X
  1465. X    Integer constants are numeric strings, optionally with an initial minus
  1466. X    sign, the absolute value of    which must be less than    2147483648.  If    the
  1467. X    constant begins with the string "0x", it is    interpreted as hexadecimal.
  1468. X    Octal, like    FORTRAN    and COBOL will be dead soon; until then, however,
  1469. X    octal constants may    be denoted by a    leading    "0o".
  1470. X
  1471. X
  1472. X
  1473. X    Public Domain by wht@n4hgf                 7/25/91
  1474. X
  1475. X
  1476. X
  1477. X
  1478. X
  1479. X
  1480. X
  1481. X    ECU    Technical Description                      49
  1482. X
  1483. X
  1484. X
  1485. X    Examples:
  1486. X        123      --> 123(10)
  1487. X        0123  --> 123(10)
  1488. X        0x123 --> 291(10)
  1489. X        0o123 -->  83(10)
  1490. X
  1491. X
  1492. X
  1493. X    5.3.3.2  Variables
  1494. X
  1495. X    There are 50 numbered, permanent integer variables referenced by the
  1496. X    terms '$i0'    through    '$i49'.     When ECU is started, the value    of each
  1497. X    variable is    zero.  Variables retain    their value until changed, even
  1498. X    between procedure executions.  The integer variable    number may be
  1499. X    expressed as an expression by enclosing an integer expression in
  1500. X    brackets.  For instance:
  1501. X
  1502. X     $i[4+5]      refers to    $i9
  1503. X
  1504. X     $i2=5
  1505. X     $i[20+$i2]   refers to    $i25
  1506. X
  1507. X
  1508. X    Integer variables may be created for use as    "local"    variables or to
  1509. X    promote code readability.  Refer to    the mkvar command.
  1510. X
  1511. X
  1512. X    5.3.3.3  Functions
  1513. X
  1514. X    ECU    has many built-in functions which return the value of ecu- or
  1515. X    system-related information.     A list    of the functions appears in a later
  1516. X    section.
  1517. X
  1518. X
  1519. X    5.3.3.4  Expressions
  1520. X
  1521. X    In almost any place    an integer argument is allowed,    an expression may be
  1522. X    supplied.  Expressions are composed    of two or more integer constants or
  1523. X    variables separated    by operators from the group:
  1524. X
  1525. X    +     addition
  1526. X    -     subtraction
  1527. X    *     multiplication
  1528. X    /     division
  1529. X    |     OR
  1530. X    @     MOD
  1531. X    ^     XOR
  1532. X    &     AND
  1533. X
  1534. X    Evaluation of expressions is left-to-right.     Parentheses are not
  1535. X    allowed.
  1536. X
  1537. X
  1538. X
  1539. X    Public Domain by wht@n4hgf                 7/25/91
  1540. X
  1541. X
  1542. X
  1543. X
  1544. X
  1545. X
  1546. X
  1547. X    ECU    Technical Description                      50
  1548. X
  1549. X
  1550. X
  1551. X    5.3.3.5  Relational    Operators
  1552. X
  1553. X    Integer relational operators are chosen from the following group:
  1554. X
  1555. X     =     "is equal to"
  1556. X     ==     "is equal to"
  1557. X     !=     "is not equal to"
  1558. X     <>     "is not equal to"
  1559. X     >     "is greater than"
  1560. X     <     "is greater than"
  1561. X     >=     "is greater than or equal to"
  1562. X     <=     "is less than or equal    to"
  1563. X
  1564. X
  1565. X
  1566. X    5.3.4  Strings
  1567. X
  1568. X    Strings are    classic    concatenations of zero or more eight-bit characters.
  1569. X    In general,    the maximum size of a string used by ECU is 256    characters.
  1570. X    The    absolute maximum size is 5120 characters.
  1571. X
  1572. X    Null in strings are    poorly handled.     You may be able to get    away with
  1573. X    using them,    but it is not recommended.
  1574. X
  1575. X
  1576. X    5.3.4.1  Constants
  1577. X
  1578. X    String constants are formed    by placing alphanumeric    characters between
  1579. X    single quote characters (apostrophes).  The    backslash ('\')    character is
  1580. X    used to "escape" certains characters (I am no nroff    guru and backslashes
  1581. X    give it gas, so):
  1582. X
  1583. X    backslash-backslash    one backslash
  1584. X    backslash-n        newline
  1585. X    backslash-t        tab
  1586. X    backslash-apostrophe    apostrophe
  1587. X
  1588. X
  1589. X    NOTE: ecu converts every tab in a procedure    line to    one space when the
  1590. X    procedure file is read in.    Therefore, if you wish to place    a tab in a
  1591. X    string constant, you must place it there with the \t escape    sequence.
  1592. X
  1593. X
  1594. X    5.3.4.2  Variables
  1595. X
  1596. X    There are 50 numbered, permanent string variables referenced by the
  1597. X    terms '$s0'    through    '$s49',    each possessing    a maximum length of 256
  1598. X    characters When ECU    is started, the    value of each variable is null (zero
  1599. X    length).  Variables    retain their value until changed, even between
  1600. X    procedure executions.  The string variable number may be expressed as an
  1601. X    expression by enclosing an string expression in brackets.  For instance:
  1602. X
  1603. X
  1604. X
  1605. X    Public Domain by wht@n4hgf                 7/25/91
  1606. X
  1607. X
  1608. X
  1609. X
  1610. X
  1611. X
  1612. X
  1613. X    ECU    Technical Description                      51
  1614. X
  1615. X
  1616. X
  1617. X     $s[4+5]      refers to    $s9
  1618. X
  1619. X     $s2=5
  1620. X     $s[20+$s2]   refers to    $s25
  1621. X
  1622. X
  1623. X    String variables may be created for    use as "local" variables or to
  1624. X    promote code readability.  Refer to    the mkvar command. Created variables
  1625. X    have a life    equal to the duration of the procedure which created them.
  1626. X    Regardless of the declared size of a created string    variable, ECU will
  1627. X    automatically grow it to a maximum of 5120 characters as necessary.
  1628. X    Numbered (permanent) string    variables have a maximum size of 256 bytes.
  1629. X
  1630. X
  1631. X    5.3.4.3  Functions
  1632. X
  1633. X    ECU    has many built-in functions which return the value of ecu- or
  1634. X    system-related information.     A list    of the functions appears in a later
  1635. X    section.
  1636. X
  1637. X
  1638. X    5.3.4.4  Expressions
  1639. X
  1640. X    String expressions are formed by the concatenation of string constants,
  1641. X    variables and function return values using the '+' operator:
  1642. X
  1643. X    Example:
  1644. X       'The quick brown    fox jumped over    the '+$s0'+' dog at '+%time
  1645. X
  1646. X
  1647. X
  1648. X    5.3.4.5  Relational    Operators
  1649. X
  1650. X    String relational operators    are chosen from    the following group:
  1651. X
  1652. X     =     "is equal to"
  1653. X     ==     "is equal to"
  1654. X     !=     "is not equal to"
  1655. X     <>     "is not equal to"
  1656. X
  1657. X
  1658. X
  1659. X
  1660. X    5.4     Commands
  1661. X
  1662. X
  1663. X
  1664. X    5.4.1  baud
  1665. X
  1666. X    usage: baud    <baud-int>
  1667. X
  1668. X
  1669. X
  1670. X
  1671. X    Public Domain by wht@n4hgf                 7/25/91
  1672. X
  1673. X
  1674. X
  1675. X
  1676. X
  1677. X
  1678. X
  1679. X    ECU    Technical Description                      52
  1680. X
  1681. X
  1682. X
  1683. X    This command sets the baud rate for    the attached line.  The    integer
  1684. X    argument <baud-int>    must be    one of 110, 300, 600, 1200, 2400, 4800,
  1685. X    9600, 19200    and 38400.
  1686. X
  1687. X    Example:
  1688. X    baud 9600
  1689. X    set $i0=2400; baud $i0
  1690. X
  1691. X
  1692. X
  1693. X    5.4.2  break
  1694. X
  1695. X    usage: break
  1696. X
  1697. X    This command is used inside    a whilei or whiles compound statement to
  1698. X    exit the loop.
  1699. X
  1700. X    Example:
  1701. X
  1702. X    whilei 1=1 #forever unless break command executed
  1703. X    {
  1704. X        echo -n 'Answer yes    or no: '
  1705. X        set    $s0=%cgets # get answer
  1706. X        ifi    %instr($s0,'y')    == 0 set $i0 = 1; break
  1707. X        ifi    %instr($s0,'n')    == 0 set $i0 = 0; break
  1708. X        # got neither 'y' nor 'n' ... keep trying
  1709. X    }
  1710. X    # now $i0 = 1 if yes, 0    if no
  1711. X
  1712. X
  1713. X    NOTE: further examples of break usage may be found in the example for
  1714. X    the    else command.
  1715. X
  1716. X
  1717. X    5.4.3  cd
  1718. X
  1719. X    usage: cd <directory-path>
  1720. X
  1721. X    This command changes ECU's current working directory.  The string
  1722. X    argument <directory-path> may contain any directory    pathname
  1723. X    specification legal    to be submitted    to the shell csh.  Wild    card
  1724. X    characters may be used, provided the expansion produces only one
  1725. X    pathname.
  1726. X
  1727. X
  1728. X    Example:
  1729. X
  1730. X    cd '~user/bin'
  1731. X    cd %envvar('HOME')+'/bin'
  1732. X
  1733. X
  1734. X
  1735. X
  1736. X
  1737. X    Public Domain by wht@n4hgf                 7/25/91
  1738. X
  1739. X
  1740. X
  1741. X
  1742. X
  1743. X
  1744. X
  1745. X    ECU    Technical Description                      53
  1746. X
  1747. X
  1748. X
  1749. X    5.4.4  clrx
  1750. X
  1751. X    usage: clrx
  1752. X
  1753. X    This command clears     the attached line's transmitter XOFF state.
  1754. X    Issuing the    command    is the equivalent to receiving an XON from the
  1755. X    remote system.
  1756. X
  1757. X
  1758. X    5.4.5  cls
  1759. X
  1760. X    usage: cls
  1761. X
  1762. X    This command clears    the screen.
  1763. X
  1764. X
  1765. X    5.4.6  color
  1766. X
  1767. X
  1768. X    usage: color <normal-foreground> [<normal-background>]
  1769. X    usage: color -r <reverse-foreground> [<reverse-background>]
  1770. X
  1771. X
  1772. X    This command changes the current normal or reverse video colors in a
  1773. X    manner similar to the setcolor(C) command.    It has no effect on systems
  1774. X    using a monochrome monitor.     If the    second (background) color is
  1775. X    omitted, it    is assumed to be black.
  1776. X
  1777. X    The    command    also forces normal video mode.    Refer to the vidnorm and
  1778. X    vidrev commands.  Refer also to the    vidcolor command.
  1779. X
  1780. X
  1781. X    Color names
  1782. X       blue     magenta      brown     black
  1783. X       lt_blue     lt_magenta   yellow     gray
  1784. X       cyan     white          green     red
  1785. X       lt_cyan     hi_white     lt_green     lt_red
  1786. X
  1787. X    Example:
  1788. X
  1789. X    color lt_green    # normal video light green on black
  1790. X    color -r red white # reverse video red on white
  1791. X
  1792. X
  1793. X
  1794. X    5.4.7  continue
  1795. X
  1796. X    usage: continue
  1797. X
  1798. X    This command is used inside    a whilei or whiles compound statement to
  1799. X    skip the remainder of any commands in the loop and continue    execution at
  1800. X
  1801. X
  1802. X
  1803. X    Public Domain by wht@n4hgf                 7/25/91
  1804. X
  1805. X
  1806. X
  1807. X
  1808. X
  1809. X
  1810. X
  1811. X    ECU    Technical Description                      54
  1812. X
  1813. X
  1814. X
  1815. X    the    first command in the loop.
  1816. X
  1817. X    Example:
  1818. X
  1819. X    send ''    # send ENTER to    get prompt
  1820. X    whilei 1=1 # forever unless break command executed
  1821. X    {
  1822. X        lookfor -e 'login: ' # look    for login prompt
  1823. X        ifi    $i0 == 0     # if we dont get prompt ...
  1824. X        {
  1825. X        send ''         # send    ENTER again
  1826. X        continue     # and look for    login prompt
  1827. X        }
  1828. X        send $s_name     # send    username
  1829. X        lookfor -e 'Password:'
  1830. X        send $s_password
  1831. X        get    -e 0 50         # wait    10 seconds for response
  1832. X
  1833. X        # if incorrect not found in    response, ...
  1834. X        if %instr($s0,'incorrect') < 0 # ... must have won
  1835. X        break
  1836. X
  1837. X        # garbled line?: system will send another 'login: '
  1838. X    }
  1839. X
  1840. X
  1841. X
  1842. X    NOTE: further examples of continue usage may be found in the example for
  1843. X    the    else command.
  1844. X
  1845. X
  1846. X    5.4.8  cursor
  1847. X
  1848. X    usage: cursor <row>    [<col>]
  1849. X
  1850. X    This command places    the cursor at a    specified position on the video
  1851. X    screen.  The top left of the scrren    is row 0, column 0.  If    <col> is not
  1852. X    specified, it is assumed 0 (left margin).
  1853. X
  1854. X    Example:
  1855. X
  1856. X    cls
  1857. X    $i0 = 5
  1858. X    whilei $i5 < 12
  1859. X    {
  1860. X        cursor $i5
  1861. X        echo 'This is line '+%itos($i5,2d)+' of the    display'
  1862. X    }
  1863. X
  1864. X
  1865. X
  1866. X
  1867. X
  1868. X
  1869. X    Public Domain by wht@n4hgf                 7/25/91
  1870. X
  1871. X
  1872. X
  1873. X
  1874. X
  1875. X
  1876. X
  1877. X    ECU    Technical Description                      55
  1878. X
  1879. X
  1880. X
  1881. X    5.4.9  delline
  1882. X
  1883. X    usage: delline
  1884. X
  1885. X    This command deletes the current line from the video display.
  1886. X
  1887. X
  1888. X    5.4.10  dial
  1889. X
  1890. X    usage: dial    <remote>
  1891. X
  1892. X    This command causes    an outgoing call to be placed.    The string argument
  1893. X    <remote> can take one of two forms:    a numeric telephone number or an
  1894. X    alphanumeric "logical" number or system name.
  1895. X
  1896. X    A numeric phone number ('1(800)555-1212' or    '2345678') must    begin with a
  1897. X    digit and must consist entirely of digits, parentheses or hyphens.    If a
  1898. X    telephone number is    supplied, the phone number is dialed; you must first
  1899. X    have set the desired baud rate and parity using the    'baud' and 'parity'
  1900. X    commands.
  1901. X
  1902. X    If a logical name is entered, the phone directory (managed by the
  1903. X    interactive    dial command) is searched; if the entry    is found, the baud
  1904. X    rate and parity is automatically set from values in    the directory entry;
  1905. X    then, the number in    the directory entry is dialed.
  1906. X
  1907. X    See    the section on the interactive "Dial" command and the section titled
  1908. X    "Choosing a    Dialout    Line" for more information.
  1909. X
  1910. X    When the dial command returns, integer variable $i0    is set to a status
  1911. X    code and string variable $s0 has a text message (the modem verbal result
  1912. X    code if the    ECU dialer is used, a representation of    the return status
  1913. X    code if a uucp dialer is used [see below]).
  1914. X
  1915. X    Dial Command $i0 Status Codes
  1916. X
  1917. X    0  successful connect
  1918. X    1  failed to connect (call progress)
  1919. X    2  dial    interrupted by signal
  1920. X    3  modem error (non responsive or commands rejected)
  1921. X
  1922. X
  1923. X
  1924. X
  1925. X
  1926. X
  1927. X
  1928. X
  1929. X
  1930. X
  1931. X
  1932. X
  1933. X
  1934. X
  1935. X    Public Domain by wht@n4hgf                 7/25/91
  1936. X
  1937. X
  1938. X
  1939. X
  1940. X
  1941. X
  1942. X
  1943. X    ECU    Technical Description                      56
  1944. X
  1945. X
  1946. X
  1947. X    Dial Command $s0 Status Messages (uucp dialer)
  1948. X
  1949. X    CONNECT    ####           #### = baud rate
  1950. X    BUSY               only some modems
  1951. X    NO ANSWER           only some modems
  1952. X    NO CARRIER           most generic "fail to connect"
  1953. X    NO DIAL    TONE           only some modems
  1954. X    !Connect bad baud rate modem reported different    rate
  1955. X    !Interrupted           call interrupted    by signal
  1956. X    !Invalid arguments     ECU error
  1957. X    !Invalid phone number  too long    or bad characters
  1958. X    !Ioctl error           should not be reported here
  1959. X    !Line in use           should not be reported here
  1960. X    !Line open error       should not be reported here
  1961. X    !Modem Error           modem did not respond
  1962. X
  1963. X    Note: if the ECU dialer is used, the actual    modem result code
  1964. X    is returned    in $s0 or one of the following two strings:
  1965. X
  1966. X    !Interrupted           call interrupted    by signal
  1967. X    !Modem Error           modem did not respond
  1968. X
  1969. X
  1970. X
  1971. X    5.4.11  do
  1972. X
  1973. X    usage: do <procname> [<arg>    ...]
  1974. X
  1975. X    This command executes a procedure whose name appears as the    command's
  1976. X    first (string) argument.  One or more arguments (up    to 19) may be passed
  1977. X    to the called procedure; an    argument may consist of    any valid string
  1978. X    expression,    provided, that,    when expanded,    the argument does not exceed
  1979. X    256    characters in length.
  1980. X
  1981. X    The    called procedure may read its arguments    using the %argv    string
  1982. X    function.  %argv(0)    is the name of the procedure.  The quantity of
  1983. X    arguments may be obtained using the    %argc integer function.
  1984. X
  1985. X
  1986. X    Example:
  1987. X
  1988. X    do 'proc' %rname %date+' '+%time %argv(0)
  1989. X
  1990. X    Note: in this example, the called procedure    is passed the name
  1991. X    of the calling procedure as    the last argument.
  1992. X
  1993. X
  1994. X
  1995. X    5.4.12  duplex
  1996. X
  1997. X
  1998. X
  1999. X
  2000. X
  2001. X    Public Domain by wht@n4hgf                 7/25/91
  2002. X
  2003. X
  2004. X
  2005. X
  2006. X
  2007. X
  2008. X
  2009. X    ECU    Technical Description                      57
  2010. X
  2011. X
  2012. X
  2013. X    usage: duplex full | half
  2014. X       duplex 'full' | 'half'
  2015. X
  2016. X
  2017. X    This command specifies whether or not ECU is to locally echo characters
  2018. X    typed by you at the    keyboard.  The overwhelming majority of    remote
  2019. X    systems provide the    echo function, in which    case full duplex must be
  2020. X    used.  For the rare    occasions when the remote system does not echo your
  2021. X    keyboard input, setting half duplex    will allow you to see what you are
  2022. X    typing.
  2023. X
  2024. X    When communicating with another terminal in    a "teletype conversation",
  2025. X    setting half duplex    is generally required.    In such    cases, use of the
  2026. X    interactive    nl, nlin and nlout commands may    also be    required.
  2027. X
  2028. X    Example:
  2029. X
  2030. X    duplex full
  2031. X    $s0 = 'full'; duplex $s0
  2032. X
  2033. X
  2034. X
  2035. X
  2036. X    5.4.13  echo
  2037. X
  2038. X    usage: echo    [-n] <string>
  2039. X
  2040. X    This command prints    the contents of    the string argument <string> on    the
  2041. X    screen.  If    the -n switch is not present, a    newline    follows    the output
  2042. X    of <string>.
  2043. X
  2044. X    Example:
  2045. X
  2046. X    echo 'Procedure    '+%argv(0)+' executing at '+%time
  2047. X    echo -n    'Enter your first name:    '; $s0 = %cgets
  2048. X
  2049. X
  2050. X
  2051. X    5.4.14  eeol
  2052. X
  2053. X    usage: eeol
  2054. X
  2055. X    This command erases    the video display to the end of    the line.
  2056. X
  2057. X
  2058. X    5.4.15  else
  2059. X
  2060. X
  2061. X    This statement may follow an ifi or    ifs command to specify one or more
  2062. X    statements to be executed if the if-type command condition is false.
  2063. X    Else commands may be chained together in the traditional structured
  2064. X
  2065. X
  2066. X
  2067. X    Public Domain by wht@n4hgf                 7/25/91
  2068. X
  2069. X
  2070. X
  2071. X
  2072. X
  2073. X
  2074. X
  2075. X    ECU    Technical Description                      58
  2076. SHAR_EOF
  2077. true || echo 'restore of doc/ecu.man failed'
  2078. fi
  2079. echo 'End of ecuman310 part 2'
  2080. echo 'File doc/ecu.man is continued in part 3'
  2081. echo 3 > _shar_seq_.tmp
  2082. exit 0
  2083. --------------------------------------------------------------------
  2084. Warren Tucker, TuckerWare emory!n4hgf!wht or wht@n4hgf.Mt-Park.GA.US
  2085. Hacker Extraordinaire  d' async PADs,  pods,  proteins and protocols
  2086.  
  2087. exit 0 # Just in case...
  2088. -- 
  2089. Kent Landfield                   INTERNET: kent@sparky.IMD.Sterling.COM
  2090. Sterling Software, IMD           UUCP:     uunet!sparky!kent
  2091. Phone:    (402) 291-8300         FAX:      (402) 291-4362
  2092. Please send comp.sources.misc-related mail to kent@uunet.uu.net.
  2093.