home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / sources / misc / 3963 < prev    next >
Encoding:
Text File  |  1992-09-15  |  57.1 KB  |  1,656 lines

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