home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume32 / ecu / part01 < prev    next >
Encoding:
Text File  |  1992-09-10  |  59.9 KB  |  1,513 lines

  1. Newsgroups: comp.sources.misc
  2. From: wht@n4hgf.Mt-Park.GA.US (Warren Tucker)
  3. Subject:  v32i036:  ecu - ECU Asynchronous Communications v3.20, Part01/40
  4. Message-ID: <csm-v32i036=ecu.141245@sparky.IMD.Sterling.COM>
  5. X-Md4-Signature: 6897f8753ad94078afa78a906070a3d7
  6. Date: Fri, 11 Sep 1992 19:14:22 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 36
  11. Archive-name: ecu/part01
  12. Environment: SCO,XENIX,ISC,SUNOS,SYSVR4,HDB,Curses
  13. Supersedes: ecu: Volume 21, Issue 53-89
  14.  
  15. This is ecu revision 3.20.  ECU is a asynchronous communications
  16. program for these environments:
  17.  
  18.   SCO XENIX System V/286          ECU may be too large for '286
  19.   SCO XENIX System V/386          ECU is stable on SCO XENIX/386
  20.   SCO UNIX System V/386           ECU is very robust on SCO UNIX
  21.   SCO ODT 1.x,2.0                 ODT is the same as UNIX for ECU
  22.  
  23.   ISC 386/ix 2.2 or later         Ports to these systems are
  24.   ISC System V Release 4          not supported as regularly
  25.   ESIX System V Release 4         and I cannot vouch for
  26.   SunOS 4.1.[12]                  them at time of release 
  27.                                   PLEASE GIVE ME FEEDBACK!
  28.  
  29. ECU (Extended Call Utility) is a research and engineering
  30. communications program originally written for users of SCO UNIX
  31. V.3.2/386 and XENIX V on 80286 and 80386 systems.  Support for
  32. other systems has been added and further porting is possible with
  33. "minor" effort to other systems based on or similar to UNIX
  34. System V.
  35.  
  36. ECU provides the classic terminal communications facility of
  37. passing keyboard data to a serial line and incoming data to the
  38. computer video display.  In addition, a dialing directory, a
  39. function key mapping feature, session logging, and other
  40. basic features are available.  
  41.  
  42. ECU presents to the host a flexible "ANSI" terminal type,
  43. accepting any valid video control sequences from MS-DOS or SCO
  44. documentation as of late 1990.  It also fares well, though
  45. imperfectly, with Sun and VT-100 in-band video control sequences.
  46. Standards are great: everybody should have one, especially if
  47. they call it "ANSI". For more information, refer to the manual
  48. section titled "ANSI Filter."
  49.  
  50. Support for arbitrary video consoles is included.  I use ECU
  51. (almost exclusively now) with an X11R4 xterm.  This release has
  52. been tested extensively with xterms (particularly Metro Link
  53. X11R5, SCO ODT 2.0 X11R4, SunOS 4.1 MIT standard distribution,
  54. OpenWindows 2.0, and Roell's X386 1.1b).  Your terminal must be
  55. fairly "smart", with insert/delete-line features,
  56. erase-to-end-of-line, etc..  See "Supported Terminals" in the
  57. manual.  Also check the note below named "KBDTEST3".
  58.  
  59. ECU supports numerous file transfer protocols: as of this
  60. writing, XMODEM, XMODEM/CRC, XMODEM-1K, YMODEM/CRC Batch,
  61. ZMODEM/CRC-16, ZMODEM/CRC-32, C-Kermit 5 and SEAlink are
  62. supported.  For more information, refer to the manual sections
  63. describing the individual interactive and procedure file transfer
  64. commands.
  65.  
  66. A very flexible procedure (script) language is also incorporated
  67. to automate many communications tasks.  In addition to augmenting
  68. interactive tasks, by using shell scripts and ECU procedures, ECU
  69. can perform batch-style communications sessions in an entirely
  70. "unattended" fashion.
  71.  
  72. For applications too unwieldy for the procedure language,
  73. "ecufriend" programs are supported.  Friends are spawned by ECU
  74. having access to the shared memory segment containing an
  75. ECU-managed "screen image" and other data and having use of the
  76. attached communications line.
  77.  
  78. ---- Cut Here and feed the following to sh ----
  79. #!/bin/sh
  80. # This is ecu320, a shell archive (shar 3.461)
  81. # made 09/10/1992 19:48 UTC by wht@n4hgf.Mt-Park.GA.US
  82. # Source directory /u1/src/ecu
  83. #
  84. # existing files will NOT be overwritten unless -c is specified
  85. #
  86. # This is part 1 of a multipart archive                                    
  87. # do not concatenate these parts, unpack them in order with /bin/sh        
  88. #
  89. # This shar contains:
  90. # length  mode       name
  91. # ------ ---------- ------------------------------------------
  92. #  23554 -rw-r--r-- README
  93. #    702 -rw-r--r-- README.3.00
  94. #    427 -rw-r--r-- README.3.10
  95. #   1221 -rw-r--r-- README.3.20
  96. #   3562 -rw-r--r-- README.DEBUG
  97. #   2028 -rw-r--r-- README.FUNCKEY
  98. #   2165 -rw-r--r-- README.GENDIAL
  99. #   6660 -rw-r--r-- README.KEYBRD
  100. #   1231 -rw-r--r-- README.OPENWIN
  101. #    655 -rw-r--r-- README.PATCHQA
  102. #   2046 -rw-r--r-- README.Q-and-A
  103. #   4167 -rw-r--r-- README.RTSCTS
  104. #   1010 -rw-r--r-- README.SCOTTY
  105. #    320 -rw-r--r-- README.SEAlink
  106. #   3965 -rw-r--r-- README.WY60
  107. #  30872 -rw-r--r-- HISTORY
  108. #  21763 -rw-r--r-- OLD-HISTORY-1
  109. #  33749 -rw-r--r-- OLD-HISTORY-2
  110. #    835 -rw-r--r-- ESOTERIC
  111. #   1752 -rwxr-xr-x Configure
  112. #   9934 -rw-r--r-- Make.src
  113. #    810 -rw-r--r-- ecufriend/Make.src
  114. #   2527 -rw-r--r-- ecuungetty/Make.src
  115. #   2943 -rw-r--r-- gendial/Make.src
  116. #   2437 -rw-r--r-- help/Make.src
  117. #   2416 -rw-r--r-- sea/Make.src
  118. #   3601 -rw-r--r-- z/Make.src
  119. #   4839 -rw-r--r-- afterlint.c
  120. #   1780 -rw-r--r-- bamboozle.c
  121. #    780 -rw-r--r-- cmdtbl.c
  122. #  25615 -rw-r--r-- config.c
  123. #   2535 -rw-r--r-- dialprog.h
  124. #    882 -rw-r--r-- dlent.h
  125. #   1474 -rw-r--r-- dutmp.c
  126. #   1114 -rw-r--r-- dvent.h
  127. #  12474 -rw-r--r-- ecu.c
  128. #  11447 -rw-r--r-- ecu.h
  129. #  24153 -rw-r--r-- ecuDCE.c
  130. #   4765 -rw-r--r-- ecuLCK.c
  131. #    981 -rw-r--r-- ecu_pwd.h
  132. #    951 -rw-r--r-- ecu_stat.h
  133. #    955 -rw-r--r-- ecu_types.h
  134. #  12742 -rw-r--r-- ecuchdir.c
  135. #  12720 -rw-r--r-- ecucmd.h
  136. #   1402 -rw-r--r-- ecucurses.h
  137. #   4079 -rw-r--r-- ecudump.c
  138. #   4535 -rw-r--r-- ecuerror.h
  139. #   7262 -rw-r--r-- ecufinsert.c
  140. #  15916 -rw-r--r-- ecufkey.c
  141. #   1988 -rw-r--r-- ecufkey.h
  142. #  13563 -rw-r--r-- ecufork.c
  143. #    717 -rw-r--r-- ecufork.h
  144. #  18202 -rw-r--r-- ecugrabbag.c
  145. #  10763 -rw-r--r-- ecuicmaux.c
  146. #  18096 -rw-r--r-- ecuicmd.c
  147. #   9270 -rw-r--r-- ecuicmhelp.c
  148. #   3695 -rw-r--r-- ecuicmhist.c
  149. #   1213 -rw-r--r-- ecukey.h
  150. #  39681 -rw-r--r-- eculine.c
  151. #   4275 -rw-r--r-- eculock.c
  152. #   3060 -rw-r--r-- ecunumrev.c
  153. #  16547 -rw-r--r-- ecupde.c
  154. #   1832 -rw-r--r-- ecupde.h
  155. #  46641 -rw-r--r-- ecuphdir.c
  156. #   5683 -rw-r--r-- ecuphrase.c
  157. #  37081 -rw-r--r-- ecurcvr.c
  158. #   4531 -rw-r--r-- ecuscrdump.c
  159. #  16570 -rw-r--r-- ecusetup.c
  160. #   9584 -rw-r--r-- ecushm.c
  161. #   5188 -rw-r--r-- ecushm.h
  162. #  16058 -rw-r--r-- ecusighdl.c
  163. #  14572 -rw-r--r-- ecutcap.c
  164. #   4411 -rw-r--r-- ecutime.c
  165. #  36216 -rw-r--r-- ecutty.c
  166. #   1477 -rw-r--r-- ecutty.h
  167. #   5082 -rw-r--r-- ecuuclc.c
  168. #   1603 -rw-r--r-- ecuungetty.h
  169. #   3383 -rw-r--r-- ecuusage.c
  170. #  26150 -rw-r--r-- ecuutil.c
  171. #    891 -rw-r--r-- ecuvmin.h
  172. #  10846 -rw-r--r-- ecuwinutil.c
  173. #  28250 -rw-r--r-- ecuxfer.c
  174. #   2415 -rw-r--r-- ecuxkey.h
  175. #   1310 -rw-r--r-- esd.h
  176. #  19527 -rw-r--r-- esdutil.c
  177. #  12024 -rw-r--r-- expresp.c
  178. #   9450 -rw-r--r-- fasiintf.c
  179. #  25046 -rw-r--r-- feval.c
  180. #   2461 -rw-r--r-- feval.h
  181. #  13650 -rw-r--r-- funckeymap.c
  182. #   7030 -rw-r--r-- gint.c
  183. #   5625 -rw-r--r-- gstr.c
  184. #  40881 -rw-r--r-- hdbintf.c
  185. #   2711 -rw-r--r-- kbdtest.c
  186. #  15128 -rw-r--r-- kbdtest3.c
  187. #   1647 -rw-r--r-- logevent.c
  188. #   1197 -rw-r--r-- lstat.c
  189. #   2371 -rw-r--r-- makedirs.c
  190. #   4860 -rw-r--r-- mkdirs.c
  191. #   6533 -rw-r--r-- nap.c
  192. #     22 -rw-r--r-- patchlevel.h
  193. #   1547 -rw-r--r-- pc_scr.h
  194. #  31521 -rw-r--r-- pcmd.c
  195. #  22996 -rw-r--r-- pcmdfile.c
  196. #  13936 -rw-r--r-- pcmdif.c
  197. #   9422 -rw-r--r-- pcmdtty.c
  198. #   2818 -rw-r--r-- pcmdwhile.c
  199. #  16669 -rw-r--r-- pcmdxfer.c
  200. #   4481 -rw-r--r-- poutput.c
  201. #   5047 -rw-r--r-- pprintf.c
  202. #  19700 -rw-r--r-- proc.c
  203. #   1418 -rw-r--r-- proc.h
  204. #   4619 -rw-r--r-- proc_error.c
  205. #   3651 -rw-r--r-- procframe.c
  206. #  12122 -rw-r--r-- regexp.c
  207. #    801 -rw-r--r-- relop.h
  208. #   6186 -rw-r--r-- smap.c
  209. #   1612 -rw-r--r-- smap.h
  210. #   1516 -rw-r--r-- termecu.h
  211. #   2050 -rw-r--r-- ttynaming.c
  212. #   1587 -rw-r--r-- ttynaming.h
  213. #   7666 -rw-r--r-- utmpstat.c
  214. #    960 -rw-r--r-- utmpstatus.h
  215. #  10234 -rw-r--r-- var.c
  216. #    784 -rw-r--r-- var.h
  217. #   3724 -rw-r--r-- bperr/bperr.c
  218. #  10101 -rw-r--r-- help/helpgen.c
  219. #   1432 -rw-r--r-- help/util.c
  220. #  30182 -rw-r--r-- help/ecuhelp.src
  221. #  10470 -rw-r--r-- ecuungetty/ecuungetty.c
  222. #   1751 -rw-r--r-- z/baudtest.c
  223. #  46240 -rw-r--r-- z/ecurz.c
  224. #  45023 -rw-r--r-- z/ecusz.c
  225. #  14276 -rw-r--r-- z/zcommon.c
  226. #  42813 -rw-r--r-- z/zcurses.c
  227. #    329 -rw-r--r-- z/zdebug.c
  228. #  17354 -rw-r--r-- z/zmodem.c
  229. #   7102 -rw-r--r-- z/zmodem.h
  230. #  37329 -rw-r--r-- sea/ecusea.c
  231. #  22195 -rw-r--r-- sea/scurses.c
  232. #  11247 -rw-r--r-- sea/sealink.doc
  233. #   5213 -rw-r--r-- sea/sealink.imp
  234. #    480 -rw-r--r-- gendial/README
  235. #    720 -rwxr-xr-x gendial/install_dialer
  236. #  12745 -rw-r--r-- gendial/dceHA24.c
  237. #  13931 -rw-r--r-- gendial/dceMC9624.c
  238. #  14942 -rw-r--r-- gendial/dceMPAD.c
  239. #  19001 -rw-r--r-- gendial/dceT2500.c
  240. #  17548 -rw-r--r-- gendial/dceT3000.c
  241. #  17953 -rw-r--r-- gendial/dceTBPlus.c
  242. #  13878 -rw-r--r-- gendial/dceUSR24.c
  243. #   6062 -rw-r--r-- gendial/dialer.h
  244. #  31052 -rw-r--r-- gendial/gendial.c
  245. #   1263 -rw-r--r-- gendial/tbit.sync.h
  246. #  10357 -rw-r--r-- gendial/template.c
  247. #   1378 -rw-r--r-- fasi/Makefile
  248. #     32 -rw-r--r-- fasi/Master
  249. #    279 -rw-r--r-- fasi/Node
  250. #     38 -rw-r--r-- fasi/PATCHLEVEL
  251. #  27697 -rw-r--r-- fasi/README
  252. #   6394 -rw-r--r-- fasi/README.FASI
  253. #  23494 -rw-r--r-- fasi/RELEASENOTES
  254. #   8785 -rw-r--r-- fasi/Space.c
  255. #     52 -rw-r--r-- fasi/System
  256. #    717 -rw-r--r-- fasi/digi-pc8.h
  257. #  81250 -rw-r--r-- fasi/fas.c
  258. #  21979 -rw-r--r-- fasi/fas.h
  259. #    370 -rwxr--r-- fasi/idfasi
  260. #   2829 -rw-r--r-- ecufriend/ecufriend.c
  261. #   2723 -rw-r--r-- mapkey/README
  262. #   9988 -rw-r--r-- mapkey/keys.usa.ecu
  263. #   2104 -rw-r--r-- xsel386/fixttiocom.c
  264. #   2981 -rw-r--r-- xsel386/select-update
  265. #   1237 -rw-r--r-- xsel386/select.asm
  266. #  21402 -rw-r--r-- xsel386/select.txt
  267. #    391 -rw-r--r-- xsel386/ttiocom.c
  268. #   3781 -rw-r--r-- memmove/README
  269. #   1143 -rw-r--r-- memmove/memmove.s
  270. #   1684 -rw-r--r-- memmove/memmove386.asm
  271. #   1842 -rw-r--r-- memmove/memmove286.asm
  272. #    304 -rw-r--r-- timetest/Makefile
  273. #   2447 -rw-r--r-- timetest/naptest.c
  274. #   2417 -rw-r--r-- timetest/naptest2.c
  275. #   1574 -rw-r--r-- timetest/naptest3.c
  276. #    968 -rw-r--r-- timetest/seltest.c
  277. #    804 -rw-r--r-- doc/README
  278. #    907 -rw-r--r-- doc/Makefile
  279. #   6050 -rw-r--r-- doc/_basic.txt
  280. #     39 -rw-r--r-- doc/_end.txt
  281. #   2023 -rw-r--r-- doc/_exits.txt
  282. #  38219 -rw-r--r-- doc/_features.txt
  283. #   7541 -rw-r--r-- doc/_hdb.txt
  284. #  38646 -rw-r--r-- doc/_icmd.txt
  285. #   2580 -rw-r--r-- doc/_intro.txt
  286. #  60249 -rw-r--r-- doc/_p_cmd.txt
  287. #  12064 -rw-r--r-- doc/_p_ifunc.txt
  288. #   5784 -rw-r--r-- doc/_p_param.txt
  289. #  10113 -rw-r--r-- doc/_p_sfunc.txt
  290. #  13572 -rw-r--r-- doc/_startup.txt
  291. #   1560 -rw-r--r-- doc/_top.txt
  292. #    141 -rw-r--r-- doc/ecu.txt
  293. #   9296 -rw-r--r-- doc/proc.txt
  294. #    811 -rw-r--r-- models/_connect.ep
  295. #    585 -rw-r--r-- models/_hangup.ep
  296. #    433 -rw-r--r-- models/_rc.ep
  297. #    415 -rw-r--r-- models/_terminate.ep
  298. #    770 -rw-r--r-- models/bsd_uname.ep
  299. #    140 -rw-r--r-- models/colors
  300. #     14 -rw-r--r-- models/dir
  301. #    912 -rw-r--r-- models/f.ep
  302. #   1667 -rw-r--r-- models/file_test.ep
  303. #    317 -rw-r--r-- models/frame_test.ep
  304. #  17163 -rw-r--r-- models/funckeymap
  305. #    198 -rw-r--r-- models/gosub.ep
  306. #    544 -rw-r--r-- models/goto_test.ep
  307. #    420 -rw-r--r-- models/if_test.ep
  308. #    322 -rw-r--r-- models/keys
  309. #    515 -rw-r--r-- models/lookfortest.ep
  310. #    677 -rw-r--r-- models/mhack_test.ep
  311. #     40 -rw-r--r-- models/mkdir.ep
  312. #    974 -rw-r--r-- models/oneline.ep
  313. #   2232 -rw-r--r-- models/opuslogin.ep
  314. #   1207 -rw-r--r-- models/p.ep
  315. #    162 -rw-r--r-- models/phone
  316. #    117 -rw-r--r-- models/phrases
  317. #    992 -rw-r--r-- models/ps.ep
  318. #   2060 -rw-r--r-- models/put_ecu.ep
  319. #    449 -rw-r--r-- models/ringcount.ep
  320. #    600 -rw-r--r-- models/root.ep
  321. #   5129 -rw-r--r-- models/rz_update.ep
  322. #    740 -rw-r--r-- models/scm.ep
  323. #    654 -rw-r--r-- models/senddate.ep
  324. #   2490 -rw-r--r-- models/sf_test.ep
  325. #   1562 -rw-r--r-- models/su.ep
  326. #    766 -rw-r--r-- models/sysname.ep
  327. #   4853 -rw-r--r-- models/sz_update.ep
  328. #    127 -rw-r--r-- models/szall.ep
  329. #    592 -rw-r--r-- models/tty1a.mi
  330. #    543 -rw-r--r-- models/tty2d.mi
  331. #   4161 -rw-r--r-- models/unixlogin.ep
  332. #   1125 -rwxr-xr-x zgcc
  333. #   3523 -rw-r--r-- mkoldproto.l
  334. #
  335. if test -r _shar_seq_.tmp; then
  336.     echo 'Must unpack archives in sequence!'
  337.     echo Please unpack part `cat _shar_seq_.tmp` next
  338.     exit 1
  339. fi
  340. # ============= README ==============
  341. if test -f 'README' -a X"$1" != X"-c"; then
  342.     echo 'x - skipping README (File already exists)'
  343.     rm -f _shar_wnt_.tmp
  344. else
  345. > _shar_wnt_.tmp
  346. echo 'x - extracting README (Text)'
  347. sed 's/^X//' << 'SHAR_EOF' > 'README' &&
  348. X.--------------------------------------------------------.
  349. X| ECU README - last revised Sun Sep 06 14:29:11 EDT 1992 |
  350. X`--------------------------------------------------------'
  351. X
  352. XThis is ecu revision 3.20.  ECU is a asynchronous communications
  353. Xprogram for these environments:
  354. X
  355. X  SCO XENIX System V/286          ECU may be too large for '286
  356. X  SCO XENIX System V/386          ECU is stable on SCO XENIX/386
  357. X  SCO UNIX System V/386           ECU is very robust on SCO UNIX
  358. X  SCO ODT 1.x,2.0                 ODT is the same as UNIX for ECU
  359. X
  360. X  ISC 386/ix 2.2 or later         Ports to these systems are
  361. X  ISC System V Release 4          not supported as regularly
  362. X  ESIX System V Release 4         and I cannot vouch for
  363. X  SunOS 4.1.[12]                  them at time of release 
  364. X                                  PLEASE GIVE ME FEEDBACK!
  365. X
  366. XECU (Extended Call Utility) is a research and engineering
  367. Xcommunications program originally written for users of SCO UNIX
  368. XV.3.2/386 and XENIX V on 80286 and 80386 systems.  Support for
  369. Xother systems has been added and further porting is possible with
  370. X"minor" effort to other systems based on or similar to UNIX
  371. XSystem V.
  372. X
  373. XECU provides the classic terminal communications facility of
  374. Xpassing keyboard data to a serial line and incoming data to the
  375. Xcomputer video display.  In addition, a dialing directory, a
  376. Xfunction key mapping feature, session logging, and other
  377. Xbasic features are available.  
  378. X
  379. XECU presents to the host a flexible "ANSI" terminal type,
  380. Xaccepting any valid video control sequences from MS-DOS or SCO
  381. Xdocumentation as of late 1990.  It also fares well, though
  382. Ximperfectly, with Sun and VT-100 in-band video control sequences.
  383. XStandards are great: everybody should have one, especially if
  384. Xthey call it "ANSI". For more information, refer to the manual
  385. Xsection titled "ANSI Filter."
  386. X
  387. XSupport for arbitrary video consoles is included.  I use ECU
  388. X(almost exclusively now) with an X11R4 xterm.  This release has
  389. Xbeen tested extensively with xterms (particularly Metro Link
  390. XX11R5, SCO ODT 2.0 X11R4, SunOS 4.1 MIT standard distribution,
  391. XOpenWindows 2.0, and Roell's X386 1.1b).  Your terminal must be
  392. Xfairly "smart", with insert/delete-line features,
  393. Xerase-to-end-of-line, etc..  See "Supported Terminals" in the
  394. Xmanual.  Also check the note below named "KBDTEST3".
  395. X
  396. XECU supports numerous file transfer protocols: as of this
  397. Xwriting, XMODEM, XMODEM/CRC, XMODEM-1K, YMODEM/CRC Batch,
  398. XZMODEM/CRC-16, ZMODEM/CRC-32, C-Kermit 5 and SEAlink are
  399. Xsupported.  For more information, refer to the manual sections
  400. Xdescribing the individual interactive and procedure file transfer
  401. Xcommands.
  402. X
  403. XA very flexible procedure (script) language is also incorporated
  404. Xto automate many communications tasks.  In addition to augmenting
  405. Xinteractive tasks, by using shell scripts and ECU procedures, ECU
  406. Xcan perform batch-style communications sessions in an entirely
  407. X"unattended" fashion.
  408. X
  409. XFor applications too unwieldy for the procedure language,
  410. X"ecufriend" programs are supported.  Friends are spawned by ECU
  411. Xhaving access to the shared memory segment containing an
  412. XECU-managed "screen image" and other data and having use of the
  413. Xattached communications line.
  414. X
  415. XGcc is supported for all programs in the release.  See the
  416. Xconfiguration section and the note on gcc for important caveats.
  417. X
  418. XPorts to ISC 2.2, ISC SVR4 and ESIX SVR4 and SunOS 4.1.1 are
  419. Xfairly stable and useful, though not all features are working.
  420. XAlso, the documentation suffers in covering these ports.
  421. X
  422. XThe doc subdirectory has all of the .txt files used to produce
  423. Xecu.man, the manual of sorts for the program.  A copy of it is
  424. Xreluctantly included (net.bandwidth) for those who do not have
  425. Xnroff.  I finally blew up my nroff with something related to
  426. Xdocument length, so there are two documents, ecu.man and
  427. Xproc.man.
  428. X
  429. X*Please* take the time to read the (tedious) manuals and READMEs
  430. Xeven if you are a pre-3.20 user.  This will do me honor and
  431. Xyourself justice because there are a lot of goodies in here,
  432. Xmany of which are not traditional features you'll be looking for.
  433. X
  434. X--------------------------------------------------------------------
  435. X
  436. XACKNOWLEDGMENTS
  437. X
  438. XMANY THANKS to those who helped me improve the program,
  439. Xespecially upaya!tbetz, ache@hq.demos.su, spel@hippo.ru.ac.za,
  440. Xbel@trout.nosc.mil, dhmadsen@icaen.uiowa.edu, dug@kd4nc,
  441. Xjts@ki4xo, jsm@n4vu, lamy@glsys.in-berlin.de, cma@tridom,
  442. Xtabbs!aris, redi!donovan, neal@clkwrka, extel@quagga.ru.ac.za,
  443. Xmjb@mjbtn, tmcsys.uucp!lothar, mju@mudos.ann-arbor.mi.us
  444. Xelastic!fche, genrad!rob and spooley@compulink.co.uk.  There were
  445. Xlots of others and I know I've forgotten someone who helped a
  446. Xgreat deal; I apologize.
  447. X
  448. XVery special thanks go to Dion L. Johnson at SCO for his untiring
  449. Xand generous support.  Also, many kudos the guys at Metro Link for
  450. Xtheir excellent X11R4/X11R5 package.  Yes, xecu has been born and is in
  451. Xthe works at last.  Right now, it is a telnet socket user only,
  452. Xbut serial I/O is on the way.  ECU may learn about telnet too.
  453. X
  454. XLothar Hirschbiegel <aega84!lh> did the ISC SVR4 port -- 
  455. XTHANKS, Lothar!
  456. X
  457. XJoseph H Buehler <jhpb@sarto.budd-lake.nj.us> extended the SVR4
  458. Xport to ESIX -- THANKS, Joesph!
  459. X
  460. XRobert Lewis <robertle@sco.com> and John Dashner <wa4cyb!jmd>
  461. Xproofread the manual.  This is tedious work and special thanks
  462. Xgo to them.
  463. X
  464. XThe 3.20 alpha team of 
  465. X
  466. X    Clayton Haapala       clayh@network.com            
  467. X    Cliff Yamamoto        cyamamot@kilroy.Jpl.Nasa.Gov 
  468. X    Jeff Liebermann       jeffl@comix.santa-cruz.ca.us 
  469. X    John Dashner          wa4cyb!jmd                   
  470. X    Joseph H Buehler      sarto!jhpb                   
  471. X    Lothar Hirschbiegel   aega84!lh                    
  472. X    MarK J. Bailey        root@mjbtn.jobsoft.com       
  473. X    Mark Ashton           n4hgf!ifsbd!cma              
  474. X    Robert Laughlin       bel@nosc.mil                 
  475. X    Robert Lewis          robertle@sco.com             
  476. X    Robert Lipe           robertl@arnet.com            
  477. X    Tim Sailer            tps@jptcs.com                
  478. X
  479. Xworked diligently daily over many weeks.  If there are fewer bugs
  480. Xin this initial release than in previous releases, you have them
  481. Xto thank.  It would have been many more months before 3.20 saw
  482. Xthe light of day (if ever) without their support.
  483. X
  484. X--------------------------------------------------------------------
  485. X
  486. XHOW NOT TO START DOWN THE WRONG PATH HERE
  487. X
  488. XC Kermit 5 is a much, much better product than ECU.  It runs
  489. Xin zillions of environments, is much more robust and has many
  490. Xbetter features.  I wrote ECU when there was nothing like it
  491. Xavailable.  Since then, C Kermit has grown sliding windows
  492. Xand an excellent script language.  C Kermit won't do X/Y/ZMODEM
  493. X(although you can get there from here).  It doesn't have a gnarly
  494. Xshared memory interface for "friend" programs (I do not know
  495. Xof any one but me who has used it).  C-Kermit has
  496. Xhundreds of implimentors/testers, thousands of users and two
  497. Xmost righteous Captains (Frank daCruz and Christine Gianone)
  498. Xbehind it.  ECU has less than 10 developers and about 15 users :-).
  499. X
  500. XI will happily maintain and improve ECU for those who want it,
  501. Xbut if you are not a C hacker and unabashed techie (or even if you
  502. X*are*), C Kermit 5 is probably the asynchronous package for you!
  503. X
  504. X--------------------------------------------------------------------
  505. X
  506. XMAKING AND INSTALLING
  507. X
  508. X1.   Unshar all of the shars
  509. X
  510. X     I do not put anything in shell archives that is intentionally
  511. X     dangerous, but it is very, very unwise to unshar as root.
  512. X     Unpack shell archives as an unprivileged user.
  513. X
  514. X     Make a directory and cd into it.  Use an unshar program
  515. X     to extract all of the forty-odd parts of ECU and the three
  516. X     or so parts of the manual.  If you do not have unshar, it
  517. X     may be quicker to find one than to extract ecu without it.
  518. X     However, if you must, edit each shar and remove all lines
  519. X     prior to #!/bin/sh and then feed each file to /bin/sh, like
  520. X
  521. X        /bin/sh < part
  522. X
  523. X2.   Type ./Configure
  524. X
  525. X     This procedure builds Makefiles for ECU specific to your
  526. X     system.
  527. X
  528. X     You must have your native compiler available for this.
  529. X     If it unavailable and you have gcc, you can TRY:
  530. X       gcc -fwritable-strings -fpcc-struct-return -o config config.c
  531. X       ./config
  532. X     If you are running *SCO UNIX*, add -DM_UNIX to the above gcc line.
  533. X     This alternate procedure is not guaranteed to work with future
  534. X     patchlevels and releases (There will always be a way to do it,
  535. X     but I very likely will be counting on SCO MSC M_... predefines more
  536. X     and more).
  537. X
  538. X3.   Configure will compile and run config. 
  539. X
  540. X     Answer the questions.  If you are using a supported system,
  541. X     answering the few simple questions is all that is necessary
  542. X     to produce a usable configuration.  (If you are trying to
  543. X     port it, make your best guess, hack the Makefiles and sources
  544. X     and send them to me with your patches.)
  545. X
  546. X     You will be asked the system type.  Respond accroding to
  547. X     the following table:
  548. X
  549. X        System                         |   Type
  550. X     ----------------------------------+------------
  551. X       SCO UNIX (any version)          |     s
  552. X       SCO ODT (any version)           |
  553. X       SCO XENIX (2.0.6 or later       |
  554. X     ----------------------------------+------------
  555. X       ISC 386/ix (2.2 or later)       |     i
  556. X     ----------------------------------+------------
  557. X       SunOS (4.1.1 or later)          |     S
  558. X     ----------------------------------+------------
  559. X       ISC SVR4                        |     I
  560. X     ----------------------------------+------------
  561. X       ESIX SVR4                       |     E
  562. X
  563. X
  564. X     If you answer SCO, you are asked which variety: XENIX/286,
  565. X     XENIX/386 or UNIX/386 prior to 3.2v4, or UNIX/386 3.2v4.
  566. X
  567. X     Provided you did not opt for XENIX/286, you will be asked if
  568. X     you want to use the native cc or gcc.
  569. X
  570. X     If you ask for gcc, you'll be asked if you have gcc 1.40 or
  571. X     not.  An obscure minor bug in 1.39 was fixed in 1.40 and
  572. X     it amounts to little effect as of this writing.  Answering
  573. X     no is safe, but future patches make make better use of the
  574. X     configuration information.
  575. X
  576. X     You will be asked for a default tty line, baud rate and parity.
  577. X     The default for the default tty is  system dependent.  The
  578. X     defaults for baud rate and parity is 9600 and none.  You may
  579. X     override these with your personal preferences.
  580. X
  581. X     You will be asked for the directory to install ECU and friends.
  582. X     library.  The default is /usr/local/bin.  If the directory
  583. X     does not exist, the install procedure will attempt to make it.
  584. X
  585. X     You will be asked for the directory to use for a private ecu
  586. X     library.  The default is /usr/local/lib/ecu.  If the directory
  587. X     does not exist, the install procedure will attempt to make it.
  588. X
  589. X     The config program will thank you (;->) and then build Makefiles
  590. X     from the Make.src files in each appropriate subdirectory.
  591. X
  592. X     If you are porting to a new system, you will want
  593. X     to examine and modify the Makefiles before proceeding.
  594. X
  595. X5.   The configure script suggests you "make depend".  This is
  596. X     unnecessary if you are building ECU for the first time.  Also,
  597. X     most patches will require you to rerun Configure.  Each time you
  598. X     reconfigure the software, it is automatically completely remade
  599. X     when you next run make.  Only if you anticipate making changes to
  600. X     the software is "make depend" necessary to ensure the code is
  601. X     properly made.
  602. X
  603. X6.   Type 'make'.  Wait and watch a while.  This is a good time to
  604. X     be reading over doc/ecu.man and various READMEs.
  605. X     There are a great number of new features.  There are
  606. X     few incompatibilites ("I hate 'em").  The file HISTORY
  607. X     has some note on every change made since 3.16.  Unfortunately,
  608. X     HISTORY also contains technical/historical information of no 
  609. X     interest.
  610. X
  611. X7.   Su to root, if not already there, and type 'make install'.
  612. X
  613. X8.   The default models/funckeymap is copied to the ECU library
  614. X     as part of installing the program.  You will probably need
  615. X     to study and modify this file if you plan to use a console
  616. X     (user tty) other than the native console of your system.
  617. X
  618. X9.   You must, as root, chmod +rwx your uucp locks directory.  In
  619. X     addition, if you are on a machine which ecuungetty does not
  620. X     support, you must, as root, chmod +rw all tty lines used by ecu.
  621. X     As of this writing, SCO operating systems are the only platform
  622. X     which ecuungetty supports.  The 'make install' does not do the
  623. X     chmods, because *you* should make the informed choice to do it.
  624. X
  625. X10.  The gendial subdirectory contains some rigorous, yet
  626. X     experimental, SCO dialer programs for use with ecu, cu and uucico.
  627. X     They are currently undocumented and "as-is."  I have used each
  628. X     of them successfully at one time or another, but some have been
  629. X     modified since they were last proven to work.
  630. X
  631. X     I use the T2500, Microcom 9624 and USR 2400 entry all the time.
  632. X
  633. X     Make sure you like the modem options before using one of these
  634. X     dialers.  In particular, I enable remote access to Telebits.
  635. X
  636. X11.  Make neat removes many temporary files that tend
  637. X     to accumulate over time. No make targets are removed.
  638. X     Make clean runs make neat and also removes all .o files.
  639. X     Make clobber runs make clean and also removes executables.
  640. X
  641. X--------------------------------------------------------------------
  642. XNotes:
  643. X
  644. X1.  KERMIT:
  645. X
  646. XC-Kermit 5 (as of version 5A(179)) directly supports ECU's needs.
  647. XC-Kermit 5 is in beta testing as of this writing and appears to
  648. Xbe in excellent shape.  You will need a ~/.kermrc to set up the
  649. Xdesired characteristics.  I use:
  650. X
  651. Xset block 3
  652. Xset win 3
  653. Xset send packet-l 2048
  654. Xset receive packet-l 2048
  655. Xset file name literal
  656. Xset file type bin
  657. Xshow
  658. X
  659. X2.  SELECT(S) and CFLAGS "WORKING_SELECT"
  660. X
  661. XECU uses select() where possible for two purposes:
  662. X1. wait on a tty (comm line) read with timeout -and-
  663. X2. timeout (nap replacement).
  664. X
  665. XIf you have a working select, use -DWORKING_SELECT.
  666. XThe Configure procedure does the job for you for systems I know about.
  667. X
  668. XSCO XENIX V/386 Release 2.3.1 (and evidently 2.3.2) have a
  669. Xbroken-dead, yet fixable, BSD-style select() feature.  Also,
  670. Xselect() is missing from libc.a.  While ecu does not *require*
  671. Xselect(S), it is much more efficient to use it.  The x386sel
  672. Xsubdirectory in this release has information (thanks to
  673. Xcsch@netcs, ivar@acc, and ag@elgar) on how to fix the kernel and
  674. Xto add select() to libc.a.  You'll have to add WORKING_SELECT to
  675. Xconfig.local if you do this.
  676. X
  677. XSelect(S) is fully functional in SCO UNIX 3.2.0.  I am unsure of ODT
  678. X1.0/UNIX 3.2.1.  It is broken in ODT 1.1/UNIX 3.2v2.  It does work
  679. Xin 3.2v4/ODT 2.0.
  680. X
  681. XI found it in /usr/lib/libinet.a on the ISC system I used to
  682. Xcompile for ISC.  It works fine there.  I automatically put
  683. XWORKING_SELECT into the Makefile.
  684. X
  685. XIt works fine on the Sun and SVR4, naturally.
  686. X
  687. X3.  SCO MULTISCREEN BUG
  688. X
  689. XThere has been a bug in the multiscreen driver for some time
  690. Xwherein a MEDIA COPY (screen dump) sequence ("ESC [ 2 i") leaves
  691. Xthe "ESC [ 2" part "active".  When a screen dump (Cursor 5)
  692. Xcommand is given, I do the sacreen dump, then send a "l" to the
  693. Xscreen to work around the bug ("ESC 2 [ l" unlocks the keyboard,
  694. Xessentially a no-op).  If and when it gets fixed, you'll see an
  695. X"l" show up on your screen after a screen dump sequence.  To fix
  696. Xthis, comment out the
  697. X#define MULTISCREEN_DUMP_BUG
  698. Xat the top of ecuscrdump.c.
  699. X
  700. XThe bug remains in place for every SCO product from XENIX 2.0.6
  701. Xthrough UNIX 3.2v4.  It is a minor nuisance and there are a great
  702. Xmany other things they have fixed/improved in these years that
  703. Xwere much more important.
  704. X
  705. XNote that from multiscreens, screen dump produces a dump of the
  706. Xactual screen contents, including ecu-generated output.  When
  707. Xusing a non-multiscreen terminal, screen dump dumps only the
  708. Xshared memory virtual screen as received from the host.
  709. X
  710. XIf, at a multiscreen, you wish a screen dump free of ecu output
  711. X"pollution," use Shift-Tab (BkTab) to redraw the screen, then
  712. Xperform the screen dump.  If you are not on a multiscreen, then the
  713. Xscreen dump comes from the (sometimes inexact) screen memory
  714. Xrepresentation and this step is not necessary.
  715. X
  716. X4. GCC
  717. X
  718. XIn case you didn't know, GCC is a great C compiler.  It generates
  719. Xexcellent code and gives excellent diagnostics and warnings.
  720. XThere are more options available than for a Coup de Ville, so you
  721. Xhave to be careful if you get too fancy.  I should know -- I
  722. Xthink I may have done it.  With Configure and config.c, I have
  723. Xtried to choose the best option set for ECU and it's utilities.
  724. XIf you want to play around, you can place GCC_EXTRA_CFLAGS
  725. Xdefinitions in a config.local file and experiment away.
  726. X
  727. XI tried -pedantic and -ansi under SCO, but there are just too many
  728. Xcomplaints about the development system heaader files:
  729. X
  730. X  1. #ident not allowed in ANSI C (boo hiss on ANSI <again>)
  731. X  2. unterminated character constant in curses.h (an apostrophe
  732. X     in a -comment- threw gcc for a loop)
  733. X  3. bit fields not unsigned in machdep.h
  734. X  4. blah etc. etc.
  735. X
  736. XI VERY reluctantly hacked my development system's header files so
  737. XI could exploit the more critical error checking, but I do not
  738. Xrecommend you do it for purposes of making ECU.  Hopefully since
  739. XI have done it and fixed what gcc reported, you don't have to.
  740. X
  741. XOn the Sun, you cannot use -ansi because of the whole way ioctl
  742. X2nd parameter defines are built (I refuse to demand you run gcc's
  743. Xfixincludes to use my software).  Compilation proceeds with no
  744. Xerror, but few if any of your ioctls will work.  Also, with
  745. X-pedantic, you get one hundred gazillion complaints about text
  746. Xafter #else and #endif.  I hacked my compiler to omit that one
  747. Xpedantic complaint and made a test run with -ansi and -pedantic.
  748. XAs of version 3.15, I get no other warnings outside of some
  749. Xfunkiness in va_args.  With that exercise complete, I bid -ansi
  750. Xand -pedantic adieu for a while with a good feeling about the
  751. Xfuture should the ANSI KGB actually seize real power in Cyberdom.
  752. X
  753. XGcc's idea of prototype validity is just too much for me.  With
  754. XMSC ANSI, prototype arguments are tested at *reference* time not
  755. X*definition* time.  Thus with MSC it is convenient to define a
  756. Xfile with all the prototypes in it and include it everywhere.  To
  757. Xdo that with gcc, you'd have to include *every* header file you
  758. Xever use just to make sure structs and types referred to are
  759. Xdefined.
  760. X
  761. XOther than all this, the code fares pretty well with -ansi
  762. X-pedantic I guess I am just not prepared for all the various
  763. Xflavors of "ANSI" yet ...  and they grow more numerous ...  and
  764. Xthe throathold tightens on venerable code.
  765. X
  766. XWith the warnings I have enabled, you may get warnings about
  767. Xvariables possibly clobbered by longjmp.  Worry not.  You may get
  768. Xwarnings about /* in comments, but they will be from system
  769. Xheader files, not my code :-).
  770. X
  771. XI have used gcc 1.40, 2.1 and 2.2.2 to compile ecu on SunOS and
  772. XSCO UNIX. 
  773. X
  774. X5.  XTERMS
  775. X
  776. XIf you are using an xterm to run ecu,
  777. X
  778. X1. the maximum geometry is 80x43
  779. X2. 4014 emulation is untested
  780. X3. you should use the following resources:
  781. X
  782. XXTerm*titeInhibit:     true # enable screen clear functions normally
  783. XXTerm*curses:          true # curses bug fix
  784. X
  785. XIf titeInhibit fails to work (some versions which use terminfo as
  786. Xtheir basis do fail), then remove the ti and te entries from
  787. X/etc/termcap.
  788. X
  789. XThe file models/funckeymap has keyboard definitions for a number
  790. Xof xterm implementations.  Use kbdtest3 to determine what key
  791. Xsequences are generated by each function key.  If a key produces
  792. Xno output or ambiguous output (Home and End both produce the same
  793. Xsequence), use xev to determine the keysym associated with the
  794. Xkeys in question.  Use xmodmap to map the keys to unique
  795. Xsequences.  For instance, on the SunOS MIT server, IPX key
  796. Xpresses of Home and End produce:
  797. X
  798. XHome:
  799. XKeyPress event, serial 13, synthetic NO, window 0xd00001,
  800. X    root 0x8006d, subw 0x0, time 2225786294, (124,70), root:(385,331),
  801. X    state 0x0, keycode 75 (keysym 0xffd8, F27), same_screen YES,
  802. X                                          ^^^
  803. X                                           |
  804. X                                           `--- name to use with xmodmap
  805. X    XLookupString gives 0 characters:  ""
  806. X
  807. XEnd:
  808. XKeyPress event, serial 15, synthetic NO, window 0xd00001,
  809. X    root 0x8006d, subw 0x0, time 2225787104, (124,70), root:(385,331),
  810. X    state 0x0, keycode 119 (keysym 0xffde, R13), same_screen YES,
  811. X                                           ^^^
  812. X                                            |
  813. X                                            `-- name to use with xmodmap
  814. X    XLookupString gives 0 characters:  ""
  815. X
  816. XThen, choose unique strings to map the keys to.  I generally use
  817. Xthe SCO function key sequences (described in the very first entry
  818. Xin the distribution model/funckeymap).  Construct XTerm translations
  819. Xfor the chosen sequences.  An example for Home (F27) and End (R13)
  820. Xis shown below.
  821. X
  822. XXTerm*VT100*Translations: #override\
  823. X     <Key>F27:        string(0x1b) string("[H") \n \
  824. X     <Key>R13:        string(0x1b) string("[F") \n \
  825. X     Shift<Key>Tab:   string(0x1b) string("[Z")
  826. X
  827. XIncluded in the above is a mapping for "backwards Tab," Shift Tab.
  828. XMost servers map Shift Tab to generate the same as unshifted Tab
  829. X(or not mapped at all).
  830. X
  831. XRun kbdtest3 and see if all keys now produce a unique sequence.
  832. XIf not, repeat the above process until you have each key producing
  833. Xa unique sequence.
  834. X
  835. XSometimes, you just won't be able to get a particular key to work.
  836. XFor instance, one X server I used refused to generate an event for
  837. XShift Keypad 5 (Shift<Key>KP_5).  In these cases, you will have to
  838. Xchoose another key, perhaps a higher numbered function key.  Likewise,
  839. Xif you are using a keyboard unaffected by the True Blue Path,
  840. Xyou may not have a key marked "Home" or "End" (I pity you :-> heh):
  841. Xchoose a replacement you are unlikely to need otherwise.
  842. X
  843. X6. SCO UNIX MEMMOVE() AND GCC
  844. X
  845. XUse of memmove has been eliminated.  See memmove/README for some
  846. Xhistory.
  847. X
  848. X7. FAS/i
  849. X
  850. XFor the brave, an instrumented version of FAS 2.08 is included
  851. Xwith this release for those who need driver instrumentation at
  852. Xthe cost of performance and portability.  It is not supported (Do
  853. XNot Contact Uwe Doering).  I am not at all interested in starting
  854. Xa new tty faction.  Uwe has done a brilliant job of striking a
  855. Xbalance between compatibility and performance.  I only name this
  856. Xthing FAS/i to show the derivation from FAS while marking it as
  857. Xdifferent.
  858. X
  859. X8. EXCEL LOGFILE INTERFACE
  860. X
  861. XThe excel logfile utility posted to comp.sources.misc for ECU 3.0
  862. Xremains compatible with this release of ECU.
  863. X
  864. X9. KBDTEST3
  865. X
  866. XThis program is included to help you inspect your keyboard for
  867. Xmaking funckeymap entries or for preparing you to ask for help
  868. Xfrom me in getting your keyboard functional.
  869. X
  870. X  cc -o kbdtest3 kbdtest.c
  871. X  run it, following the instructions
  872. X
  873. XOnce you have installed a new funckeymap, the ECU interactive
  874. Xcommand "kbdtest" may assist in verifying it works.
  875. X
  876. XI would appreciate your mailing me the output file (kbdtest3.out)
  877. Xfrom each keyboard you try out regardless of what you do otherwise
  878. X(if your keyboard is not a SCO multiscreen or ISC virtual console).
  879. XThis will assist me in making funckeymap entries for futures
  880. Xreleases.
  881. X
  882. X-------------------------------------------------------------------------
  883. XThis program, it sources, objects and utilities are placed in the
  884. Xpublic domain.
  885. X
  886. XWarren H. Tucker     wht@n4hgf.Mt-Park.GA.US    {gatech,emory}!n4hgf!wht
  887. XTuckerWare           (404)587-5766
  888. X150 West Lake Drive
  889. XRoswell, GA 30075
  890. SHAR_EOF
  891. chmod 0644 README ||
  892. echo 'restore of README failed'
  893. Wc_c="`wc -c < 'README'`"
  894. test 23554 -eq "$Wc_c" ||
  895.     echo 'README: original size 23554, current size' "$Wc_c"
  896. rm -f _shar_wnt_.tmp
  897. fi
  898. # ============= README.3.00 ==============
  899. if test -f 'README.3.00' -a X"$1" != X"-c"; then
  900.     echo 'x - skipping README.3.00 (File already exists)'
  901.     rm -f _shar_wnt_.tmp
  902. else
  903. > _shar_wnt_.tmp
  904. echo 'x - extracting README.3.00 (Text)'
  905. sed 's/^X//' << 'SHAR_EOF' > 'README.3.00' &&
  906. XNOTE TO PRE-REVISION-3 USERS:
  907. X
  908. XThere have been *MANY* changes to ecu since revision 2.8.  It is
  909. Xworth re-reading this file and *at least* the table of contents of
  910. Xthe manual to see what's changed.  No effort has been spared to
  911. Xremain compatible with the previous version, but some changes
  912. Xwere necessary.
  913. X
  914. XNotably, your pre rev-3 ~/.ecu/phone file must have a special
  915. Xline added manually to the top of it: #ECUPHONE.  See
  916. Xmodels/phone for an example.
  917. X
  918. XIn general:
  919. X
  920. X    $i0 = 5
  921. X    whilei $i0 != 0
  922. X    {
  923. X        do 'read-new-man'
  924. X        ifs %logname != 'confused'
  925. X            break
  926. X        $i0 = $i0 - 1
  927. X    }
  928. X    ifs %logname == 'confused'
  929. X        system 'mail -s help wht@n4hgf.Mt-Park.GA.US < flame.txt'
  930. X
  931. SHAR_EOF
  932. chmod 0644 README.3.00 ||
  933. echo 'restore of README.3.00 failed'
  934. Wc_c="`wc -c < 'README.3.00'`"
  935. test 702 -eq "$Wc_c" ||
  936.     echo 'README.3.00: original size 702, current size' "$Wc_c"
  937. rm -f _shar_wnt_.tmp
  938. fi
  939. # ============= README.3.10 ==============
  940. if test -f 'README.3.10' -a X"$1" != X"-c"; then
  941.     echo 'x - skipping README.3.10 (File already exists)'
  942.     rm -f _shar_wnt_.tmp
  943. else
  944. > _shar_wnt_.tmp
  945. echo 'x - extracting README.3.10 (Text)'
  946. sed 's/^X//' << 'SHAR_EOF' > 'README.3.10' &&
  947. X
  948. XNOTE TO PRE-REVISION-3.10 USERS:
  949. X
  950. X1. If you have been using the ALT-a through ALT-z single-key procedure
  951. Xexecution, reread mapkeys/README.
  952. X
  953. X2. Termination of file transfers by SIGINT did not cause termination
  954. Xof procedfure execution in pre-3.10 versions.  In this version, it does.
  955. X
  956. X3. Several files that previously had to reside in ~/.ecu now may have
  957. Xsystem wide defaults in the ECU library directory (/usr/local/lib/ecu).
  958. X
  959. SHAR_EOF
  960. chmod 0644 README.3.10 ||
  961. echo 'restore of README.3.10 failed'
  962. Wc_c="`wc -c < 'README.3.10'`"
  963. test 427 -eq "$Wc_c" ||
  964.     echo 'README.3.10: original size 427, current size' "$Wc_c"
  965. rm -f _shar_wnt_.tmp
  966. fi
  967. # ============= README.3.20 ==============
  968. if test -f 'README.3.20' -a X"$1" != X"-c"; then
  969.     echo 'x - skipping README.3.20 (File already exists)'
  970.     rm -f _shar_wnt_.tmp
  971. else
  972. > _shar_wnt_.tmp
  973. echo 'x - extracting README.3.20 (Text)'
  974. sed 's/^X//' << 'SHAR_EOF' > 'README.3.20' &&
  975. X
  976. XNOTE TO PRE-REVISION-3.20 USERS:
  977. X
  978. X1. The functionality of the "nonansikeys" file is now provided by
  979. Xthe "funckeymap" file.  Convesrion may be as simple as renaming
  980. Xthe file.  However, there are differences.
  981. X
  982. X  o You must have a ~/.ecu/funckeymap file (and/or one in the library
  983. X    directory)
  984. X
  985. X2. Termination of file transfers by SIGINT did not cause termination
  986. Xof procedfure execution in pre-3.10 versions.  In this version, it does.
  987. X
  988. X3. Several files that previously had to reside in ~/.ecu now may have
  989. Xsystem wide defaults in the ECU library directory (/usr/local/lib/ecu).
  990. X
  991. X4. Starting with 3.20, all keyboards must have a funckeymap entry
  992. X(see README.KEYBRD) matching the terminal type of the executing
  993. Xscreen.  Previous versions assumed terminal type "ansi"
  994. Xindicated an SCO AT-attached keyboard as part of a multiscreen.
  995. XOther terminal types required a similar entry in a file named
  996. Xnonansikeys.  Converting preexisting nonansikeys files to
  997. Xfunckeymaps files can be accomplished by merely renaming the file.
  998. XIf you are an SCO user, you must also add one entry to the new file
  999. Xif it is not already there (the old models/nonansikeys did in
  1000. Xfact contain the required entry).  See README.KEYBRD for further
  1001. Xdetail.
  1002. SHAR_EOF
  1003. chmod 0644 README.3.20 ||
  1004. echo 'restore of README.3.20 failed'
  1005. Wc_c="`wc -c < 'README.3.20'`"
  1006. test 1221 -eq "$Wc_c" ||
  1007.     echo 'README.3.20: original size 1221, current size' "$Wc_c"
  1008. rm -f _shar_wnt_.tmp
  1009. fi
  1010. # ============= README.DEBUG ==============
  1011. if test -f 'README.DEBUG' -a X"$1" != X"-c"; then
  1012.     echo 'x - skipping README.DEBUG (File already exists)'
  1013.     rm -f _shar_wnt_.tmp
  1014. else
  1015. > _shar_wnt_.tmp
  1016. echo 'x - extracting README.DEBUG (Text)'
  1017. sed 's/^X//' << 'SHAR_EOF' > 'README.DEBUG' &&
  1018. XIf you are interested in very verbose debugging help
  1019. Xwhen porting ecu or diagnosing a problem with line selection,
  1020. Xlocking, utmp or ecuungetty, try compiling with
  1021. X
  1022. X    -DECUUNGETTY_DEBUG -DECUUNGETTY_CHOWN -DSHARE_DEBUG -DCHOOSE_DEBUG
  1023. X
  1024. XThe majority of the logic tested by this debug suite currently
  1025. Xworks only on SCO UNIX 3.2.0->3.2v2 and most SCO XENIX.
  1026. X
  1027. XThe log file for a simple session appears below.
  1028. X
  1029. X05-10-1992-08:48-26728-hdb_choose_Any baud=9600 current line=''
  1030. X05-10-1992-08:48-26728-must pick new line utmpst=0 lerr=0
  1031. X05-10-1992-08:48-26728-getdvbaud looking for 9600 baud
  1032. X05-10-1992-08:48-26728-getdvbaud returning tty2b
  1033. X05-10-1992-08:48-26728-ISLOCK /usr/spool/uucp/LCK..tty2b status=0 errno=2
  1034. X05-10-1992-08:48-26728-ISLOCK /usr/spool/uucp/LCK..tty2b status=0 errno=2
  1035. X05-10-1992-08:48-26728-UTMP uugetty:u2B:tty2B:26692:101
  1036. X05-10-1992-08:48-26728-CHOOSEANY chose tty2b
  1037. X05-10-1992-08:48-26728-copy_pde trial=0 Lline='/dev/tty2b' pdetty='2b'
  1038. X05-10-1992-08:48-26728-choose_tty_for_pde '2b' 9600
  1039. X05-10-1992-08:48-26728-ISLOCK /usr/spool/uucp/LCK..tty2b status=0 errno=2
  1040. X05-10-1992-08:48-26728-ISLOCK /usr/spool/uucp/LCK..tty2b status=0 errno=2
  1041. X05-10-1992-08:48-26728-UTMP uugetty:u2B:tty2B:26692:101
  1042. XECUUNGET-26728-(26739) ISLOCK /usr/spool/uucp/LCK..tty2b status=0 errno=2
  1043. XECUUNGET-26728-(26739) ISLOCK /usr/spool/uucp/LCK..tty2b status=0 errno=2
  1044. XECUUNGET-26728-(26739) UTMP uugetty:u2B:tty2B:26692
  1045. XECUUNGET-26728-(26739) -g utmp status=101
  1046. XECUUNGET-26728-(26739) /dev/tty2b b000021382a exit code 1
  1047. X05-10-1992-08:48-26728-UNGETTY acquired /dev/tty2b
  1048. X05-10-1992-08:48-26728-UTMPCHK /dev/tty2b st=0 ut=101
  1049. X05-10-1992-08:48-26728-CRLOCK /usr/spool/uucp/LCK..tty2b status=0 errno=Error 0
  1050. X05-10-1992-08:48-26728-LOCKTTY /dev/tty2b status 0 errno=Error 0
  1051. X05-10-1992-08:48-26728-ISLOCK /usr/spool/uucp/LCK..tty2b status=-11 errno=0
  1052. X05-10-1992-08:48-26728-UTMP uugetty:u2B:tty2B:26692:104
  1053. X05-10-1992-08:48-26728-UTMPCHK /dev/tty2b st=-11 ut=104
  1054. X05-10-1992-08:48-26728-ISLOCK /usr/spool/uucp/LCK..tty2b status=-11 errno=0
  1055. X05-10-1992-08:48-26728-lclose Liofd=-1 Lline=/dev/tty2b line_lock_status=-11
  1056. X05-10-1992-08:48-26728-choose_tty_for_pde rtn=1 line='/dev/tty2b' errmsg='' itmp=-11
  1057. X05-10-1992-08:48-26728-copy_pde 2  Lline='/dev/tty2b' reopen=1
  1058. X05-10-1992-08:48-26728-ISLOCK /usr/spool/uucp/LCK..tty2b status=-11 errno=0
  1059. X05-10-1992-08:48-26728-lopen Liofd=-1 Lline=/dev/tty2b line_lock_status=-11
  1060. X05-10-1992-08:48-26728-ISLOCK /usr/spool/uucp/LCK..tty2b status=-11 errno=0
  1061. X05-10-1992-08:48-26728-UTMP uugetty:u2B:tty2B:26692:104
  1062. X05-10-1992-08:48-26728-UTMPCHK /dev/tty2b st=-11 ut=104
  1063. X05-10-1992-08:48-26728-LOCKTTY /dev/tty2b status 0 errno=Permission denied
  1064. X05-10-1992-08:48-26728-getdvline looking for tty2b
  1065. X05-10-1992-08:48-26728-getdvline tty2b found
  1066. X
  1067. X05-10-1992-08:48-26728-UUCPDIAL /usr/lib/uucp/dialgT2500 4269068P exit status0x8200
  1068. X05-10-1992-08:48-26728-ISLOCK /usr/spool/uucp/LCK..tty2b status=-11 errno=0
  1069. X05-10-1992-08:48-26728-lclose Liofd=3 Lline=/dev/tty2b line_lock_status=-11
  1070. XECUUNGET-26728-(26742) ISLOCK /usr/spool/uucp/LCK..tty2b status=-11 errno=0
  1071. XECUUNGET-26728-(26742) UTMP uugetty:u2B:tty2B:26692
  1072. XECUUNGET-26728-(26742) -t utmp status=104
  1073. XECUUNGET-26728-(26742) -t /dev/tty2b b000021382a exit code 1
  1074. X05-10-1992-08:48-26728-UNGETTY -t /dev/tty2b status 0100
  1075. XECUUNGET-26728-(26743) ISLOCK /usr/spool/uucp/LCK..tty2b status=-11 errno=0
  1076. XECUUNGET-26728-(26743) UTMP uugetty:u2B:tty2B:26692
  1077. XECUUNGET-26728-(26743) -r utmp status=104
  1078. XECUUNGET-26728-(26743) -r /dev/tty2b b000021382a exit code 0
  1079. X05-10-1992-08:48-26728-UNGETTY returned /dev/tty2b
  1080. SHAR_EOF
  1081. chmod 0644 README.DEBUG ||
  1082. echo 'restore of README.DEBUG failed'
  1083. Wc_c="`wc -c < 'README.DEBUG'`"
  1084. test 3562 -eq "$Wc_c" ||
  1085.     echo 'README.DEBUG: original size 3562, current size' "$Wc_c"
  1086. rm -f _shar_wnt_.tmp
  1087. fi
  1088. # ============= README.FUNCKEY ==============
  1089. if test -f 'README.FUNCKEY' -a X"$1" != X"-c"; then
  1090.     echo 'x - skipping README.FUNCKEY (File already exists)'
  1091.     rm -f _shar_wnt_.tmp
  1092. else
  1093. > _shar_wnt_.tmp
  1094. echo 'x - extracting README.FUNCKEY (Text)'
  1095. sed 's/^X//' << 'SHAR_EOF' > 'README.FUNCKEY' &&
  1096. XMost function keys consist of multi-character sequences starting
  1097. Xwith ESCape.  How long do you wait after seeing an ESC before you
  1098. Xdecide the key is an "ESCape" and not the first character of a
  1099. Xfunction key sequence?  Not very long, huh?  But what if the
  1100. Xsource may be an xterm, a serial line, a telnet/rlogin network
  1101. Xconnection, or even a radio packet TNC.  The ESC could arrive a
  1102. Xlong time before the next character in a sequence.  There is no
  1103. Xsingle answer.  I try to do what I can to guess, but you may want
  1104. Xto play with the 'eto' interactive command to diddle the timeout.
  1105. XDon't make the timeout too short or ECU won't recognize the HOME
  1106. Xkey and you'll have to go somewhere and kill ECU from another
  1107. Xterminal.
  1108. X
  1109. XFunction keys work fairly well so long as you
  1110. Xfollow these suggestions (feel free to experiment with each to
  1111. Xsee if they are appropriate for your keyboard):
  1112. X
  1113. X1. After pressing ESCape, expect a delay before it is processed.
  1114. XWait for a second or so before pressing any other keys:
  1115. X
  1116. X2. Don't press and hold ESC or extended keys (avoid auto-repeat).
  1117. X
  1118. X3. After pressing a key you think should be accepted, if you hear
  1119. Xa bell or if nothing happens, wait a half a second or so and try
  1120. Xthe key again.
  1121. X
  1122. XGreater magicians than me have trouble in this area and many
  1123. Xhigh class programs don't get it right either. I've lost a
  1124. Xgreat deal of sleep over this one.  Maybe it is stable now.
  1125. X
  1126. XStarting with 3.20, all keyboards must have a funckeymap entry
  1127. X(see README.KEYBRD) matching the terminal type of the executing
  1128. Xscreen.  Previous versions assumed terminal type "ansi"
  1129. Xindicated an SCO AT-attached keyboard as part of a multiscreen.
  1130. XOther terminal types required a similar entry in a file named
  1131. Xnonansikeys.  Converting preexisting nonansikeys files to
  1132. Xfunckeymaps files can be accomplished by merely renaming the file.
  1133. XIf you are an SCO user, you must also add one entry to the new file
  1134. Xif it is not already there (the old models/nonansikeys did in
  1135. Xfact contain the required entry).  See README.KEYBRD for further
  1136. Xdetail.
  1137. SHAR_EOF
  1138. chmod 0644 README.FUNCKEY ||
  1139. echo 'restore of README.FUNCKEY failed'
  1140. Wc_c="`wc -c < 'README.FUNCKEY'`"
  1141. test 2028 -eq "$Wc_c" ||
  1142.     echo 'README.FUNCKEY: original size 2028, current size' "$Wc_c"
  1143. rm -f _shar_wnt_.tmp
  1144. fi
  1145. # ============= README.GENDIAL ==============
  1146. if test -f 'README.GENDIAL' -a X"$1" != X"-c"; then
  1147.     echo 'x - skipping README.GENDIAL (File already exists)'
  1148.     rm -f _shar_wnt_.tmp
  1149. else
  1150. > _shar_wnt_.tmp
  1151. echo 'x - extracting README.GENDIAL (Text)'
  1152. sed 's/^X//' << 'SHAR_EOF' > 'README.GENDIAL' &&
  1153. XThis is a schematic hint to delvers and hackers:
  1154. X
  1155. XGendial UUCP dialers can be used by ECU alongside a non-SCO
  1156. XUUCP package by using extra Devices entries.  uucico continues
  1157. Xto use Dialers facilities familiar to it.  ECU can use the
  1158. Xmore flexible/robust C programs.
  1159. X
  1160. X#/etc/uucp/Devices or wherever
  1161. X# normal entry
  1162. XACU ttya - 19200 t3000
  1163. X# extra entry
  1164. XECUt3000 ttya - 110-34000 /usr/local/lib/ecu/dialgT3000
  1165. X
  1166. XThen, use '=ECUt3000' instead of 'ttya' for the device
  1167. X
  1168. X.--[ dialing directory ]-- /u1/wht/.ecu/phone ---------------------------------.
  1169. X| entry name | telephone number | tty | baud P | description                   |
  1170. X| .......    | 1(...)...-....   |2b   |19200 N | ....... .... ......           |
  1171. X| al.--[ entry: cis-help ]---------------------------------------.             |
  1172. X| cc|                                                            |             |
  1173. X| ch| telephone number  1(800)848-4480V                          |             |
  1174. X| ch| device            =ECUt3000______                          |             |
  1175. X| ci| baud rate         9600                                     |..... ....   |
  1176. X| ci| parity            E                                        |...... ....  |
  1177. X| ci| description       CIS Help 74,74 + NETWORK                 |..... ....   |
  1178. X| ci| debug level       0  (dialer -x value 0-9)                 |. ...... ..  |
  1179. X| co| DCD watch         t                                        |..... ....   |
  1180. X| dr|                                                            |             |
  1181. X| em| Enter tty (e.g. 1a), Any or [=/]Devices-type               |             |
  1182. X| em| ESC: exit  END: finish  ^U: erase ^B: back  TAB: fwd       |             |
  1183. X| gs`------------------------------------------------------------'             |
  1184. X| ..         | ...-....         |Any  | 2400 E |                               |
  1185. X+------------------------------------------------------------------------------+
  1186. X|                                                                              |
  1187. X|                                                                              |
  1188. X`------------------------------------------------------------------------------'
  1189. X
  1190. X
  1191. SHAR_EOF
  1192. chmod 0644 README.GENDIAL ||
  1193. echo 'restore of README.GENDIAL failed'
  1194. Wc_c="`wc -c < 'README.GENDIAL'`"
  1195. test 2165 -eq "$Wc_c" ||
  1196.     echo 'README.GENDIAL: original size 2165, current size' "$Wc_c"
  1197. rm -f _shar_wnt_.tmp
  1198. fi
  1199. # ============= README.KEYBRD ==============
  1200. if test -f 'README.KEYBRD' -a X"$1" != X"-c"; then
  1201.     echo 'x - skipping README.KEYBRD (File already exists)'
  1202.     rm -f _shar_wnt_.tmp
  1203. else
  1204. > _shar_wnt_.tmp
  1205. echo 'x - extracting README.KEYBRD (Text)'
  1206. sed 's/^X//' << 'SHAR_EOF' > 'README.KEYBRD' &&
  1207. XECU 3.20 presents itself to the world by default as a much
  1208. Xbetter clone of an SCO multiscreen terminal than ever before.
  1209. X
  1210. XThis includes
  1211. X   video display control and
  1212. X   key codes emitted by pressed function keys
  1213. X
  1214. XIn addition, many MS-DOS video control sequences are supported.
  1215. X
  1216. XThese features are described in tedious detail in the manual.  What is
  1217. Xmissing from the manual -- and what this README attempts to
  1218. Xdescribe -- is how ECU keyboard management really looks from the
  1219. Xmacro perspective.
  1220. X
  1221. XKeyboard management is divided into two parts:
  1222. X
  1223. X  o  Function key recognition
  1224. X  o  Function key action
  1225. X
  1226. XFunction key recognition means detecting function key presses
  1227. Xin the ecu keyboard input stream.  This is controlled by the
  1228. X~/.ecu/funckeymap file.
  1229. X
  1230. XFunction key action means what ecu does with a function key once
  1231. Xit gets it.  This is controlled by the ~/.ecu/keys file.
  1232. X
  1233. XFunction Key Recognition 
  1234. X------------------------
  1235. X
  1236. XYou have to use funckeymap entries to get ecu to recognize the
  1237. Xfunction keys.  Pre-3.20 users take note: funckeymaps serves the
  1238. Xpurpose previously handled by ~/.ecu/nonansikeys.  This is a rare
  1239. Xbackward compatibility problem (the 2nd in ECU history).
  1240. XStarting with 3.20, SCO multiscreens require an entry, whereas
  1241. Xearlier versions had multiscreen support built in.  The TERM name
  1242. Xfor SCO multiscreens is "ansi", hence the name "nonansikeys".  I
  1243. Xthink you'll agree the new name is more appropriate.
  1244. X
  1245. XIf ~/.ecu/funckeymap does not exist, ECU searches for a file
  1246. Xby  the same name in the library directory, usually /usr/local/lib/ecu).
  1247. X
  1248. XAt startup,
  1249. XECU selects an entry in ~/.ecu/funckeymap whose label matches
  1250. Xthe terminal type of the executing screen (the TERM environment
  1251. Xvariable).  If ecu is started
  1252. Xnon-conversationally (/dev/null for stdin), this is not done.
  1253. XThe environment variable ECUFUNCKEY, if found, overrides the
  1254. XTERM variable for funckeymap keyboard management only.  TERM is always
  1255. Xused for identifying the display.
  1256. X
  1257. XSee the manual sections titled "Supported Terminals" thru "Line Editing".
  1258. XThere are some additional notes in the distribution file
  1259. Xmodels/funckeymap.  Please forgive any conflicts.  I can only
  1260. Xtype so fast and the code gets priority.
  1261. X
  1262. XAn example entry for an SCO multiscreen console:
  1263. X
  1264. X#+-------------------------------------------------------------------
  1265. X#   SCO  multiscreen  ($TERM=ansi)
  1266. X#--------------------------------------------------------------------
  1267. Xansi
  1268. Xansi43
  1269. Xsco
  1270. X    F1:F1:          esc [ M 
  1271. X    F2:F2:          esc [ N 
  1272. X    F3:F3:          esc [ O 
  1273. X    F4:F4:          esc [ P 
  1274. X    F5:F5:          esc [ Q 
  1275. X    F6:F6:          esc [ R 
  1276. X    F7:F7:          esc [ S 
  1277. X    F8:F8:          esc [ T 
  1278. X    F9:F9:          esc [ U 
  1279. X    F10:F10:        esc [ V 
  1280. X    F11:F11:        esc [ W 
  1281. X    F12:F12:        esc [ X 
  1282. X    Home:Home:      esc [ H 
  1283. X    End:End:        esc [ F 
  1284. X    PgUp:PgUp:      esc [ I 
  1285. X    PgDn:PgDn:      esc [ G 
  1286. X    CUU:CUU:        esc [ A 
  1287. X    CUL:CUL:        esc [ D 
  1288. X    CU5:CU5:        esc [ E 
  1289. X    CUR:CUR:        esc [ C 
  1290. X    CUD:CUD:        esc [ B 
  1291. X    Ins:Ins:        esc [ L
  1292. X    BkTab:BackTab:  esc [ Z
  1293. X
  1294. XECU tries to support any "reasonable" video terminal as an ECU
  1295. Xconsole.  Video differences are handled by curses and
  1296. Xtermcap/terminfo.  The keyboard is normalized with funckeymap.
  1297. XHopefully, someone has already constructed a funckeymap entry for
  1298. Xyour keyboard.  If not, you must construct one.
  1299. X
  1300. XFor this, make several experiments with kbdtest3.
  1301. XStart a terminal session in the ecu distribution directory
  1302. Xand run kbdtest3 (assuming it has been made).
  1303. XKbdtest3 will prompt you to press each function key in return.
  1304. XThe program is generally self-explanatory, but some notes are
  1305. Xworthy of note:
  1306. X
  1307. X  o If it asks you for a key not on your keyboard, pick some
  1308. X    reasonable alternate
  1309. X
  1310. X  o If you simply cannot find an alternate, you will have to type
  1311. X    a slash ('/') to signify no key choice exists.
  1312. X
  1313. X  o If you are on an xterm, you may get spurious or no response
  1314. X    for the "unusual" keys like Home and End.  Just type a
  1315. X    slash for the time being and go on.  When you are finished,
  1316. X    re-read the manual section titled "Function Key Mapping
  1317. X    (Recognition)".  There are also some notes in models/funckeymap.
  1318. X    There are guidelines in there for using xmodmap to achieve
  1319. X    reasonable X mapping for spurious or dead keys.
  1320. X    A notorious example is the xterm shift-Tab that generates
  1321. X    the single character sequence 0x09 just like the tab key does.
  1322. X
  1323. X        XTerm*VT100*Translations: #override\
  1324. X             Shift <Key>Tab:  string(0x1b) string("[Z") \n \
  1325. X
  1326. X    in ~/.Xdefaults takes care of this.
  1327. X
  1328. XRepeat the kbdtest3 and hackery exercises until you have an
  1329. Xacceptable entry.  Acceptable means a working key for each of
  1330. Xecu's 23 function keys where each key produces a
  1331. Xunique key sequence.
  1332. X
  1333. XKbdtest3 writes funckeymap entries to ./kbdtest3.out.  When you
  1334. Xedit the file, you will see the results of each kbdtest3
  1335. Xrun appended one after the other.  Presumabaly you quit using kbdtest3
  1336. Xwhen you were satisfied, so skip to the bottom of the file and examine the
  1337. Xlast entry.  If it looks good, cut that section out and put
  1338. Xit in ~/.ecu/funckeys.  Also, -*PLEASE*- send it to wht@n4hgf.Mt-Park.GA.US
  1339. Xso I can archive it.  Include the environment details
  1340. Xsuch as "Wyse 232XKQ Rom revision 2.3" or "Pluton 9001 console
  1341. Xunder RiskOs 1.4".
  1342. X
  1343. XNow ecu can recognize your function keys and map them to internal
  1344. Xvalues.  Command screens needing up and down arrows, insert and
  1345. Xso forth will work.  
  1346. X
  1347. XFunction Key Actions
  1348. X--------------------
  1349. X
  1350. XFunction key actions are determined by ecu program code when
  1351. Xyou are executing ecu interactive commands.  When you are
  1352. Xin the interactive mode, keyboard actions are governed by
  1353. Xstartup definitions or ~/.keys actions.  These are described
  1354. Xin the manual section titled "Function Key Actions", but a
  1355. Xfew quick notes here might serve well:
  1356. X
  1357. X   o  startup default actions
  1358. X      All of the 23 function keys save 2 are preset to generate
  1359. X      the same sequence they would on an SCO.  See the manual
  1360. X      subsection "Standard Function Keys" for a list
  1361. X      The 'Home' and 'Cursor 5' keys have reserved meanings
  1362. X      and may not be overriden.
  1363. X
  1364. X   o  ~/.keys and the interactive command fkey
  1365. X      You can override the defaults by loading a custom keyset
  1366. X      you have placed in ~/.fkeys.  The interactive command
  1367. X      fkey may be explicitly used to load a keyset.
  1368. X      If you use a logical dialing directory name to connect
  1369. X      to a remote and ~/.keys has an entry whose name (sometimes
  1370. X      called the label) matches the directory entry name, ECU
  1371. X      will load the ~/.keys entry automatically.
  1372. X      See "Standard Function Keys" for details.
  1373. X
  1374. SHAR_EOF
  1375. chmod 0644 README.KEYBRD ||
  1376. echo 'restore of README.KEYBRD failed'
  1377. Wc_c="`wc -c < 'README.KEYBRD'`"
  1378. test 6660 -eq "$Wc_c" ||
  1379.     echo 'README.KEYBRD: original size 6660, current size' "$Wc_c"
  1380. rm -f _shar_wnt_.tmp
  1381. fi
  1382. # ============= README.OPENWIN ==============
  1383. if test -f 'README.OPENWIN' -a X"$1" != X"-c"; then
  1384.     echo 'x - skipping README.OPENWIN (File already exists)'
  1385.     rm -f _shar_wnt_.tmp
  1386. else
  1387. > _shar_wnt_.tmp
  1388. echo 'x - extracting README.OPENWIN (Text)'
  1389. sed 's/^X//' << 'SHAR_EOF' > 'README.OPENWIN' &&
  1390. XIf you are using Open Windows on a Sparc, try these hints:
  1391. X
  1392. XDate: Tue, 28 Apr 92 16:41:42 EDT
  1393. XFrom: ifsbd!cma (Mark Ashton)
  1394. XTo: n4hgf!wht
  1395. XSubject: Key mapping for ecu in Openwin shelltool
  1396. X
  1397. XCreate a ~/.ttyswrc file containing the following:
  1398. X
  1399. Xmapi R7 \E[H
  1400. Xmapi R9 \E[I
  1401. Xmapi R11 \E[E
  1402. Xmapi R13 \E[F
  1403. Xmapi R15 \E[G
  1404. Xmapi F1 \E[M
  1405. Xmapi F2 \E[N
  1406. Xmapi F3 \E[O
  1407. Xmapi F4 \E[P
  1408. Xmapi F5 \E[Q
  1409. Xmapi F6 \E[R
  1410. Xmapi F7 \E[S
  1411. Xmapi F8 \E[T
  1412. Xmapi F9 \E[U
  1413. Xmapi F10 \E[V
  1414. Xmapi F11 \E[W
  1415. Xmapi F12 \E[X
  1416. X
  1417. XSee the shelltool man page for mention of .ttyswrc
  1418. X
  1419. XThen, add 'sun-cmd' to the ansi funckeymap
  1420. X
  1421. X    F1:F1:          esc [ M 
  1422. X    F2:F2:          esc [ N 
  1423. X    F3:F3:          esc [ O 
  1424. X    F4:F4:          esc [ P 
  1425. X    F5:F5:          esc [ Q 
  1426. X    F6:F6:          esc [ R 
  1427. X    F7:F7:          esc [ S 
  1428. X    F8:F8:          esc [ T 
  1429. X    F9:F9:          esc [ U 
  1430. X    F10:F10:        esc [ V 
  1431. X    F11:F11:        esc [ W 
  1432. X    F12:F12:        esc [ X 
  1433. X    Home:Home:      esc [ H 
  1434. X    End:End:        esc [ F 
  1435. X    PgUp:PgUp:      esc [ I 
  1436. X    PgDn:PgDn:      esc [ G 
  1437. X    CUU:CUU:        esc [ A 
  1438. X    CUL:CUL:        esc [ D 
  1439. X    CU5:CU5:        esc [ E 
  1440. X    CUR:CUR:        esc [ C 
  1441. X    CUD:CUD:        esc [ B 
  1442. X    Ins:Ins:        esc [ L
  1443. X    BkTab:BackTab:  esc [ Z
  1444. X
  1445. SHAR_EOF
  1446. chmod 0644 README.OPENWIN ||
  1447. echo 'restore of README.OPENWIN failed'
  1448. Wc_c="`wc -c < 'README.OPENWIN'`"
  1449. test 1231 -eq "$Wc_c" ||
  1450.     echo 'README.OPENWIN: original size 1231, current size' "$Wc_c"
  1451. rm -f _shar_wnt_.tmp
  1452. fi
  1453. # ============= README.PATCHQA ==============
  1454. if test -f 'README.PATCHQA' -a X"$1" != X"-c"; then
  1455.     echo 'x - skipping README.PATCHQA (File already exists)'
  1456.     rm -f _shar_wnt_.tmp
  1457. else
  1458. > _shar_wnt_.tmp
  1459. echo 'x - extracting README.PATCHQA (Text)'
  1460. sed 's/^X//' << 'SHAR_EOF' > 'README.PATCHQA' &&
  1461. XA very few have reported problems with applying patches.  This
  1462. Xis confusing, since I use a very strict procedure when making a patch.
  1463. XEvery time I make a new patch, I always reapply each patch to a
  1464. Xcopy of the original release to make a base line for the new
  1465. Xdiff.
  1466. X
  1467. X3.10 --p1--> 3.11 --p2--> 3.12 --p3--> 3.15  \
  1468. X                                              --- diff -c --> p6
  1469. X                             3.16development /
  1470. X
  1471. XThen, I copy the 3.15 to a 3.15copy directory and apply the new patch 6
  1472. Xto it.
  1473. X
  1474. X3.15copy --new p6--> 3.16suspect \
  1475. X                                  ------- diff -c --> should produce nothing
  1476. X                 3.16development /
  1477. X
  1478. X
  1479. SHAR_EOF
  1480. chmod 0644 README.PATCHQA ||
  1481. echo 'restore of README.PATCHQA failed'
  1482. Wc_c="`wc -c < 'README.PATCHQA'`"
  1483. test 655 -eq "$Wc_c" ||
  1484.     echo 'README.PATCHQA: original size 655, current size' "$Wc_c"
  1485. rm -f _shar_wnt_.tmp
  1486. fi
  1487. # ============= README.Q-and-A ==============
  1488. if test -f 'README.Q-and-A' -a X"$1" != X"-c"; then
  1489.     echo 'x - skipping README.Q-and-A (File already exists)'
  1490.     rm -f _shar_wnt_.tmp
  1491. else
  1492. > _shar_wnt_.tmp
  1493. echo 'x - extracting README.Q-and-A (Text)'
  1494. sed 's/^X//' << 'SHAR_EOF' > 'README.Q-and-A' &&
  1495. XOn Apr 29,  9:21, Clayton Haapala wrote:
  1496. X> 
  1497. X> Warren Tucker writes:
  1498. X> > 
  1499. X> > Your question inspired a new README, which I just sent to everyone.
  1500. X> > Does this help any?
  1501. X> > 
  1502. X> I run the same ecu binary from two different xterms.  One is from the
  1503. X> Sun3 console, the other from a DECstation 5000.  I have built keymaps
  1504. SHAR_EOF
  1505. true || echo 'restore of README.Q-and-A failed'
  1506. fi
  1507. echo 'End of ecu320 part 1'
  1508. echo 'File README.Q-and-A is continued in part 2'
  1509. echo 2 > _shar_seq_.tmp
  1510. exit 0
  1511.  
  1512. exit 0 # Just in case...
  1513.