home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume32 / ecu / part36 < prev    next >
Text File  |  1992-09-15  |  58KB  |  1,650 lines

  1. Newsgroups: comp.sources.misc
  2. From: wht@n4hgf.Mt-Park.GA.US (Warren Tucker)
  3. Subject:  v32i071:  ecu - ECU Asynchronous Communications v3.20, Part36/40
  4. Message-ID: <1992Sep15.153640.20828@sparky.imd.sterling.com>
  5. X-Md4-Signature: a9f4363a63f03edd062665b870f38a57
  6. Date: Tue, 15 Sep 1992 15:36:40 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: wht@n4hgf.Mt-Park.GA.US (Warren Tucker)
  10. Posting-number: Volume 32, Issue 71
  11. Archive-name: ecu/part36
  12. Environment: SCO,XENIX,ISC,SUNOS,SYSVR4,HDB,Curses
  13. Supersedes: ecu: Volume 21, Issue 53-89
  14.  
  15. ---- Cut Here and feed the following to sh ----
  16. #!/bin/sh
  17. # this is ecu320.36 (part 36 of ecu320)
  18. # do not concatenate these parts, unpack them in order with /bin/sh
  19. # file doc/_features.txt continued
  20. #
  21. if test ! -r _shar_seq_.tmp; then
  22.     echo 'Please unpack part 1 first!'
  23.     exit 1
  24. fi
  25. (read Scheck
  26.  if test "$Scheck" != 36; then
  27.     echo Please unpack part "$Scheck" next!
  28.     exit 1
  29.  else
  30.     exit 0
  31.  fi
  32. ) < _shar_seq_.tmp || exit 1
  33. if test ! -f _shar_wnt_.tmp; then
  34.     echo 'x - still skipping doc/_features.txt'
  35. else
  36. echo 'x - continuing file doc/_features.txt'
  37. sed 's/^X//' << 'SHAR_EOF' >> 'doc/_features.txt' &&
  38. X
  39. X0x00 nul    0x10 dle 
  40. X0x01 soh    0x11 dc1 
  41. X0x02 stx    0x12 dc2 
  42. X0x03 etx    0x13 dc3 
  43. X0x04 eot    0x14 dc4 
  44. X0x05 enq    0x15 nak 
  45. X0x06 ack    0x16 syn 
  46. X0x07 bel    0x17 etb 
  47. X0x08 bs     0x18 can 
  48. X0x09 ht     0x19 em  
  49. X0x0A nl     0x1A sub 
  50. X0x0B vt     0x1B esc 
  51. X0x0C np     0x1C fs  
  52. X0x0D cr     0x1D gs  
  53. X0x0E so     0x1E rs  
  54. X0x0F si     0x1F us  
  55. X            0x20 sp  
  56. X            0x7F del 
  57. X.DE
  58. X
  59. X.*s 2 "Line Editing"
  60. X
  61. XWhen you are entering a line of text for an ecu command or in
  62. Xa field on a screen, you may edit it in a number of ways at any
  63. Xtime prior to pressing Enter.  Cursor Left moves the cursor left
  64. Xby one character position, nondestructively.  Cursor Right moves
  65. Xto the right.  Insert toggles insert mode.  Backspace (your
  66. Xerase key as specified to stty in commands, the actual backspace key
  67. Xin screens) deletes the character to the left of the cursor.
  68. XYour line kill key (as specified to stty) in command mode or
  69. Xthe ^U character in screen mode erases the entire line.  Esc
  70. Xin command mode cancels the command.  Esc in screen mode usually
  71. Xcancels the screen or subfunction in a screen.  ^L or ^R in
  72. Xinteractive command mode shows the current state of Insert mode and
  73. Xredisplays the edited string.
  74. X
  75. X.*s 2 "Screen Dump"
  76. XWhen the "cursor 5" key is pressed, the screen contents are
  77. Xdumped to a file.  By default, this file is named '~/.ecu/screen.dump'.
  78. XThe
  79. X.B sdname
  80. Xinteractive command either displays or changes the current screen
  81. Xdump file name, depending upon whether or not an argument
  82. Xis supplied.
  83. XThe
  84. X.B scrdump
  85. Xprocedure command can initiate a dump.
  86. X
  87. XNote that from an SCO multiscreen, screen dump produces a dump of the
  88. Xactual screen contents (it is obtained from
  89. Xthe video driver), including ecu-generated output.  When
  90. Xusing a non-multiscreen terminal, screen dump dumps only the
  91. Xshared memory virtual screen as received from the host.
  92. X
  93. XIf, at a multiscreen, you wish a screen dump free of ecu output
  94. X"pollution," use Shift-Tab (BkTab) to redraw the screen, then
  95. Xperform the screen dump.  If you are not on a multiscreen, then the
  96. Xscreen dump comes from the (sometimes inexact) screen memory
  97. Xrepresentation and this step is not necessary.
  98. X
  99. X.*s 3 "Multiscreen and Non-Multiscreen"
  100. XNote that from multiscreens, screen dump produces a dump of the
  101. Xactual screen contents, including ECU-generated output.  When
  102. Xusing a non-multiscreen terminal, screen dump dumps only the 
  103. Xshared memory virtual screen as received from the host.
  104. XIf standard input is not a serial line (xterm or /dev/null),
  105. Xscreen dumps will be of the non-multiscreen type.
  106. X
  107. XIf, at a multiscreen, you wish a screen dump free of ECU output
  108. X"pollution," use Shift-Tab (BkTab) to redraw the screen, then
  109. Xperform the screen dump.
  110. X
  111. X.*s 3 "Multiscreen Bug"
  112. XThere has been a bug in the multiscreen driver for some time
  113. Xwherein a MEDIA COPY (screen dump) sequence ("ESC [ 2 i") leaves
  114. Xthe "ESC [ 2" part "active".  When a screen dump (Cursor 5)
  115. Xcommand is given, I do the screen dump, then send a "l" to the
  116. Xscreen to work around the bug ("ESC 2 [ l" unlocks the keyboard,
  117. Xessentially a no-op).  If and when it gets fixed, you'll see an
  118. X"l" show up on your screen after a screen dump sequence.  To fix
  119. Xthis, comment out the
  120. X.DS I
  121. X#define MULTISCREEN_DUMP_BUG
  122. X.DE
  123. Xat the top of ecuscrdump.c.
  124. X
  125. X.*s 2 "Interactive Command History"
  126. X
  127. XAfter pressing the Home key, pressing it again invokes the
  128. Xinteractive command history function.  After the second
  129. XHome key is pressed, the last interactive command is
  130. Xredisplayed. Line editing may be performed on the command as described
  131. Xin the previous section.
  132. X
  133. XAdditionally, using the Cursor Up key accesses less recent commands.
  134. XThe Cursor Down key accesses more recent commands.  Pressing Enter causes
  135. Xthe command to be executed.  Pressing Esc aborts command entry.
  136. X
  137. X.*s 2 "Dialing Directory"
  138. X
  139. XECU provides an on-line editable dialing directory.  Remote
  140. Xsystems are defined as records using alphanumeric identifiers
  141. Xas keys.  Other record fields include telephone number, baud
  142. Xrate, parity and textual description.
  143. X
  144. XOther features include changing to alternate dialing directory
  145. Xand a multi-number redial cycle function. Refer below to the description
  146. Xof the interactive
  147. X.B dial
  148. Xcommand.
  149. X
  150. XWhile a long entry in a field may be truncated on the display,
  151. Xwhen the entry is edited, it's full contents will be dispalyed on the
  152. Xedit subform.
  153. X
  154. XEntering or editing a dialing directory entry is for the most part
  155. Xstraightforward.  A note on the use of the "tty" field is useful, however.
  156. XWhen prompted for a tty, you may choose
  157. X.BL
  158. X.LI
  159. X"Any" line  (deprecated, for compatibility only)
  160. X.LI
  161. Xa tty line matching a Devices type
  162. X.LI
  163. Xa specific tty line
  164. X.LE
  165. X
  166. XA specific line is chosen by using the base name of the tty
  167. X(e.g., "tty1a" or "acu0").  On SCO, since ttys are all named
  168. Xconsistently according to the "/dev/ttyxx" form, you may omit the "tty"
  169. X(e.g., "1a" or "4g").  This latter feature is for compatibility
  170. Xwith earlier revisions of ECU.  It is good practice to fully
  171. Xspecify the tty name.
  172. X
  173. X"Any" matches any tty line in the /usr/lib/Devices file supporting
  174. Xthe specified baud rate and whose Devices type begins with the
  175. Xcharacters (case independent) "ACU".  This choice is provided to
  176. Xbe compatible with earlier versions of ECU (prior to 3.10). 
  177. XUse of this argument is discouraged.  It's equivalent in current
  178. Xpractice is "/ACU", as you can see next.
  179. X
  180. XA more general choice for choosing a tty line based on Devices type
  181. Xis the "Devices type matching" choice, invoked by prefixing the tty
  182. Xfield with a slash or equals sign.
  183. X
  184. X.BL
  185. X.LI
  186. X/ prefix searches for a Devices type matching a regular expression (a
  187. Xla sed or ed)
  188. X.LI
  189. X= prefix searches for an exact match on a Devices type
  190. X.LE
  191. X
  192. X.DS L
  193. XExamples:
  194. X
  195. X   =ACU        matches "ACU", fails on "acu" and "ACUx"
  196. X   /.*tbit.*   matches "ACUtbit1", "tbit"
  197. X.DE
  198. X
  199. XA specific tty line may also be specified.  This is the only means
  200. Xof attaching a line not mentioned in the Devices file.
  201. X
  202. XNOTE:  If the bell rings and you are not allowed to leave a field,
  203. Xit is because you MUST enter acceptible data before you can leave
  204. Xa field using other than the ESCape key.
  205. X
  206. XThe "debug level" parameter allows you to specify a number between 0 and
  207. X9 for passing to a UUCP dialer program with the -x switch.
  208. X
  209. XThe "DCD watch" parameter allows you to modify the DCD watcher
  210. Xupon successful connection to a remote.  The values allowed are:
  211. X.DS L
  212. X   1    enable DCD watcher
  213. X   0    disable DCD watcher
  214. X   t    terminate ECU on loss of DCD
  215. X   n    no change of dcdwatch state
  216. X.DE
  217. XSpecifying 'n' leaves the dcdwatch state unaffected.  See the description
  218. Xof the
  219. X.B dcdwatch
  220. Xinteractive command for more information.
  221. X
  222. XThe following sample dialing directory screen shows an edit in
  223. Xprogress.
  224. X
  225. X.DS L
  226. X .--[ dialing directory ]-- /u1/wht/.ecu/phone --------- modified ---.
  227. X | entry name | telephone number | tty | baud P | description        |
  228. X | ......     | ........         |Any  | 2400 N | ...............    |
  229. X | li.--[ entry: new ]--------------------------------------------.  |
  230. X | ..|                                                            |  |
  231. X | ..| telephone number  1(800)555-1212                           |  |
  232. X | ..| device            =ACUtbit                                 |..|
  233. X | ..| baud rate         19200                                    |..|
  234. X | ..| parity            N                                        |  |
  235. X | ..| description       don't call this_________________________ |..|
  236. X | ..| debug level       0  (dialer -x value 0-9)                 |  |
  237. X | ..| DCD watch         n                                        |  |
  238. X | ..| Enter description                                          |..|
  239. X | ..| ESC: abort  End: finish  ^U: erase ^B: back  TAB: fwd      |  |
  240. X | ..`------------------------------------------------------------'  |
  241. X | .....      | ..........       |2b   | 9600 N | ...................|
  242. X | sco19      | 1(408)426-9525p  |2b   | 9600 N | SCO Tech Services  |
  243. X | sco24      | 1(408)426-9495   |2b   | 2400 N | SCO Tech Services  |
  244. X +-------------------------------------------------------------------+
  245. X |down up edit add remove save find change dial dir ENTER:dial quit  |
  246. X |redial: mark unMark Unmark all wait between dial                   |
  247. X `-------------------------------------------------------------------'
  248. X.DE
  249. X
  250. XYou may use the vi conventions of 'j' for down and 'k' for up.
  251. XYou may also use the up and down arrow keys if you are on an SCO
  252. Xmultiscreen or if the function keys have been properly defined
  253. Xwith funckeymap.
  254. X
  255. X.*s 2 "Online Interactive Command Help"
  256. X
  257. XThe ECU help command presents a display of interactive commands.  The user
  258. Xis then prompted to enter a command name for further, Unix-style
  259. X"usage" information.
  260. X
  261. X.*s 2 "Multiscreen Event Alarm"
  262. X
  263. XOn an SCO machine, by using the 
  264. X.B BN
  265. X(bell notify) interactive command, an audible alert is sent to all
  266. Xmultiscreens when an ASCII BEL (bell) is received or when a file
  267. Xtransfer completes.  An additional option causes an alert when ANY
  268. Xdata is received from the line.  This makes it simple to do work on
  269. Xother multiscreen consoles and be alerted when attention to the
  270. Xcommunications session is required.
  271. X
  272. XFor instance, the Berkeley 4.x Unix utility "talk" rings the bell when
  273. Xanother user wishes an interactive chat mode.  BSD "biff" rings the bell
  274. Xwhen incoming mail is received.  Scripts or commands at remote sites can
  275. Xbe configured to ring the bell as in:
  276. X.DS I
  277. Xmake foo bar; bell; make more_stuff; bell;
  278. X.DE
  279. Xto call attention to the ECU user when work is being done
  280. Xon other multiscreen consoles.
  281. X
  282. XThis feature is only available when you are running ECU from a multiscreen.
  283. X
  284. X.*s 2 "Built-in Modem Dialer"
  285. X
  286. XThe built-in ECU dialer supports modems which use the 
  287. X.B
  288. XHayes-style AT command set or most variants
  289. X.R
  290. X.B thereof .
  291. XIt is used when HoneyDanBer UUCP is not installed or when there is no
  292. Xentry in the /usr/lib/uucp/Devices file for the selected outgoing line.
  293. X(For more information, see the later section titled "HoneyDanBer UUCP
  294. XInterface".)
  295. X
  296. XThe built-in dialer uses files in the ecu library directory which
  297. Xcontains modem initialization information.  Modem initialization
  298. Xfilenames are made from concatenating the tty name with ".mi".  For
  299. Xinstance, tty1a's initialization file is named "tty1a.mi".
  300. X
  301. XCommands for initializing the modem and for dialing may be specified in
  302. Xa very flexible manner.  Separate init and dial strings for each legal
  303. Xbaud rate, a single pair of strings for all baud rates or a combination
  304. Xmay be specified.
  305. X.DF L
  306. X.hl
  307. X.ce 1
  308. XSample Modem Initialization Files
  309. X
  310. X#+-----------------------------------------------------------
  311. X#  tty1a.mi - Microcom AX/9624c
  312. X#------------------------------------------------------------
  313. Xinit_>2400:ATS11=47X4S0=0S7=30\eQ1\eX1\eN3   # baud rates > 2400
  314. Xinit_default:ATS11=47X4S0=0S7=30\eQ0\eX0\eN0 # other baud rates
  315. Xdial_default:ATDT
  316. X
  317. X#+-----------------------------------------------------------
  318. X#  tty2d.mi - USR Courier 2400
  319. X#------------------------------------------------------------
  320. Xinit_default:ATS11=47 X4 S0=0 S7=32
  321. Xdial_default:ATDT
  322. X
  323. X.DE
  324. X
  325. X.*s 2 "File Transfer"
  326. X
  327. XECU supports numerous file transfer protocols: as of this writing,
  328. XXMODEM, XMODEM/CRC, XMODEM-1K, YMODEM/CRC Batch, ZMODEM/CRC-16,
  329. XZMODEM/CRC-32, C-Kermit and SEAlink are supported.  `
  330. XAlthough a seamless interface
  331. X(there's some yuppie marketing newspeak) is provided to the user,
  332. Xtransfer is facilitated by executing external programs.
  333. X
  334. XKermit support requires you to obtain C-Kermit version 5A or later.
  335. XYou may also patch C-Kermit 4E to work with ECU (The
  336. Xpatch information is available in the ckermit subdirectory of the
  337. XECU release).  C-Kermit 5 is in beta release as of this writing
  338. Xand supports ECU without modification.
  339. X
  340. XXMODEM, YMODEM and ZMODEM transfers (thanks to modified public domain
  341. Xprograms by Chuck Forsberg) present dynamic status displays similar to
  342. Xthe following:
  343. X.DS L
  344. X .-[ ecusz 3.20 ]-- /tmp -------------------------------.
  345. X |  ZMODEM/CRC32   data rate ~= 900 ch/sec (94%)     T  |
  346. X |  File 1   of 1  : /t/ecu320cpio.Z                    |
  347. X |  File position:  617472 length: 915263  -rw-r--r--   |
  348. X |  Total transaction 915263 bytes (xfer time ~= 17:29) |
  349. X |  tx: D32 ZCRCG 1024          rx: HEX ZACK  605184    |
  350. X |  Comm I/O: rx 917       tx 650041   bytes            |
  351. X |  Baud rate: 9600 BINARY blklen: 1024 comm mode: RAW  |
  352. X |  Time: started: 13:39:34 this file: 13:39:35 window: |
  353. X |  13:51:34 elapsed: 00:12:00         00:11:59 +12288  |
  354. X |  Errors: this file: 2   total: 2  files skipped: 0   |
  355. X |                                                      |
  356. X |  This file 67%, transaction 67% complete             |
  357. X |  Remote: CRC32 y  duplex y  continuous stream y      |
  358. X `- Connected to tridom --------------------------------'
  359. X.DE
  360. X
  361. XDuring file transfer, data rates are displayed from time to time.
  362. XWhile the figures may vary significantly during the transfer, bear in mind
  363. Xthe calculations are for actual data throughput, measured as total DATA
  364. Xcharacters transferred from the time the file is opened until it is closed.
  365. XSo, if the data rate appears to be low at the start of the transfer
  366. Xand increase over time, perhaps it took a significant amount of time for
  367. Xthe receiver to open it's file or to respond to protocol startup stimuli.
  368. XIf the data rate appears to be higher at the beginning and become
  369. Xlower over time, perhaps flow control is being invoked.  A sudden
  370. Xreduction in the "last file" or "transaction" data rate over the
  371. Xin progress rate reflects the time required to close files, operate
  372. Xthe protocol or to skip files (in the case of ZMODEM).  If any files
  373. Xare skipped in a session, you may be sure the transaction
  374. Xrate will be (perhaps much) lower than the per-file rate.
  375. X
  376. XOn some systems and driver options, sundry driver statistics are
  377. Xdisplayed during X/Y/ZMODEM transfers.  For instance, in the above
  378. Xdisplay from a Sun session.  the driver's current output and input
  379. Xqueue depths and input queue space available are displayed along with
  380. Xthe current status of RTS and CTS.  While such gay banter is rightly
  381. Xrelegated to the "bell and whistle" category, it does provide a rare
  382. Xinsight into driver operation.  The ECU FAS/i driver for 386 systems
  383. X(after Uwe Doering's FAS driver) provides other information.
  384. X
  385. X.DS L
  386. X        |  Output queue depth       0  RTS T  CTS T                |
  387. X        |  Input queue depth       10  Input queue avail    490    |
  388. X.DE
  389. X
  390. X
  391. X.*s 2 "Automatic ZMODEM Receive"
  392. XECU in the interactive mode (no procedure executing) can interpret a
  393. XSUB, 'B', '0', '0' receive data sequence as a ZMODEM ZRQINIT frame and
  394. Xautomatically begin a ZMODEM receive operation.  The
  395. X.B autorz
  396. Xinteractive and procedure commands control
  397. Xthis feature.  By default, this feature is turned on.
  398. X
  399. X.*s 2 "Procedures (Scripts)"
  400. XA powerful, language-style procedure language is incorporated
  401. Xinto ECU.  The language is described in the companion "Procedure
  402. XLanguage" manual.
  403. X
  404. XProcedures are files of programmatic instructions written in
  405. Xthe ECU procedure language invoked explicitly by the
  406. X.B do 
  407. Xinteractive command or automatically by ECU functions described below.
  408. XProcedures are invoked by
  409. X.I name ,
  410. Xand result in execution of the file
  411. X.I name .ep.
  412. X
  413. XThe file is searched for in the current directory.  If not found there,
  414. XECU checks your personal .ecu subdirectory.  If not there, the ECU library "ep" subdirectory is searched (e.g.,
  415. X.I /usr/local/lib/ecu/ep ).
  416. X
  417. X.*s 3 "Initial (Startup) Procedure"
  418. XAn
  419. X.B
  420. Xinitial procedure
  421. X.R
  422. Xmay be be specified to ECU either to initialize an interactive
  423. Xsession or to execute an entirely unattended or "batch"
  424. Xcommunication session.  Refer to the section on command switches ("-p").
  425. X
  426. X.*s 3 "Dialing Procedure"
  427. XWhen a named dialing entry is selected for calling, if a procedure
  428. Xcan be located using the above mentioned search sequence whose name matches
  429. Xthe name of the directory, then all of the usual ECU built-in dialing
  430. Xprocedure is bypassed and the procedure is used.  For details, refer to
  431. Xother sections related to dialing.
  432. X.*s 3 "Other Special Procedures"
  433. XOther special procedures may be invoked when
  434. X.BL
  435. X.LI
  436. Xecu starts up (_rc.ep)
  437. X.LI
  438. Xa connection is established (_connect.ep)
  439. X.LI
  440. Xan attempted connection fails (_connfail.ep)
  441. X.LI
  442. Xa connection is terminated with the hangup command (_hangup.ep)
  443. X.LE
  444. XSee the ECU procedure manual for details.
  445. X
  446. X.*s 2 "DCD (Carrier) Watcher"
  447. XECU can be instructed to monitor DCD (carrier) status on any
  448. Xtty line whose driver honors dynamic manipulation of the CLOCAL
  449. Xcontrol bit.  
  450. XECU may be instructed to ignore DCD (the default state).
  451. XIn such a state, if carrier is lost after a connection has been
  452. Xmade, ECU is unaware the connection has been lost.  An interactive
  453. X.B stat
  454. Xcommand will show the connection still active.
  455. X
  456. XWhen the DCD watcher is enabled, loss of carrier will cause
  457. Xthe hangup command processing to automatically be executed
  458. X(including execution of the special procedure
  459. X_hangup.ep if any can be found).
  460. X
  461. XAn additional mode is available which, in addition to the hangup
  462. Xprocessing,  causes ecu to terminate execution.
  463. X
  464. XThe
  465. X.B dcdwatch
  466. Xinteractive and procedure commands control this feature.
  467. XIn addition, each dialing directory entry has a field
  468. Xspecifying whether or not the DCD watcher status is to be
  469. Xchanged upon connecting to the remote system and if so,
  470. Xto what state.  Refer to the description of the
  471. X.B dcdwatch
  472. Xand
  473. X.B dial
  474. Xcommands for details.
  475. X
  476. X.*s 2 "Home Directory Files"
  477. XECU control files reside in the .ecu subdirectory of
  478. Xeach user's home directory.  For example, in home directory /usr/wht:
  479. X.DS I
  480. X   /usr/wht/.ecu/dir          CD interactive command history file
  481. X*  /usr/wht/.ecu/keys         function key mapping
  482. X*  /usr/wht/.ecu/funckeymap  function key mapping
  483. X   /usr/wht/.ecu/log          connect, file transfer history
  484. X   /usr/wht/.ecu/phone        default dialing directory
  485. X*% /usr/wht/.ecu/colors       colors used by ECU
  486. X.DE
  487. X
  488. X* The ecu library directory (normally /usr/local/lib/ecu) is searched for
  489. Xthe "keys", "colors" and "funckeymap" file if a personal version
  490. Xcannot be found.
  491. X
  492. X% The "colors" file does not apply to systems on which color is not yet
  493. Xsupported.
  494. X
  495. XThe .ecu directory is searched for an ECU procedure file
  496. X(having the '.ep' extension) if the procedure file cannot be found in
  497. Xthe current working directory.
  498. X
  499. X.*s 2 "Lock Files"
  500. X
  501. XECU maintains lock files in the standard directory in accordance with the
  502. XHoneyDanBer UUCP conventions (ASCII pids as 10-character strings
  503. Xfollowed by a newline).  If porting to a machine with old-style
  504. Xinteger pids, grep for HONEYDANBER in the sources for hints on
  505. Xwhere changes are needed.
  506. X
  507. XStandard lock directories for versions supported as of this writing:
  508. X.DS I
  509. X   SCO               /usr/spool/uucp
  510. X   ISC               /usr/spool/locks
  511. X   SunOS, SVR4       /var/spool/locks
  512. X.DE
  513. X
  514. X.ul 1
  515. XWorld write access to this directory must be in effect. 
  516. X
  517. XSee the later section titled "HoneyDanBer UUCP Interface".
  518. X
  519. X.*s 2 "Dial-In/Dial-Out Line Support"
  520. X
  521. XOn SCO XENIX and UNIX 3.2 systems,
  522. XECU works with the SCO getty to support dialing out on a line
  523. Xenabled for login.  After use of the line is complete,
  524. XECU signals the system to restore incoming call status to
  525. Xthe line.
  526. XSee the later section titled "HoneyDanBer UUCP Interface".
  527. X
  528. XThis facility is not supported in other environments as of this writing.
  529. XScan the distribution README.* files for any updates.
  530. X
  531. X.*s 2 "Tools"
  532. X
  533. XCommands are provided for conversion of hexadecimal or decimal numbers
  534. Xto and from ASCII equivalents.  For example, 26(10) == 0x1a == ^Z == SUB.
  535. XFor details, refer to the description of the
  536. X.B XA
  537. Xand
  538. X.B AX
  539. Xinteractive commands.
  540. X
  541. X.*s 2 "Shared Memory 'Friend' Interface"
  542. X
  543. XECU maintains a copy of the received screen image (80 x 43
  544. Xmaximum) and other
  545. Xinformation in its shared memory segment.  Normally, this
  546. Xinformation is used only by the transmitter and receiver
  547. Xprocess.  However,  ECU supports the concept of a
  548. X.B friend
  549. Xprocess which may access the shared memory segment, perform
  550. Xarbitrary auxiliary operations, read from and write to the
  551. Xattached communications line and communicate resulting information
  552. Xor status to an ECU procedure via a 1024-byte "friend"
  553. Xdata area in the shared memory segment.
  554. X
  555. XThe procedure language supports the friend
  556. Xprocess concept through commands and functions which allow
  557. X.BL
  558. X.LI
  559. Xpassing the ECU shared memory segment id (%shmid) to a called
  560. Xprogram,
  561. X.LI
  562. Xreading a single character or string of characters from
  563. Xscreen memory,
  564. X.LI
  565. Xreading cursor position information and
  566. X.LI
  567. Xreading and writing of characters, short or long integers and
  568. Xstrings in the 1024-byte "friend" shared memory data area.
  569. X.LE
  570. X
  571. XThe algorithm for obtaining the shared memory segment key is
  572. X.DS L
  573. X0xEC000000L + transmitter process id
  574. X.DE
  575. XThus a "friend" process may either use a %shmid 
  576. X.B
  577. Xshared memory key
  578. X.R
  579. Xpassed as an argument or obtain the 
  580. X.B
  581. Xshared memory key
  582. X.R
  583. Xby using:
  584. X.DS L
  585. Xkey_t shmkey = 0xEC000000L | getppid();
  586. X.DE
  587. X
  588. XThis facility allows batch and interactive applications
  589. Xto be developed with C programs which would be
  590. Xtedious or impractical to implement with procedure language alone.
  591. X
  592. XFor more information, refer to the shared memory header file
  593. X.B ecushm.h ,
  594. Xthe
  595. X.B ecufriend
  596. Xsubdirectory of the software release
  597. Xand to the description of the
  598. X.B %shmid ,
  599. X.B %cury
  600. Xand
  601. X.B %curx
  602. Xprocedure functions
  603. Xand the
  604. X.B getf
  605. Xand
  606. X.B putf
  607. Xprocedure commands.
  608. SHAR_EOF
  609. echo 'File doc/_features.txt is complete' &&
  610. chmod 0644 doc/_features.txt ||
  611. echo 'restore of doc/_features.txt failed'
  612. Wc_c="`wc -c < 'doc/_features.txt'`"
  613. test 38219 -eq "$Wc_c" ||
  614.     echo 'doc/_features.txt: original size 38219, current size' "$Wc_c"
  615. rm -f _shar_wnt_.tmp
  616. fi
  617. # ============= doc/_hdb.txt ==============
  618. if test -f 'doc/_hdb.txt' -a X"$1" != X"-c"; then
  619.     echo 'x - skipping doc/_hdb.txt (File already exists)'
  620.     rm -f _shar_wnt_.tmp
  621. else
  622. > _shar_wnt_.tmp
  623. echo 'x - extracting doc/_hdb.txt (Text)'
  624. sed 's/^X//' << 'SHAR_EOF' > 'doc/_hdb.txt' &&
  625. X.*s 1 "HoneyDanBer UUCP Interface"
  626. X
  627. X.*s 2 "Control Files"
  628. X
  629. XThis section describes how ecu uses verious HDB UUCP control
  630. Xfiles found in the UUCP library directory (e.g., /usr/lib/uucp on
  631. XSCO and ISC or /etc/uucp on SunOS and SVR4).
  632. X
  633. X.*s 3 "Devices"
  634. X
  635. XECU reads this file to determine what tty devices are available
  636. Xfor outgoing calls. The fourth field must contain a baud rate or
  637. Xrange of baud rates acceptable for the line.  The fifth field of
  638. Xeach entry must contain either the full pathname of an (SCO)
  639. Xmodem dialer program (with leading slash) or the name of an entry
  640. Xin the HDB Dialers file (no leading slash).  For more
  641. Xinformation, consult the UUCP documentation for your system and
  642. Xsee "Dialers" and "Choosing a Dialout Line" below.
  643. X
  644. X.*s 3 "Dialers"
  645. X
  646. X.B Dialers
  647. Xentries may be specified in the Devices entry. 
  648. XECU provides Dialers support that is largely compatible
  649. Xwith most System V HDB uucico programs.  Refer to
  650. Xyour system's UUCP documentation for general
  651. Xusage instructions.  Refer to the procedure command
  652. X.B expresp
  653. Xfor a precise list of escape sequences supported by ECU.
  654. X
  655. X.*s 3 "Sysfiles"
  656. X
  657. XSysfiles support is not yet provided.  The Devices and
  658. XDialers files must have their default names.
  659. X
  660. X.*s 3 "Systems"
  661. X
  662. XNo use is made of the
  663. X.B Systems
  664. Xfile at this time.  ECU provides the
  665. Xequivalent function with its dialing directory.
  666. X
  667. X.*s 2 "Choosing a Dialout Line"
  668. X
  669. XWhen using the interactive
  670. X.B dial
  671. Xcommand, or when dialing from the initial menu,
  672. Xif a logical or system name is specified, the directory
  673. Xentry is fetched and examined.  If the tty field specifies
  674. Xa value other than "Any", the specific line requested is
  675. Xopened, if available, and dialing commences. 
  676. XIf the specified line is not available, the dial attempt
  677. Xfails.
  678. X
  679. XIf "Any" is found in the dialing directory entry tty field, then
  680. XECU finds an available Devices line which matches the baud rate
  681. Xspecified in the entry. 
  682. X
  683. XOther special tty field entries allow regular expression or
  684. Xliteral matching of Devices types.  See the description of the  dialing
  685. Xdirectory for more details.
  686. X
  687. XA line is selected only if its class begins with the three
  688. Xcharacters "ACU."  UUCP will only select a line whose Devices
  689. Xentry class matches the active Systems entry class (usually
  690. X"ACU"), so usually you may make a modem accessible to ECU, but not
  691. Xto UUCP, by setting it's class to ACUECU.
  692. X
  693. XOn systems employing ecuungetty, if a line being considered for
  694. Xselectionis found to be a line enabled for login, but
  695. Xcurrently idle, the ecuungetty interface, described below,
  696. Xis used to acquire the line for outgoing use.
  697. X
  698. XThe DCD watcher (see the interactive and procedure commands
  699. X.B dcdwatch )
  700. Xdepends upon the tty driver to return zero
  701. Xon a read when DCD is low when the termio flag CLOCAL is reset.
  702. XThe tty driver must ignore DCD if CLOCAL is set.
  703. XIf your system offers a "modem" and "direct" choice (by choice
  704. Xof filename), you probably need to use the "modem" choice for
  705. Xthis to work properly.  However, the choice depends upon
  706. Xthe needs of the underlying driver you are using.
  707. XFor instance, if you are using FAS in a shared modem application,
  708. Xyour getty should use the "modem" choice and ECU should
  709. Xuse the "direct" choice.  Some experimentation may be required.
  710. X
  711. XOne of the symptoms of an incorrect line choice is ECU hangs,
  712. Xline errors such as EIO and EBUSY.  These problems may
  713. Xbe caused by other problems, but incorrect line choice is
  714. Xthe most frequent cause.
  715. X
  716. X
  717. X.*s 2 "SCO Tty Naming"
  718. X
  719. XOn SCO,
  720. XTTY devices must be named in the style of:
  721. X.DS I
  722. X/dev/tty#N
  723. X        ^^
  724. X        ||
  725. X        |`------ uppercase letter for modem control
  726. X        |        lowercase for non-modem control
  727. X        `--------digit (1-4)
  728. X.DE
  729. X
  730. XIf you are using FAS or other third-party driver, you may
  731. Xuse ECU with ports not normally named in the /dev/tty#N
  732. Xstyle in one of two ways under UNIX and one way under XENIX:
  733. X
  734. X.DS I
  735. X1.  Under XENIX or UNIX, create a link to the port
  736. X    with a compatible name:
  737. X
  738. X          ln /dev/ttyF00 /dev/tty1a
  739. X          ln /dev/ttyFM00 /dev/tty1A
  740. X
  741. X2.  Under UNIX, add additional lines to the
  742. X    /etc/conf/node.d file and rebuild the kernel
  743. X    environment (this is the recommended approach
  744. X    for UNIX):
  745. X
  746. Xfas ttyF00  c   48
  747. Xfas tty1a   c   48
  748. Xfas ttyF01  c   49
  749. Xfas tty1b   c   49
  750. Xfas ttyFM00 c   208
  751. Xfas tty1A   c   208
  752. Xfas ttyFM01 c   209
  753. Xfas tty1B   c   209
  754. X.DE
  755. X
  756. XNote the device numbers are examples only.  Consult the driver
  757. Xdocumentation for proper choices.
  758. X
  759. XIf you cannot live within this restriction, search for the #define
  760. XSCO_TTY_NAMING in ecu.h (that depends on SCO's M_SYSV) and disable it.
  761. X
  762. X.*s 2 "Ecuungetty (Getty Interface)"
  763. X
  764. XThis section applies to the SCO version of the program.  It
  765. Xmay also apply to others in part.  Specifically, as of this
  766. Xwriting, this section does not apply to the SunOS version
  767. Xdue to the differences in utmp arrangement.  In some versions,
  768. Xthe mechanism may execute and do no harm, yet essentially be a no-op.
  769. X
  770. XWhen an idle dialin (enabled) line is chosen for dialout,
  771. XECU makes use of
  772. X.B ecuungetty
  773. X(in the ecu library directory, normally /usr/local/lib/ecu)
  774. Xto signal the line's getty to release the line (via SIGUSR1).
  775. X.B Ecuungetty
  776. Xis again employed to signal the getty to reacquire the
  777. Xline when outgoing communication is complete (via SIGUSR2).
  778. X
  779. XEcuungetty is a privileged program, which must be owned by root
  780. Xand have the setuid-on-execute bit set.  An encrypted id is passed
  781. Xby ecu to ecuungetty to validate requests and to prevent abuse of
  782. Xecuungetty by crackers, malcontents and other twentieth-century
  783. Xphenomena.
  784. X
  785. X.*s 2 "SCO Dialer Programs"
  786. X
  787. XThe concept of a dialer program (an executable binary
  788. Xas opposed to a Dialers entry) is an SCO enhancement and
  789. Xis unlikely to be of benefit to users of other versions (too bad!).
  790. XECU will support dialer programs under any version, but other
  791. Xusers of the Devices file (read "your vendor-supplied uucico")
  792. Xwill most likely barf on non-SCO systems.
  793. X
  794. XIf the
  795. X.B Devices
  796. Xfile can be found in /usr/lib/uucp,
  797. Xand a valid entry for the attached line can be found,
  798. XECU will use the Dialers script or dialer program specified in the
  799. X.B Devices
  800. Xentry.
  801. X
  802. X.*s 2 "Gendial Dialer Package"
  803. X
  804. XSample SCO-style modem dialer program sources may be found
  805. Xin the gendial/ subdirectory of the distribution.
  806. XSome of them, particularly dialgHA24 and dialgT2500, are very
  807. Xrobust and succeed where other programs may fail.  They retry
  808. Xmodem initialization and reset/hangup commands .
  809. X
  810. XThe code is divided into one general module and several modem-
  811. Xand DCE-specific modules.  A program is built by combining
  812. Xthe gendial.o with the appropriate dceFOO.o module to produce
  813. Xa dialgFOO executable.
  814. X
  815. XTo write a dialer for a modem not already in the gendial package,
  816. Xcopy template.c to dceMYMODEM.c and edit it to contain the
  817. Xnecessary variable assignments and initialization, dialing and hangup
  818. Xcode.  The existing dce*.c modules provide examples.
  819. XEdit the gendial/Make.src file to add rule lines for your program.
  820. X(Do not modify Makefile alone
  821. Xsince a "Configure" will overwrite Makefile.)
  822. X
  823. X.DS L
  824. XdialgMYMODEM: gendial.o dceMYMODEM.o
  825. X    $(CC) $(LDFLAGS) gendial.o dceMYMODEM.o $(LIBS) -o $@
  826. X.DE
  827. X
  828. XTo be "correct," you should run the Configure procedure
  829. Xin the main ecu directory to make a new Makefile,
  830. Xbut this has the unfortunate side effect of rebuilding all
  831. Xof the Makefiles which are built from Make.src files.
  832. XIf this happens, the next make will rebuild all of the
  833. Xobjects.
  834. X
  835. XIn this case, it is "OK" to cheat and copy the new Make.src lines to
  836. XMakefile.  A later Configure will not cause loss of the new lines.
  837. SHAR_EOF
  838. chmod 0644 doc/_hdb.txt ||
  839. echo 'restore of doc/_hdb.txt failed'
  840. Wc_c="`wc -c < 'doc/_hdb.txt'`"
  841. test 7541 -eq "$Wc_c" ||
  842.     echo 'doc/_hdb.txt: original size 7541, current size' "$Wc_c"
  843. rm -f _shar_wnt_.tmp
  844. fi
  845. # ============= doc/_icmd.txt ==============
  846. if test -f 'doc/_icmd.txt' -a X"$1" != X"-c"; then
  847.     echo 'x - skipping doc/_icmd.txt (File already exists)'
  848.     rm -f _shar_wnt_.tmp
  849. else
  850. > _shar_wnt_.tmp
  851. echo 'x - extracting doc/_icmd.txt (Text)'
  852. sed 's/^X//' << 'SHAR_EOF' > 'doc/_icmd.txt' &&
  853. X.*s 1 "Interactive Mode Commands"
  854. X
  855. XThe following is a partial list of commands available in the
  856. Xinteractive (non-procedure) mode.  It is not necessary to enter
  857. Xthe entire command in most cases.  The portion of each command
  858. Xwhich must be entered is capitalized in the following section
  859. Xheaders.
  860. X
  861. XRefer to the sections titled Interactive Command History
  862. Xand Line Editing for more information.
  863. X
  864. X.*s 2 "AUTORZ : Automatic ZMODEM Receive"
  865. XUsage: autorz [off | on | ]
  866. X
  867. XECU in the interactive mode (no procedure executing) can interpret a
  868. XSUB, 'B', '0', '0' receive data sequence as a ZMODEM ZRQINIT frame and
  869. Xautomatically begin a ZMODEM receive operation.  This command controls
  870. Xor displays this feature.  By default, this feature is turned on.
  871. X
  872. X.*s 2 "AX : ascii char to hex/oct/dec"
  873. X.DS L
  874. Xusage: ax [<param>]
  875. X.DE
  876. X
  877. X<param> may be a single ASCII character, a standard ASCII
  878. Xidentifier (such as ETX), or a two-character control
  879. Xcharacter identifier (such as ^C, typed as a caret followed
  880. Xby a C).
  881. X
  882. XIf no argument is supplied, a table of control characters
  883. Xis printed containing decimal, octal, hex, ASCII identifiers
  884. Xand two-character control character identifier.
  885. X
  886. X
  887. X.*s 2 "BAud : set/display line baud rate"
  888. X.DS L
  889. Xusage: baud [<baud-rate>]
  890. X.DE
  891. X
  892. X<baud-rate>, if specified, must be taken from the values
  893. X110, 300, 600, 1200, 2400, 4800, 9600, 19200 and 38400.  On
  894. Xsome systems, 19200 and 38400 may not be supported.  If a baud
  895. Xrate less than 300 is selected, 2 stop bits are automatically
  896. Xspecified; other baud rates set 1 stop bit.  If <baud-rate>
  897. Xis not supplied, the current baud rate is displayed.
  898. X
  899. XThe setting may be automatically changed as the result of a 'dial'
  900. Xcommand.  See also the
  901. X.B dial
  902. Xand
  903. X.B parity
  904. Xcommand descriptions.
  905. X
  906. X
  907. X.*s 2 "BN : all console event alarm"
  908. X.DS L
  909. XUsage: bn [ off | on | alert ]
  910. X       bn [ 0 | 1 | 2 ]
  911. X.DE
  912. X
  913. X"bell notify": If no parameter is supplied, the current setting is
  914. Xdisplayed.  Specifying 0 or off disables the facility; 1 or on causes
  915. Xan audible alarm to be sounded upon receipt of a bell (0x07)
  916. Xcharacter from the remote system; 2 or alert causes an audible alarm
  917. Xupon receipt of ANY characters.  This command may not be functional
  918. Xin the version for your system.
  919. X
  920. XOn SCO, different alarm styles are sent depending upon the type of
  921. Xevent causing the alarms.  The alarms consist of Morse characters.
  922. XEven if you do not understand Morse, the patterns of the alarm
  923. Xtones are distinct enough to be distinguishable.
  924. X
  925. XAdditionally on SCO, if you are running ECU from a multiscreen,
  926. Xthe alarms will be signalled even if you have temporarily
  927. Xswitched to another screen.
  928. X
  929. XBN is set to 1 (on) when ECU begins executing.
  930. X
  931. X.*s 2 "BReak : send break to remote"
  932. X.DS L
  933. Xusage: break
  934. X.DE
  935. X
  936. XThis command sends a break signal to the remote system.
  937. X
  938. X
  939. X.*s 2 "CD : change current directory"
  940. X.DS L
  941. Xusage: cd [<dir-path>]
  942. X.DE
  943. X
  944. XThis command allows you to change the working directory of
  945. Xthe ECU process.  If <dir-path> is supplied, the previous
  946. Xworking directory is displayed, and <dir-path> is made the
  947. Xnew working directory.  A history of previous directory
  948. Xchanges is maintained.  Entering the
  949. X.B cd
  950. Xcommand shows the numbered history list and allows you to select a new
  951. Xdirectory by entering the number.  Other commands allow
  952. Xdeletion of directories from the list or saving the list to
  953. Xfile ~/.ecu/dir.  This file is automatically read at ECU
  954. Xstartup, providing a convenient list of directories
  955. Xavailable for quick selection.  If you edit this file by hand,
  956. Xyou may force ECU to re-read the file using the %read option.
  957. X
  958. XThe %xmitcd option transmits "cd "+current_directory+CR to the remote,
  959. Xa convenience to set the remote current directory to the
  960. Xsame as your local one.
  961. X
  962. XThe %pushd # option pushes the current directory onto the same stack
  963. Xused by the
  964. X.B pushd
  965. Xinteractive command and changes the current directory to the numbered
  966. Xdirectory specified by #.  Use the
  967. X.B popd
  968. Xinteractive command to return to the previous directory.
  969. X
  970. XOther %options have usage information by entering them with no arguments.
  971. X.*s 2 "DA : decimal to ascii char"
  972. X.DS L
  973. Xusage: da [<decimal-val>]
  974. X.DE
  975. X
  976. X<decimal-val> is a decimal value between 0 and 256; the
  977. Xparity (sign) bit is stripped and the equivalent ASCII
  978. Xcharacter value is displayed.
  979. X
  980. XIf no argument is supplied, a table of control characters
  981. Xis printed containing decimal, octal, hex, ASCII identifiers
  982. Xand two-character control character identifier.
  983. X
  984. X.*s 2 "DCDwatch"
  985. X.DS L
  986. Xusage: dcdwatch [<dcdwatch-param>]
  987. X.DE
  988. X
  989. XThis command controls the DCD watcher.  The optional parameter may be:
  990. X.DS L
  991. X   y  yes - enable DCD watcher
  992. X   n  no - disable DCD watcher
  993. X   t  terminate - terminate ECU on loss of DCD
  994. X.DE
  995. XEntering the command without an argument shows the current status.
  996. X
  997. XThe DCD watcher when enabled causes ECU to monitor the DCD line
  998. X(within the limits imposed by the OS with its CLOCAL=0 functionality).
  999. XWhen the watcher is on and DCD drops, ecu automatically performs
  1000. Xthe action of the interactive or procedure
  1001. X.B hangup
  1002. Xcommand.  If the 't'erminate option is chosen, then after
  1003. Xhangup processing is complete, the ECU program will terminate.  
  1004. X
  1005. XThe state of the watcher may be changed by the use of the dial
  1006. Xcommand which uses a directory entry that changes the
  1007. XDCD watcher status.
  1008. X
  1009. XThe DCD watcher depends upon the tty driver to return zero
  1010. Xon a read when DCD is low when the termio flag CLOCAL is reset.
  1011. XThe tty driver must ignore DCD if CLOCAL is set.
  1012. XIf your system offers a "modem" and "direct" choice (by choice
  1013. Xof filename), you probably need to use the "modem" choice for
  1014. Xthis to work properly.  However, the choice depends upon
  1015. Xthe needs of the underlying driver you are using.
  1016. XFor instance, if you are using FAS in a shared modem application,
  1017. Xyour getty should use the "modem" choice and ECU should
  1018. Xuse the "direct" choice.  Some experimentation may be required.
  1019. X
  1020. X.*s 2 "Dial : dial remote destination"
  1021. X.DS L
  1022. Xusage: dial [<dial-param>]
  1023. X.DE
  1024. X
  1025. X<dial-param> may take one of two forms, a telephone number
  1026. Xto dial (initial digit) or a logical name (initial letter)
  1027. Xwhich can be found in the user
  1028. Xphone directory (in file ~/.ecu/phone).
  1029. X
  1030. XIf a telephone number is supplied, the phone number is
  1031. Xdialed; you must first have set the desired baud rate and
  1032. Xparity using the
  1033. X.B baud
  1034. Xand
  1035. X.B parity
  1036. Xcommands.
  1037. X(If the last character of a telephone number is a dollar sign,
  1038. Xit is removed and is replaced with the contents of the first line
  1039. Xin ~/.ecu/credit.  See the description of the dialing directory.)
  1040. X
  1041. XIf a logical name is entered, the phone directory is searched; if
  1042. Xthe entry is found, the baud rate and parity is automatically
  1043. Xset.  if a procedure file can be found in the current directory,
  1044. Xthe user's home .ecu subdirectory or the ECU library directory "ep"
  1045. X(normally /usr/local/lib/ecu/ep) whose name matches the logical
  1046. Xname, then the procedure is executed with the argument '!INTERACTIVE'.
  1047. X
  1048. XIf <dial-param> is not supplied, then a screen-oriented
  1049. Xself-documenting <:-)> directory manager is executed; you may
  1050. Xscan the directory to select a number to dial, as well
  1051. Xas add, remove and edit entries.
  1052. X.*s 3 "Alternate Dialing Directory"
  1053. X
  1054. XThe default dialing directory is ~/.ecu/phone.  You may change to
  1055. Xanother directory by issuing the interactive 
  1056. X.B dial
  1057. Xcommand with no arguments to enter the dialing directory
  1058. Xmenu, selecting 'c'hange dial directory, and entering the name
  1059. Xof a new directory.  The specified pathname must either be
  1060. Xa fully qualified pathname or a pathname relative to the
  1061. Xcurrent working directory.  Once an alternate directory
  1062. Xhas been selected, it will be used by
  1063. Xboth the interactive command 'dial <logical>' and 
  1064. Xthe dialing directory menu.
  1065. X
  1066. XUsing the dial command with a directory entry may change the 
  1067. XDCD watcher (dcdwatch) status.
  1068. XSee the section on the
  1069. X.B dcdwatch
  1070. Xcommand for more information.
  1071. X
  1072. XSee the section below titled "Choosing a Dialout Line" for
  1073. Xmore information on using "Any" in the "tty"
  1074. Xfield of a directory entry.
  1075. X
  1076. X.*s 3 "Multi-Number Redial Cycle"
  1077. X
  1078. XWhile in the  dialing directory, you may "mark" one or more
  1079. Xentries for a cyclical redial attempt.  When any entry is
  1080. Xmarked, typing ENTER (carriage return or line feed/newline)
  1081. Xcauses each marked entry to be dialed in turn until one of
  1082. Xthe remote systems is successfully connected.  When a
  1083. Xsuccessful connection occurs, ECU unmarks the 
  1084. Xassociated entry, leaving the others marked.  Thus, you
  1085. Xmay mark several entries and merely reenter the dialing
  1086. Xdirectory after each connection is finished and press
  1087. XENTER to reenter the redial cycle.  If a single entry
  1088. Xis marked, ECU pauses 15 seconds between each dialing attempt,
  1089. Xotherwise 5 seconds.  Pressing 'c' will cause the pause to
  1090. Xbe prematurely terminated and the next attempt to be made.
  1091. XPressing your interrupt key (DEL, ^C or whatever) aborts
  1092. Xthe cycle.  If you interrupt an active dialing attempt, you 
  1093. Xwill be prompted as to whether or not you wish to cycle to the next
  1094. Xentry or abort the cycle.
  1095. X
  1096. XIf no entries are marked for redial, the current, highlighted
  1097. Xdirectory entry is used for dialing.
  1098. X
  1099. XTo unmark a single entry, press 'M' (uppercase M).
  1100. XTo unmark all entries, press 'U'.
  1101. X
  1102. X.*s 3 "Automatic Dialing/Login Procedure"
  1103. X
  1104. XUpon dialing from the menu, if a procedure file can be found in
  1105. Xthe current directory, the user's home .ecu subdirectory or the
  1106. XECU library subdirectory "ep" (normally /usr/local/lib/ecu/ep) whose name
  1107. Xmatches the logical name, then the procedure is executed with the
  1108. Xargument '!MENU'.  It is the responsibility of the automatically
  1109. Xexecuted procedure to establish connection with the remote system
  1110. X(by using the procedure
  1111. X.B dial
  1112. Xcommand).  An example of an automatic login procedure
  1113. Xcan be found in the distribution subdirectory 'models'
  1114. Xnamed 'sysname.ep'.  A companion procedure is 'unixlogin.ep'.
  1115. X
  1116. XFor example,
  1117. X.DS L
  1118. X.--[ dialing directory ]-- /u1/wht/.ecu/phone -- ...
  1119. X| entry name | telephone number | tty | baud P | ...
  1120. X| sysname    | 555-1234         | Any | 2400 N | ...
  1121. X.DE
  1122. X.DS L
  1123. X#-----------------------------------------------------------
  1124. X# sysname.ep - procedure to call UNIX-like system 'sysname'
  1125. X#
  1126. X# CONFIDENTIAL - This function should be chmod 0600 because
  1127. X# it contains a password which you probably don't want to be
  1128. X# common knowledge.
  1129. X#
  1130. X# This procedure calls 'unixlogin.ep' to do the hard work.
  1131. X#-----------------------------------------------------------
  1132. X
  1133. X    mkvar $s_pwd(20)    # local variable preserves password
  1134. X    $s_pwd = 'password' # security by disappearing when the
  1135. X                        # procedure terminates
  1136. X
  1137. X#   also, by keeping the password text off the following line,
  1138. X#   the password will not be displayed if you abort (interrupt)
  1139. X#   the procedure
  1140. X
  1141. X    do 'unixlogin' %argv(0) 'username' $s_pwd 'ansi-or-whatever'
  1142. X.DE
  1143. X
  1144. X.*s 2 "DO : perform procedure"
  1145. X.DS L
  1146. Xusage: do <procname> [<arg> ... ]
  1147. X.DE
  1148. X
  1149. XPerform ECU procedure.  Ecu searches for <procname>.ep in
  1150. Xthe current directory.  If the file is not found, the program
  1151. Xlooks for the file in the ~/.ecu directory and in the ep subdirectory
  1152. Xof the library directory (usually /usr/local/lib/ecu/ep).  One or more
  1153. Xarguments may be passed to the procedure.  Arguments
  1154. Xare made available in the called procedure by use of the
  1155. X.B %argc
  1156. Xinteger function and
  1157. X.B %argv
  1158. Xstring function.
  1159. X
  1160. XUnlike arguments to the
  1161. X.B do
  1162. Xprocedure command, 
  1163. Xarguments to the
  1164. X.B do
  1165. Xinteractive command are not quoted and may not contain
  1166. Xembedded spaces or tabs.
  1167. X
  1168. X
  1169. X.*s 2 "DUplex : set/display duplex"
  1170. X.DS L
  1171. Xusage: duplex [ Full | Half ]
  1172. X.DE
  1173. X
  1174. XThis command specifies whether or not ECU is to locally echo
  1175. Xcharacters typed by you at the keyboard.  The overwhelming
  1176. Xmajority of remote systems provide the echo function, in
  1177. Xwhich case full duplex must be used.  For the rare occasions
  1178. Xwhen the remote system does not echo your keyboard input,
  1179. Xsetting half duplex will allow you to see what you are
  1180. Xtyping.
  1181. X
  1182. XWhen communicating with another terminal in a "teletype
  1183. Xconversation", setting half duplex is generally required.
  1184. XIn such cases, use of the 
  1185. X.B nl ,
  1186. X.B nlin
  1187. X.R
  1188. Xand
  1189. X.B nlout
  1190. Xcommands may also be required.
  1191. X
  1192. XThe default setting for duplex is full.
  1193. X
  1194. X
  1195. X.*s 2 "EXit : drop carrier, exit program"
  1196. X.DS L
  1197. Xusage: exit
  1198. X.DE
  1199. X
  1200. XThis command terminates ECU promptly.  If your modem does
  1201. Xnot drop carrier upon loss of Data Terminal Ready (DTR),
  1202. Xthe command will terminate ECU,
  1203. Xbut may leave the communications line off hook.
  1204. XIt is strongly recommended that you configure your
  1205. Xmodem to hang up the phone line when DTR drops.  A shorthand
  1206. Xversion of this command exists: '.' is equivalent to 
  1207. X.B exit .
  1208. X
  1209. X
  1210. X.*s 2 "FI : send text file to line"
  1211. X.DS L
  1212. Xusage: fi [<filename>]  [ | f | e | s]
  1213. X                        f full speed transmission
  1214. X                        e echo pacing
  1215. X                        s single line transmission
  1216. X
  1217. X.DE
  1218. X
  1219. X"file insert": This command causes file characters to be inserted
  1220. Xinto the transmit data stream as though they had been entered at the
  1221. Xkeyboard.  No error correction is provided, although XON/XOFF flow
  1222. Xcontrol is obeyed.
  1223. X
  1224. XIf <filename> is not entered on the command line, a prompt for the
  1225. Xfilename is made.  Once the filename has been entered and file has
  1226. Xbeen opened, you are asked whether the file should be transmitted at
  1227. Xfull speed, by "echo pacing" or by a single line at a time.  You may
  1228. Xalso append an 'f', 'e' or 's' argument to the command line.
  1229. X
  1230. XIf your remote can tolerate it, full speed transmission is the
  1231. Xfastest.  Some systems are not capable of receiving large amount of
  1232. Xdata ("streaming data") without pauses.  Even with "full" speed
  1233. Xtransmission, some "pacing" (inter-character delay) is introduced to
  1234. Xease loading on the remote system.  Pressing the interrupt key (DEL)
  1235. Xstops a full speed transmission.
  1236. X
  1237. XBy specifying echo pacing, it is possible to increase the likelihood
  1238. Xof proper receipt.  Echo pacing reads the return data stream to
  1239. Xattempt to keep from overloading the remote.  Pressing the interrupt
  1240. Xkey (DEL) stops an echo paced transmission.
  1241. X
  1242. XAs a last resort, if echo pacing is not working for you, (i.e., you
  1243. Xare using the command in an environment where the remote does not
  1244. Xecho your characters), single line at a time transmission is
  1245. Xavailable.  With "single" line transmission, you must press the
  1246. Xspace key to initiate sending each line.  Pressing the 'ESC' or 's'
  1247. Xkey stops the transfer.
  1248. X
  1249. X.*s 2 "FKEy : function key definition"
  1250. X.DS L
  1251. Xusage: fkey [<keyset_name>]
  1252. X       fkey -r
  1253. X.DE
  1254. X
  1255. XThis command allows the mapping of function keys F1-F12,
  1256. XPgUp, PgDn, End and Ins and the cursor up, down, left and
  1257. Xright keys to emit a desired sequence of characters when a
  1258. Xfunction key is pressed.  <keyset_name> specifies which key
  1259. Xset in ~/.ecu/keys is to be selected. Sample entry:
  1260. X.DS I
  1261. Xhayes
  1262. X    F1:escape:+ + +
  1263. X    F2:autoans:A T S 0 = 1 cr
  1264. X    F3:dial:A T D T
  1265. Xbbs
  1266. X    F1:cancel:^K
  1267. X    F2:yes:y cr
  1268. X.DE
  1269. X
  1270. X-r resets the key handler to the same state as when ECU
  1271. Xwas started.  See the section above titled "Standard Function Keys".
  1272. X
  1273. XIf a keyset_name matches a logical dial directory name, it
  1274. Xis loaded after a connection is established.
  1275. X
  1276. XThe characters in the mapped string may be any printable character
  1277. Xor one of the following:
  1278. X.DS I
  1279. Xmap -> character       map -> character
  1280. X---    -----------     ---    ------------
  1281. Xnul    0 000 00 ^@  |  dle    16 020 10 ^P
  1282. Xsoh    1 001 01 ^A  |  dc1    17 021 11 ^Q
  1283. Xstx    2 002 02 ^B  |  dc2    18 022 12 ^R
  1284. Xetx    3 003 03 ^C  |  dc3    19 023 13 ^S
  1285. Xeot    4 004 04 ^D  |  dc4    20 024 14 ^T
  1286. Xenq    5 005 05 ^E  |  nak    21 025 15 ^U
  1287. Xack    6 006 06 ^F  |  syn    22 026 16 ^V
  1288. Xbel    7 007 07 ^G  |  etb    23 027 17 ^W
  1289. Xbs     8 010 08 ^H  |  can    24 030 18 ^X
  1290. Xht     9 011 09 ^I  |  em     25 031 19 ^Y
  1291. Xnl    10 012 0a ^J  |  sub    26 032 1a ^Z
  1292. Xvt    11 013 0b ^K  |  esc    27 033 1b ^[
  1293. Xff    12 014 0c ^L  |  fs     28 034 1c ^\e
  1294. Xcr    13 015 0d ^M  |  gs     29 035 1d ^]
  1295. Xso    14 016 0e ^N  |  rs     30 036 1e ^^
  1296. Xsi    15 017 0f ^O  |  us     31 037 1f ^_
  1297. X.DE
  1298. X
  1299. X.*s 2 "FKMap : funckeymap (function key recognition) management"
  1300. X.DS L
  1301. Xusage: fkmap 
  1302. X       fkmap <keyname>
  1303. X       fkmap <keyname> <keylist>
  1304. X       fkmap -r
  1305. X       fkmap -s <file>
  1306. X.DE
  1307. X
  1308. XThis command manages the mechanism ECU uses to recognize function
  1309. Xkeys when they are entered at the console.  Entering the command
  1310. Xwith no arguments displays the current mapping in funckeymap format.
  1311. X
  1312. XIf supplied, the first argument to the command must be the
  1313. Xrecognized name of a function key from the list:
  1314. X.DS L
  1315. X F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12
  1316. X Home End PgUp PgDn CUP CUL CU5 CUR CUD
  1317. X.DE
  1318. XThe case of the entered argument is unimportant.
  1319. X
  1320. XIf only one argument is supplied, the mapping for the specified key
  1321. Xis displayed.  If more than one argument is supplied, the keyboard
  1322. Xmapping is changed.  Arguments 2-n are character code specifiers
  1323. Xin the format used to define a funckeymap entry.
  1324. X
  1325. X.B WARNING :
  1326. XIf found to be syntactically correct, a mapping change
  1327. Xis installed immediately.  If incorrect mapping of the HOME
  1328. Xkey is requested, you may lose control of ECU.
  1329. X
  1330. XThe -r form rereads the original funckeymap definition (as
  1331. Xat program invocation), reseting the mapping.  The -s switch
  1332. Xsaves the current mapping to <file>.
  1333. X
  1334. X.DS L
  1335. XExamples:
  1336. X
  1337. X    fkmap f10       display F10 mapping
  1338. X    fkmap Home ^Z   map Home to ^Z
  1339. X                    after this command, type ^Z for Home
  1340. X.DE
  1341. X
  1342. X.*s 2 "HAngup : hang up modem"
  1343. X.DS L
  1344. Xusage: hangup
  1345. X.DE
  1346. X
  1347. XThis causes DTR to be momentarily interrupted,
  1348. Xterminating any outstanding connection.
  1349. XYour DCE (modem) must be able to drop carrier upon loss of DTR.
  1350. X
  1351. X.*s 2 "HElp : invoke help"
  1352. X.DS L
  1353. Xusage: help [<cmd-name>]
  1354. X.DE
  1355. X
  1356. XIssuing this command with no argument displays a list of
  1357. Xcommands followed by a request for a command for further
  1358. Xinformation.
  1359. X
  1360. X.*s 2 "KBDTest : test keyboard mapping"
  1361. X.DS L
  1362. Xusage: kbdtest
  1363. X.DE
  1364. X
  1365. XThis command runs a keyboard test which asks you to press function keys
  1366. X(e.g., F1).  For each key pressed, ECU gives you the actual character
  1367. Xsequence generated by the key.  It also tells you which function key it
  1368. Xrecognizes (if any).  mapping of keyboard generated character sequences
  1369. Xto ECU internal key codes.  The command is useful for verifying and
  1370. Xdebugging a "funckeymap" entry.  To exit the test at any time, press the
  1371. Xescape key.
  1372. X
  1373. X.*s 2 "LLp : set session log to /dev/lp"
  1374. X.DS L
  1375. Xusage: llp
  1376. X.DE
  1377. X
  1378. XThis command is a
  1379. Xshorthand version of 'log /dev/lp'.  /dev/lp must not be
  1380. Xunder the control of a print spooler.
  1381. X
  1382. X
  1383. X.*s 2 "LOFf : turn off session logging"
  1384. X.DS L
  1385. Xusage: loff
  1386. X.DE
  1387. X
  1388. XThis command is shorthand for 'log off'.  If session logging
  1389. Xis active, it is turned off.
  1390. X
  1391. X.*s 2 "LOG : session logging control"
  1392. X.DS L
  1393. Xusage: log [-s] [-r] [ | off | filename ]
  1394. X    -s "scratch" previous file contents; otherwise append
  1395. X    -r "raw" logging; otherwise non-printable characters
  1396. X        other than tab and newline are omitted from the log
  1397. X.DE
  1398. X
  1399. XThis command controls session logging; issuing the command
  1400. Xwith no argument causes the status of session logging to be
  1401. Xdisplayed.  The special argument 'off' causes active logging
  1402. Xto be terminated.  Other argument values cause logging to
  1403. Xstart using the argument as a filename.  Issuing a 
  1404. X.B log
  1405. Xcommand with a filename when logging is already active causes the
  1406. Xprevious file to be closed and the new file to be opened.
  1407. XSwitches are meaningful only when used in conjunction with a
  1408. Xfilename to start logging.
  1409. X
  1410. X
  1411. X.*s 2 "NL : display CR/LF mapping"
  1412. X.DS L
  1413. Xusage: nl
  1414. X.DE
  1415. X
  1416. XDisplay the current setting of CR/LF mapping.  For more
  1417. Xinformation, refer to the
  1418. X.B nlin
  1419. Xand
  1420. X.B nlout
  1421. Xcommand descriptions.
  1422. X
  1423. X
  1424. X.*s 2 "NLIn : set receive CR/LF mapping"
  1425. X.DS L
  1426. Xusage: nlin [<y-n>]
  1427. X.DE
  1428. X
  1429. XThis command controls whether or not a newline (NL/LF)
  1430. Xcharacter is sent to the screen upon receipt of a carriage
  1431. Xreturn (CR) from the remote system.  Most remote computers
  1432. Xsupply a NL after CR.  When communicating with another
  1433. Xterminal in a "teletype conversation", this is generally not
  1434. Xthe case (see also the 
  1435. X.B duplex
  1436. Xcommand).
  1437. X
  1438. XIssuing the command without <y-n> causes the current setting
  1439. Xto be displayed.  The format of <y-n> is flexible: 'y' or '1'
  1440. Xenables appending NL to CR, 'n' or '0' causes the
  1441. Xfeature to be disabled.
  1442. X
  1443. X
  1444. X.*s 2 "NLOut : set transmit CR/LF mapping"
  1445. X.DS L
  1446. Xusage: nlout [<y-n>]
  1447. X.DE
  1448. X
  1449. XThis command controls whether or not a newline (NL/LF)
  1450. Xcharacter is sent to the remote system upon transmission of
  1451. Xa carriage return (CR) entered by the keyboard.  Most remote
  1452. Xcomputers do not require (indeed "dislike") a NL after CR.
  1453. XWhen communicating with another terminal in a "teletype
  1454. Xconversation", this is generally not the case (see also the
  1455. X.B duplex
  1456. Xcommand).
  1457. X
  1458. XIssuing the command without <y-n> causes the current setting
  1459. Xto be displayed.  The format of <y-n> is flexible: 'y' or '1'
  1460. Xenables appending NL to CR, 'n' or '0' causes the
  1461. Xfeature to be disabled.
  1462. X
  1463. X
  1464. X.*s 2 "OA : octal to ascii char"
  1465. X.DS L
  1466. Xusage: oa [<octal-val>]
  1467. X.DE
  1468. X
  1469. X<octal-val> is a octal value between 0 and 0377; the parity
  1470. X(sign) bit is stripped and the equivalent ASCII character
  1471. Xvalue is displayed.
  1472. X
  1473. XIf no argument is supplied, a table of control characters
  1474. Xis printed containing decimal, octal, hex, ASCII identifiers
  1475. Xand two-character control character identifier.
  1476. X
  1477. X
  1478. X.*s 2 "PARity : set/display line parity"
  1479. X.DS L
  1480. Xusage: parity [ None | Even | Odd ]
  1481. X.DE
  1482. X
  1483. XThis command controls the parity of characters transmitted
  1484. Xby the keyboard.  Issuing the command with no argument
  1485. Xdisplays the current setting.  When the argument is
  1486. Xsupplied, only the first character is required.  Even or odd
  1487. Xparity implies seven data bits; no parity implies eight data
  1488. Xbits.  Parity of incoming characters is not checked.
  1489. X
  1490. XThe setting may be automatically changed as the result of an
  1491. Xinteractive or procedure
  1492. X.B dial
  1493. Xcommand.  See the 
  1494. X.B baud
  1495. Xand 
  1496. X.B dial
  1497. Xcommand descriptions.
  1498. X
  1499. X
  1500. X.*s 2 "PId : display process ids"
  1501. X.DS L
  1502. Xusage: pid
  1503. X.DE
  1504. X
  1505. XThis command displays the process id of the ECU transmitter
  1506. Xprocess, the ECU receiver process and the process ids of
  1507. XECU's parent and group.
  1508. X
  1509. X.*s 2 "PLog : procedure logging"
  1510. X.DS L
  1511. Xusage: plog [ <filename> | off]
  1512. X.DE
  1513. X
  1514. XThis command enables or disables procedure logging.
  1515. X
  1516. X.*s 2 "POpd : pop to previous directory"
  1517. X.DS L
  1518. Xusage: popd [ | <#> | all]
  1519. X.DE
  1520. X
  1521. XThis command returns to a previous directory after a
  1522. X.B pushd
  1523. Xcommand has been previously executed.
  1524. X
  1525. XIf no argument is supplied, the directory at the immediately previous
  1526. Xlevel is restored.  
  1527. X
  1528. XIf a numeric argument is supplied, the directory
  1529. Xat the specified level is restored; the level numbers may be obtained by
  1530. Xissuing a
  1531. X.B pushd
  1532. Xcommand with no arguments.
  1533. X
  1534. XIf the 'all' argument is supplied, it is treated as a numeric argument of 0;
  1535. Xthat is the directory stack is cleared and the directory at level 0 is
  1536. Xrestored.
  1537. X
  1538. XThe directory stack is shared between interactive and procedure
  1539. Xcommands.  Neither beginning nor ending a procedure affects the
  1540. Xdirectory stack level.
  1541. X
  1542. X.DS L
  1543. XExamples:
  1544. X   popd
  1545. X   popd 3
  1546. X   popd all
  1547. X.DE
  1548. X
  1549. X.*s 2 "PTrace : control procedure trace"
  1550. X.DS L
  1551. Xusage: ptrace [ on | off | #]
  1552. X     on  - set trace state to 1
  1553. X     off - set trace state to 0
  1554. X     #   - set trace to numeric value #
  1555. X.DE
  1556. X
  1557. XThis command controls whether or not procedure execution is
  1558. Xto be traced. Trace output is written to
  1559. Xthe screen and varies in its nature depending
  1560. Xupon the command being traced.  Specifically,
  1561. Xany change to a string or integer variable
  1562. Xis noted.  If tracing is enabled, the output will also be
  1563. Xwritten to the procedure log file (see the
  1564. X.b plog
  1565. Xinteractive and procedure commands).
  1566. X
  1567. XThe majority of procedure tracing features use the current trace
  1568. Xstate as a binary condition.  That is, either tracing is done
  1569. Xor not.  However, the procedure command
  1570. X.B expresp
  1571. Xemits varying levels of debugging output in a manner similar to
  1572. Xthe uucico -x flag.
  1573. X
  1574. XIssuing the command with no argument shows current status.
  1575. X
  1576. X.*s 2 "PUshd : push to new directory"
  1577. X.DS L
  1578. Xusage: pushd [ | <dir>]
  1579. X.DE
  1580. X
  1581. XThis command either 1) saves the current directory pathname on
  1582. Xa stack and establishes a new current directory or
  1583. X2) displays the current stack and current directory.
  1584. XThe stack size is 10.
  1585. X
  1586. XIf no argument is supplied, the directory stack is displayed.
  1587. X
  1588. XThe directory stack is shared between interactive and procedure
  1589. Xcommands.  Neither beginning nor ending a procedure affects the
  1590. Xdirectory stack level.
  1591. X
  1592. X.DS L
  1593. XExamples:
  1594. X   pushd
  1595. X   pushd /tmp
  1596. X.DE
  1597. X
  1598. X.*s 2 "PWd : print working directory"
  1599. X.DS L
  1600. Xusage: pwd
  1601. X.DE
  1602. X
  1603. XThis command prints the current working directory of the ECU
  1604. Xprocess.
  1605. X
  1606. X
  1607. X.*s 2 "REDial : redial last number"
  1608. X.DS L
  1609. Xusage: redial [<retry-count> [<pause-interval>]]
  1610. X.DE
  1611. X
  1612. XThis command redials a number previously dialed with the 'dial' command.
  1613. XModem status is tested and multiple retries may be made.  <retry-count>
  1614. Xspecifies how many retries are to be made.  <pause-interval> specifies
  1615. Xhow many seconds the program pauses after a failure to connect.  You
  1616. Xmust specify <retry-count> in order to specify <pause-interval>.  The
  1617. Xdefault value for <retry-count> is 10, for <pause-interval> is 60.
  1618. X
  1619. XYou should know that in some jurisdictions, it is ILLEGAL to dial the
  1620. Xsame telephone number more than a specified number of times during some
  1621. Xinterval of time.  In any case, a <pause-interval> less than 15 seconds
  1622. Xis silently changed to 15 seconds.
  1623. X
  1624. X.*s 2 "REV : ECU revision/make date"
  1625. X.DS L
  1626. Xusage: rev
  1627. X.DE
  1628. X
  1629. XThis command displays ECU's revision, the transmitter process id'
  1630. Xand the date and time ECU was made.
  1631. X
  1632. X.*s 2 "RK : receive via C-Kermit"
  1633. X.DS L
  1634. Xusage: rk
  1635. X.DE
  1636. X
  1637. XThis command invokes C-Kermit to
  1638. Xreceive
  1639. Xfiles. ECU searches the PATH list for 'kermit' or 'ckermit',
  1640. Xexpecting to find Columbia University C-Kermit version 5A(173)
  1641. SHAR_EOF
  1642. true || echo 'restore of doc/_icmd.txt failed'
  1643. fi
  1644. echo 'End of ecu320 part 36'
  1645. echo 'File doc/_icmd.txt is continued in part 37'
  1646. echo 37 > _shar_seq_.tmp
  1647. exit 0
  1648.  
  1649. exit 0 # Just in case...
  1650.