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

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