home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-09-10 | 59.9 KB | 1,513 lines |
- Newsgroups: comp.sources.misc
- From: wht@n4hgf.Mt-Park.GA.US (Warren Tucker)
- Subject: v32i036: ecu - ECU Asynchronous Communications v3.20, Part01/40
- Message-ID: <csm-v32i036=ecu.141245@sparky.IMD.Sterling.COM>
- X-Md4-Signature: 6897f8753ad94078afa78a906070a3d7
- Date: Fri, 11 Sep 1992 19:14:22 GMT
- Approved: kent@sparky.imd.sterling.com
-
- Submitted-by: wht@n4hgf.Mt-Park.GA.US (Warren Tucker)
- Posting-number: Volume 32, Issue 36
- Archive-name: ecu/part01
- Environment: SCO,XENIX,ISC,SUNOS,SYSVR4,HDB,Curses
- Supersedes: ecu: Volume 21, Issue 53-89
-
- This is ecu revision 3.20. ECU is a asynchronous communications
- program for these environments:
-
- SCO XENIX System V/286 ECU may be too large for '286
- SCO XENIX System V/386 ECU is stable on SCO XENIX/386
- SCO UNIX System V/386 ECU is very robust on SCO UNIX
- SCO ODT 1.x,2.0 ODT is the same as UNIX for ECU
-
- ISC 386/ix 2.2 or later Ports to these systems are
- ISC System V Release 4 not supported as regularly
- ESIX System V Release 4 and I cannot vouch for
- SunOS 4.1.[12] them at time of release
- PLEASE GIVE ME FEEDBACK!
-
- ECU (Extended Call Utility) is a research and engineering
- communications program originally written for users of SCO UNIX
- V.3.2/386 and XENIX V on 80286 and 80386 systems. Support for
- other systems has been added and further porting is possible with
- "minor" effort to other systems based on or similar to UNIX
- System V.
-
- ECU provides the classic terminal communications facility of
- passing keyboard data to a serial line and incoming data to the
- computer video display. In addition, a dialing directory, a
- function key mapping feature, session logging, and other
- basic features are available.
-
- ECU presents to the host a flexible "ANSI" terminal type,
- accepting any valid video control sequences from MS-DOS or SCO
- documentation as of late 1990. It also fares well, though
- imperfectly, with Sun and VT-100 in-band video control sequences.
- Standards are great: everybody should have one, especially if
- they call it "ANSI". For more information, refer to the manual
- section titled "ANSI Filter."
-
- Support for arbitrary video consoles is included. I use ECU
- (almost exclusively now) with an X11R4 xterm. This release has
- been tested extensively with xterms (particularly Metro Link
- X11R5, SCO ODT 2.0 X11R4, SunOS 4.1 MIT standard distribution,
- OpenWindows 2.0, and Roell's X386 1.1b). Your terminal must be
- fairly "smart", with insert/delete-line features,
- erase-to-end-of-line, etc.. See "Supported Terminals" in the
- manual. Also check the note below named "KBDTEST3".
-
- ECU supports numerous file transfer protocols: as of this
- writing, XMODEM, XMODEM/CRC, XMODEM-1K, YMODEM/CRC Batch,
- ZMODEM/CRC-16, ZMODEM/CRC-32, C-Kermit 5 and SEAlink are
- supported. For more information, refer to the manual sections
- describing the individual interactive and procedure file transfer
- commands.
-
- A very flexible procedure (script) language is also incorporated
- to automate many communications tasks. In addition to augmenting
- interactive tasks, by using shell scripts and ECU procedures, ECU
- can perform batch-style communications sessions in an entirely
- "unattended" fashion.
-
- For applications too unwieldy for the procedure language,
- "ecufriend" programs are supported. Friends are spawned by ECU
- having access to the shared memory segment containing an
- ECU-managed "screen image" and other data and having use of the
- attached communications line.
-
- ---- Cut Here and feed the following to sh ----
- #!/bin/sh
- # This is ecu320, a shell archive (shar 3.461)
- # made 09/10/1992 19:48 UTC by wht@n4hgf.Mt-Park.GA.US
- # Source directory /u1/src/ecu
- #
- # existing files will NOT be overwritten unless -c is specified
- #
- # This is part 1 of a multipart archive
- # do not concatenate these parts, unpack them in order with /bin/sh
- #
- # This shar contains:
- # length mode name
- # ------ ---------- ------------------------------------------
- # 23554 -rw-r--r-- README
- # 702 -rw-r--r-- README.3.00
- # 427 -rw-r--r-- README.3.10
- # 1221 -rw-r--r-- README.3.20
- # 3562 -rw-r--r-- README.DEBUG
- # 2028 -rw-r--r-- README.FUNCKEY
- # 2165 -rw-r--r-- README.GENDIAL
- # 6660 -rw-r--r-- README.KEYBRD
- # 1231 -rw-r--r-- README.OPENWIN
- # 655 -rw-r--r-- README.PATCHQA
- # 2046 -rw-r--r-- README.Q-and-A
- # 4167 -rw-r--r-- README.RTSCTS
- # 1010 -rw-r--r-- README.SCOTTY
- # 320 -rw-r--r-- README.SEAlink
- # 3965 -rw-r--r-- README.WY60
- # 30872 -rw-r--r-- HISTORY
- # 21763 -rw-r--r-- OLD-HISTORY-1
- # 33749 -rw-r--r-- OLD-HISTORY-2
- # 835 -rw-r--r-- ESOTERIC
- # 1752 -rwxr-xr-x Configure
- # 9934 -rw-r--r-- Make.src
- # 810 -rw-r--r-- ecufriend/Make.src
- # 2527 -rw-r--r-- ecuungetty/Make.src
- # 2943 -rw-r--r-- gendial/Make.src
- # 2437 -rw-r--r-- help/Make.src
- # 2416 -rw-r--r-- sea/Make.src
- # 3601 -rw-r--r-- z/Make.src
- # 4839 -rw-r--r-- afterlint.c
- # 1780 -rw-r--r-- bamboozle.c
- # 780 -rw-r--r-- cmdtbl.c
- # 25615 -rw-r--r-- config.c
- # 2535 -rw-r--r-- dialprog.h
- # 882 -rw-r--r-- dlent.h
- # 1474 -rw-r--r-- dutmp.c
- # 1114 -rw-r--r-- dvent.h
- # 12474 -rw-r--r-- ecu.c
- # 11447 -rw-r--r-- ecu.h
- # 24153 -rw-r--r-- ecuDCE.c
- # 4765 -rw-r--r-- ecuLCK.c
- # 981 -rw-r--r-- ecu_pwd.h
- # 951 -rw-r--r-- ecu_stat.h
- # 955 -rw-r--r-- ecu_types.h
- # 12742 -rw-r--r-- ecuchdir.c
- # 12720 -rw-r--r-- ecucmd.h
- # 1402 -rw-r--r-- ecucurses.h
- # 4079 -rw-r--r-- ecudump.c
- # 4535 -rw-r--r-- ecuerror.h
- # 7262 -rw-r--r-- ecufinsert.c
- # 15916 -rw-r--r-- ecufkey.c
- # 1988 -rw-r--r-- ecufkey.h
- # 13563 -rw-r--r-- ecufork.c
- # 717 -rw-r--r-- ecufork.h
- # 18202 -rw-r--r-- ecugrabbag.c
- # 10763 -rw-r--r-- ecuicmaux.c
- # 18096 -rw-r--r-- ecuicmd.c
- # 9270 -rw-r--r-- ecuicmhelp.c
- # 3695 -rw-r--r-- ecuicmhist.c
- # 1213 -rw-r--r-- ecukey.h
- # 39681 -rw-r--r-- eculine.c
- # 4275 -rw-r--r-- eculock.c
- # 3060 -rw-r--r-- ecunumrev.c
- # 16547 -rw-r--r-- ecupde.c
- # 1832 -rw-r--r-- ecupde.h
- # 46641 -rw-r--r-- ecuphdir.c
- # 5683 -rw-r--r-- ecuphrase.c
- # 37081 -rw-r--r-- ecurcvr.c
- # 4531 -rw-r--r-- ecuscrdump.c
- # 16570 -rw-r--r-- ecusetup.c
- # 9584 -rw-r--r-- ecushm.c
- # 5188 -rw-r--r-- ecushm.h
- # 16058 -rw-r--r-- ecusighdl.c
- # 14572 -rw-r--r-- ecutcap.c
- # 4411 -rw-r--r-- ecutime.c
- # 36216 -rw-r--r-- ecutty.c
- # 1477 -rw-r--r-- ecutty.h
- # 5082 -rw-r--r-- ecuuclc.c
- # 1603 -rw-r--r-- ecuungetty.h
- # 3383 -rw-r--r-- ecuusage.c
- # 26150 -rw-r--r-- ecuutil.c
- # 891 -rw-r--r-- ecuvmin.h
- # 10846 -rw-r--r-- ecuwinutil.c
- # 28250 -rw-r--r-- ecuxfer.c
- # 2415 -rw-r--r-- ecuxkey.h
- # 1310 -rw-r--r-- esd.h
- # 19527 -rw-r--r-- esdutil.c
- # 12024 -rw-r--r-- expresp.c
- # 9450 -rw-r--r-- fasiintf.c
- # 25046 -rw-r--r-- feval.c
- # 2461 -rw-r--r-- feval.h
- # 13650 -rw-r--r-- funckeymap.c
- # 7030 -rw-r--r-- gint.c
- # 5625 -rw-r--r-- gstr.c
- # 40881 -rw-r--r-- hdbintf.c
- # 2711 -rw-r--r-- kbdtest.c
- # 15128 -rw-r--r-- kbdtest3.c
- # 1647 -rw-r--r-- logevent.c
- # 1197 -rw-r--r-- lstat.c
- # 2371 -rw-r--r-- makedirs.c
- # 4860 -rw-r--r-- mkdirs.c
- # 6533 -rw-r--r-- nap.c
- # 22 -rw-r--r-- patchlevel.h
- # 1547 -rw-r--r-- pc_scr.h
- # 31521 -rw-r--r-- pcmd.c
- # 22996 -rw-r--r-- pcmdfile.c
- # 13936 -rw-r--r-- pcmdif.c
- # 9422 -rw-r--r-- pcmdtty.c
- # 2818 -rw-r--r-- pcmdwhile.c
- # 16669 -rw-r--r-- pcmdxfer.c
- # 4481 -rw-r--r-- poutput.c
- # 5047 -rw-r--r-- pprintf.c
- # 19700 -rw-r--r-- proc.c
- # 1418 -rw-r--r-- proc.h
- # 4619 -rw-r--r-- proc_error.c
- # 3651 -rw-r--r-- procframe.c
- # 12122 -rw-r--r-- regexp.c
- # 801 -rw-r--r-- relop.h
- # 6186 -rw-r--r-- smap.c
- # 1612 -rw-r--r-- smap.h
- # 1516 -rw-r--r-- termecu.h
- # 2050 -rw-r--r-- ttynaming.c
- # 1587 -rw-r--r-- ttynaming.h
- # 7666 -rw-r--r-- utmpstat.c
- # 960 -rw-r--r-- utmpstatus.h
- # 10234 -rw-r--r-- var.c
- # 784 -rw-r--r-- var.h
- # 3724 -rw-r--r-- bperr/bperr.c
- # 10101 -rw-r--r-- help/helpgen.c
- # 1432 -rw-r--r-- help/util.c
- # 30182 -rw-r--r-- help/ecuhelp.src
- # 10470 -rw-r--r-- ecuungetty/ecuungetty.c
- # 1751 -rw-r--r-- z/baudtest.c
- # 46240 -rw-r--r-- z/ecurz.c
- # 45023 -rw-r--r-- z/ecusz.c
- # 14276 -rw-r--r-- z/zcommon.c
- # 42813 -rw-r--r-- z/zcurses.c
- # 329 -rw-r--r-- z/zdebug.c
- # 17354 -rw-r--r-- z/zmodem.c
- # 7102 -rw-r--r-- z/zmodem.h
- # 37329 -rw-r--r-- sea/ecusea.c
- # 22195 -rw-r--r-- sea/scurses.c
- # 11247 -rw-r--r-- sea/sealink.doc
- # 5213 -rw-r--r-- sea/sealink.imp
- # 480 -rw-r--r-- gendial/README
- # 720 -rwxr-xr-x gendial/install_dialer
- # 12745 -rw-r--r-- gendial/dceHA24.c
- # 13931 -rw-r--r-- gendial/dceMC9624.c
- # 14942 -rw-r--r-- gendial/dceMPAD.c
- # 19001 -rw-r--r-- gendial/dceT2500.c
- # 17548 -rw-r--r-- gendial/dceT3000.c
- # 17953 -rw-r--r-- gendial/dceTBPlus.c
- # 13878 -rw-r--r-- gendial/dceUSR24.c
- # 6062 -rw-r--r-- gendial/dialer.h
- # 31052 -rw-r--r-- gendial/gendial.c
- # 1263 -rw-r--r-- gendial/tbit.sync.h
- # 10357 -rw-r--r-- gendial/template.c
- # 1378 -rw-r--r-- fasi/Makefile
- # 32 -rw-r--r-- fasi/Master
- # 279 -rw-r--r-- fasi/Node
- # 38 -rw-r--r-- fasi/PATCHLEVEL
- # 27697 -rw-r--r-- fasi/README
- # 6394 -rw-r--r-- fasi/README.FASI
- # 23494 -rw-r--r-- fasi/RELEASENOTES
- # 8785 -rw-r--r-- fasi/Space.c
- # 52 -rw-r--r-- fasi/System
- # 717 -rw-r--r-- fasi/digi-pc8.h
- # 81250 -rw-r--r-- fasi/fas.c
- # 21979 -rw-r--r-- fasi/fas.h
- # 370 -rwxr--r-- fasi/idfasi
- # 2829 -rw-r--r-- ecufriend/ecufriend.c
- # 2723 -rw-r--r-- mapkey/README
- # 9988 -rw-r--r-- mapkey/keys.usa.ecu
- # 2104 -rw-r--r-- xsel386/fixttiocom.c
- # 2981 -rw-r--r-- xsel386/select-update
- # 1237 -rw-r--r-- xsel386/select.asm
- # 21402 -rw-r--r-- xsel386/select.txt
- # 391 -rw-r--r-- xsel386/ttiocom.c
- # 3781 -rw-r--r-- memmove/README
- # 1143 -rw-r--r-- memmove/memmove.s
- # 1684 -rw-r--r-- memmove/memmove386.asm
- # 1842 -rw-r--r-- memmove/memmove286.asm
- # 304 -rw-r--r-- timetest/Makefile
- # 2447 -rw-r--r-- timetest/naptest.c
- # 2417 -rw-r--r-- timetest/naptest2.c
- # 1574 -rw-r--r-- timetest/naptest3.c
- # 968 -rw-r--r-- timetest/seltest.c
- # 804 -rw-r--r-- doc/README
- # 907 -rw-r--r-- doc/Makefile
- # 6050 -rw-r--r-- doc/_basic.txt
- # 39 -rw-r--r-- doc/_end.txt
- # 2023 -rw-r--r-- doc/_exits.txt
- # 38219 -rw-r--r-- doc/_features.txt
- # 7541 -rw-r--r-- doc/_hdb.txt
- # 38646 -rw-r--r-- doc/_icmd.txt
- # 2580 -rw-r--r-- doc/_intro.txt
- # 60249 -rw-r--r-- doc/_p_cmd.txt
- # 12064 -rw-r--r-- doc/_p_ifunc.txt
- # 5784 -rw-r--r-- doc/_p_param.txt
- # 10113 -rw-r--r-- doc/_p_sfunc.txt
- # 13572 -rw-r--r-- doc/_startup.txt
- # 1560 -rw-r--r-- doc/_top.txt
- # 141 -rw-r--r-- doc/ecu.txt
- # 9296 -rw-r--r-- doc/proc.txt
- # 811 -rw-r--r-- models/_connect.ep
- # 585 -rw-r--r-- models/_hangup.ep
- # 433 -rw-r--r-- models/_rc.ep
- # 415 -rw-r--r-- models/_terminate.ep
- # 770 -rw-r--r-- models/bsd_uname.ep
- # 140 -rw-r--r-- models/colors
- # 14 -rw-r--r-- models/dir
- # 912 -rw-r--r-- models/f.ep
- # 1667 -rw-r--r-- models/file_test.ep
- # 317 -rw-r--r-- models/frame_test.ep
- # 17163 -rw-r--r-- models/funckeymap
- # 198 -rw-r--r-- models/gosub.ep
- # 544 -rw-r--r-- models/goto_test.ep
- # 420 -rw-r--r-- models/if_test.ep
- # 322 -rw-r--r-- models/keys
- # 515 -rw-r--r-- models/lookfortest.ep
- # 677 -rw-r--r-- models/mhack_test.ep
- # 40 -rw-r--r-- models/mkdir.ep
- # 974 -rw-r--r-- models/oneline.ep
- # 2232 -rw-r--r-- models/opuslogin.ep
- # 1207 -rw-r--r-- models/p.ep
- # 162 -rw-r--r-- models/phone
- # 117 -rw-r--r-- models/phrases
- # 992 -rw-r--r-- models/ps.ep
- # 2060 -rw-r--r-- models/put_ecu.ep
- # 449 -rw-r--r-- models/ringcount.ep
- # 600 -rw-r--r-- models/root.ep
- # 5129 -rw-r--r-- models/rz_update.ep
- # 740 -rw-r--r-- models/scm.ep
- # 654 -rw-r--r-- models/senddate.ep
- # 2490 -rw-r--r-- models/sf_test.ep
- # 1562 -rw-r--r-- models/su.ep
- # 766 -rw-r--r-- models/sysname.ep
- # 4853 -rw-r--r-- models/sz_update.ep
- # 127 -rw-r--r-- models/szall.ep
- # 592 -rw-r--r-- models/tty1a.mi
- # 543 -rw-r--r-- models/tty2d.mi
- # 4161 -rw-r--r-- models/unixlogin.ep
- # 1125 -rwxr-xr-x zgcc
- # 3523 -rw-r--r-- mkoldproto.l
- #
- if test -r _shar_seq_.tmp; then
- echo 'Must unpack archives in sequence!'
- echo Please unpack part `cat _shar_seq_.tmp` next
- exit 1
- fi
- # ============= README ==============
- if test -f 'README' -a X"$1" != X"-c"; then
- echo 'x - skipping README (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting README (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'README' &&
- X.--------------------------------------------------------.
- X| ECU README - last revised Sun Sep 06 14:29:11 EDT 1992 |
- X`--------------------------------------------------------'
- X
- XThis is ecu revision 3.20. ECU is a asynchronous communications
- Xprogram for these environments:
- X
- X SCO XENIX System V/286 ECU may be too large for '286
- X SCO XENIX System V/386 ECU is stable on SCO XENIX/386
- X SCO UNIX System V/386 ECU is very robust on SCO UNIX
- X SCO ODT 1.x,2.0 ODT is the same as UNIX for ECU
- X
- X ISC 386/ix 2.2 or later Ports to these systems are
- X ISC System V Release 4 not supported as regularly
- X ESIX System V Release 4 and I cannot vouch for
- X SunOS 4.1.[12] them at time of release
- X PLEASE GIVE ME FEEDBACK!
- X
- XECU (Extended Call Utility) is a research and engineering
- Xcommunications program originally written for users of SCO UNIX
- XV.3.2/386 and XENIX V on 80286 and 80386 systems. Support for
- Xother systems has been added and further porting is possible with
- X"minor" effort to other systems based on or similar to UNIX
- XSystem V.
- X
- XECU provides the classic terminal communications facility of
- Xpassing keyboard data to a serial line and incoming data to the
- Xcomputer video display. In addition, a dialing directory, a
- Xfunction key mapping feature, session logging, and other
- Xbasic features are available.
- X
- XECU presents to the host a flexible "ANSI" terminal type,
- Xaccepting any valid video control sequences from MS-DOS or SCO
- Xdocumentation as of late 1990. It also fares well, though
- Ximperfectly, with Sun and VT-100 in-band video control sequences.
- XStandards are great: everybody should have one, especially if
- Xthey call it "ANSI". For more information, refer to the manual
- Xsection titled "ANSI Filter."
- X
- XSupport for arbitrary video consoles is included. I use ECU
- X(almost exclusively now) with an X11R4 xterm. This release has
- Xbeen tested extensively with xterms (particularly Metro Link
- XX11R5, SCO ODT 2.0 X11R4, SunOS 4.1 MIT standard distribution,
- XOpenWindows 2.0, and Roell's X386 1.1b). Your terminal must be
- Xfairly "smart", with insert/delete-line features,
- Xerase-to-end-of-line, etc.. See "Supported Terminals" in the
- Xmanual. Also check the note below named "KBDTEST3".
- X
- XECU supports numerous file transfer protocols: as of this
- Xwriting, XMODEM, XMODEM/CRC, XMODEM-1K, YMODEM/CRC Batch,
- XZMODEM/CRC-16, ZMODEM/CRC-32, C-Kermit 5 and SEAlink are
- Xsupported. For more information, refer to the manual sections
- Xdescribing the individual interactive and procedure file transfer
- Xcommands.
- X
- XA very flexible procedure (script) language is also incorporated
- Xto automate many communications tasks. In addition to augmenting
- Xinteractive tasks, by using shell scripts and ECU procedures, ECU
- Xcan perform batch-style communications sessions in an entirely
- X"unattended" fashion.
- X
- XFor applications too unwieldy for the procedure language,
- X"ecufriend" programs are supported. Friends are spawned by ECU
- Xhaving access to the shared memory segment containing an
- XECU-managed "screen image" and other data and having use of the
- Xattached communications line.
- X
- XGcc is supported for all programs in the release. See the
- Xconfiguration section and the note on gcc for important caveats.
- X
- XPorts to ISC 2.2, ISC SVR4 and ESIX SVR4 and SunOS 4.1.1 are
- Xfairly stable and useful, though not all features are working.
- XAlso, the documentation suffers in covering these ports.
- X
- XThe doc subdirectory has all of the .txt files used to produce
- Xecu.man, the manual of sorts for the program. A copy of it is
- Xreluctantly included (net.bandwidth) for those who do not have
- Xnroff. I finally blew up my nroff with something related to
- Xdocument length, so there are two documents, ecu.man and
- Xproc.man.
- X
- X*Please* take the time to read the (tedious) manuals and READMEs
- Xeven if you are a pre-3.20 user. This will do me honor and
- Xyourself justice because there are a lot of goodies in here,
- Xmany of which are not traditional features you'll be looking for.
- X
- X--------------------------------------------------------------------
- X
- XACKNOWLEDGMENTS
- X
- XMANY THANKS to those who helped me improve the program,
- Xespecially upaya!tbetz, ache@hq.demos.su, spel@hippo.ru.ac.za,
- Xbel@trout.nosc.mil, dhmadsen@icaen.uiowa.edu, dug@kd4nc,
- Xjts@ki4xo, jsm@n4vu, lamy@glsys.in-berlin.de, cma@tridom,
- Xtabbs!aris, redi!donovan, neal@clkwrka, extel@quagga.ru.ac.za,
- Xmjb@mjbtn, tmcsys.uucp!lothar, mju@mudos.ann-arbor.mi.us
- Xelastic!fche, genrad!rob and spooley@compulink.co.uk. There were
- Xlots of others and I know I've forgotten someone who helped a
- Xgreat deal; I apologize.
- X
- XVery special thanks go to Dion L. Johnson at SCO for his untiring
- Xand generous support. Also, many kudos the guys at Metro Link for
- Xtheir excellent X11R4/X11R5 package. Yes, xecu has been born and is in
- Xthe works at last. Right now, it is a telnet socket user only,
- Xbut serial I/O is on the way. ECU may learn about telnet too.
- X
- XLothar Hirschbiegel <aega84!lh> did the ISC SVR4 port --
- XTHANKS, Lothar!
- X
- XJoseph H Buehler <jhpb@sarto.budd-lake.nj.us> extended the SVR4
- Xport to ESIX -- THANKS, Joesph!
- X
- XRobert Lewis <robertle@sco.com> and John Dashner <wa4cyb!jmd>
- Xproofread the manual. This is tedious work and special thanks
- Xgo to them.
- X
- XThe 3.20 alpha team of
- X
- X Clayton Haapala clayh@network.com
- X Cliff Yamamoto cyamamot@kilroy.Jpl.Nasa.Gov
- X Jeff Liebermann jeffl@comix.santa-cruz.ca.us
- X John Dashner wa4cyb!jmd
- X Joseph H Buehler sarto!jhpb
- X Lothar Hirschbiegel aega84!lh
- X MarK J. Bailey root@mjbtn.jobsoft.com
- X Mark Ashton n4hgf!ifsbd!cma
- X Robert Laughlin bel@nosc.mil
- X Robert Lewis robertle@sco.com
- X Robert Lipe robertl@arnet.com
- X Tim Sailer tps@jptcs.com
- X
- Xworked diligently daily over many weeks. If there are fewer bugs
- Xin this initial release than in previous releases, you have them
- Xto thank. It would have been many more months before 3.20 saw
- Xthe light of day (if ever) without their support.
- X
- X--------------------------------------------------------------------
- X
- XHOW NOT TO START DOWN THE WRONG PATH HERE
- X
- XC Kermit 5 is a much, much better product than ECU. It runs
- Xin zillions of environments, is much more robust and has many
- Xbetter features. I wrote ECU when there was nothing like it
- Xavailable. Since then, C Kermit has grown sliding windows
- Xand an excellent script language. C Kermit won't do X/Y/ZMODEM
- X(although you can get there from here). It doesn't have a gnarly
- Xshared memory interface for "friend" programs (I do not know
- Xof any one but me who has used it). C-Kermit has
- Xhundreds of implimentors/testers, thousands of users and two
- Xmost righteous Captains (Frank daCruz and Christine Gianone)
- Xbehind it. ECU has less than 10 developers and about 15 users :-).
- X
- XI will happily maintain and improve ECU for those who want it,
- Xbut if you are not a C hacker and unabashed techie (or even if you
- X*are*), C Kermit 5 is probably the asynchronous package for you!
- X
- X--------------------------------------------------------------------
- X
- XMAKING AND INSTALLING
- X
- X1. Unshar all of the shars
- X
- X I do not put anything in shell archives that is intentionally
- X dangerous, but it is very, very unwise to unshar as root.
- X Unpack shell archives as an unprivileged user.
- X
- X Make a directory and cd into it. Use an unshar program
- X to extract all of the forty-odd parts of ECU and the three
- X or so parts of the manual. If you do not have unshar, it
- X may be quicker to find one than to extract ecu without it.
- X However, if you must, edit each shar and remove all lines
- X prior to #!/bin/sh and then feed each file to /bin/sh, like
- X
- X /bin/sh < part
- X
- X2. Type ./Configure
- X
- X This procedure builds Makefiles for ECU specific to your
- X system.
- X
- X You must have your native compiler available for this.
- X If it unavailable and you have gcc, you can TRY:
- X gcc -fwritable-strings -fpcc-struct-return -o config config.c
- X ./config
- X If you are running *SCO UNIX*, add -DM_UNIX to the above gcc line.
- X This alternate procedure is not guaranteed to work with future
- X patchlevels and releases (There will always be a way to do it,
- X but I very likely will be counting on SCO MSC M_... predefines more
- X and more).
- X
- X3. Configure will compile and run config.
- X
- X Answer the questions. If you are using a supported system,
- X answering the few simple questions is all that is necessary
- X to produce a usable configuration. (If you are trying to
- X port it, make your best guess, hack the Makefiles and sources
- X and send them to me with your patches.)
- X
- X You will be asked the system type. Respond accroding to
- X the following table:
- X
- X System | Type
- X ----------------------------------+------------
- X SCO UNIX (any version) | s
- X SCO ODT (any version) |
- X SCO XENIX (2.0.6 or later |
- X ----------------------------------+------------
- X ISC 386/ix (2.2 or later) | i
- X ----------------------------------+------------
- X SunOS (4.1.1 or later) | S
- X ----------------------------------+------------
- X ISC SVR4 | I
- X ----------------------------------+------------
- X ESIX SVR4 | E
- X
- X
- X If you answer SCO, you are asked which variety: XENIX/286,
- X XENIX/386 or UNIX/386 prior to 3.2v4, or UNIX/386 3.2v4.
- X
- X Provided you did not opt for XENIX/286, you will be asked if
- X you want to use the native cc or gcc.
- X
- X If you ask for gcc, you'll be asked if you have gcc 1.40 or
- X not. An obscure minor bug in 1.39 was fixed in 1.40 and
- X it amounts to little effect as of this writing. Answering
- X no is safe, but future patches make make better use of the
- X configuration information.
- X
- X You will be asked for a default tty line, baud rate and parity.
- X The default for the default tty is system dependent. The
- X defaults for baud rate and parity is 9600 and none. You may
- X override these with your personal preferences.
- X
- X You will be asked for the directory to install ECU and friends.
- X library. The default is /usr/local/bin. If the directory
- X does not exist, the install procedure will attempt to make it.
- X
- X You will be asked for the directory to use for a private ecu
- X library. The default is /usr/local/lib/ecu. If the directory
- X does not exist, the install procedure will attempt to make it.
- X
- X The config program will thank you (;->) and then build Makefiles
- X from the Make.src files in each appropriate subdirectory.
- X
- X If you are porting to a new system, you will want
- X to examine and modify the Makefiles before proceeding.
- X
- X5. The configure script suggests you "make depend". This is
- X unnecessary if you are building ECU for the first time. Also,
- X most patches will require you to rerun Configure. Each time you
- X reconfigure the software, it is automatically completely remade
- X when you next run make. Only if you anticipate making changes to
- X the software is "make depend" necessary to ensure the code is
- X properly made.
- X
- X6. Type 'make'. Wait and watch a while. This is a good time to
- X be reading over doc/ecu.man and various READMEs.
- X There are a great number of new features. There are
- X few incompatibilites ("I hate 'em"). The file HISTORY
- X has some note on every change made since 3.16. Unfortunately,
- X HISTORY also contains technical/historical information of no
- X interest.
- X
- X7. Su to root, if not already there, and type 'make install'.
- X
- X8. The default models/funckeymap is copied to the ECU library
- X as part of installing the program. You will probably need
- X to study and modify this file if you plan to use a console
- X (user tty) other than the native console of your system.
- X
- X9. You must, as root, chmod +rwx your uucp locks directory. In
- X addition, if you are on a machine which ecuungetty does not
- X support, you must, as root, chmod +rw all tty lines used by ecu.
- X As of this writing, SCO operating systems are the only platform
- X which ecuungetty supports. The 'make install' does not do the
- X chmods, because *you* should make the informed choice to do it.
- X
- X10. The gendial subdirectory contains some rigorous, yet
- X experimental, SCO dialer programs for use with ecu, cu and uucico.
- X They are currently undocumented and "as-is." I have used each
- X of them successfully at one time or another, but some have been
- X modified since they were last proven to work.
- X
- X I use the T2500, Microcom 9624 and USR 2400 entry all the time.
- X
- X Make sure you like the modem options before using one of these
- X dialers. In particular, I enable remote access to Telebits.
- X
- X11. Make neat removes many temporary files that tend
- X to accumulate over time. No make targets are removed.
- X Make clean runs make neat and also removes all .o files.
- X Make clobber runs make clean and also removes executables.
- X
- X--------------------------------------------------------------------
- XNotes:
- X
- X1. KERMIT:
- X
- XC-Kermit 5 (as of version 5A(179)) directly supports ECU's needs.
- XC-Kermit 5 is in beta testing as of this writing and appears to
- Xbe in excellent shape. You will need a ~/.kermrc to set up the
- Xdesired characteristics. I use:
- X
- Xset block 3
- Xset win 3
- Xset send packet-l 2048
- Xset receive packet-l 2048
- Xset file name literal
- Xset file type bin
- Xshow
- X
- X2. SELECT(S) and CFLAGS "WORKING_SELECT"
- X
- XECU uses select() where possible for two purposes:
- X1. wait on a tty (comm line) read with timeout -and-
- X2. timeout (nap replacement).
- X
- XIf you have a working select, use -DWORKING_SELECT.
- XThe Configure procedure does the job for you for systems I know about.
- X
- XSCO XENIX V/386 Release 2.3.1 (and evidently 2.3.2) have a
- Xbroken-dead, yet fixable, BSD-style select() feature. Also,
- Xselect() is missing from libc.a. While ecu does not *require*
- Xselect(S), it is much more efficient to use it. The x386sel
- Xsubdirectory in this release has information (thanks to
- Xcsch@netcs, ivar@acc, and ag@elgar) on how to fix the kernel and
- Xto add select() to libc.a. You'll have to add WORKING_SELECT to
- Xconfig.local if you do this.
- X
- XSelect(S) is fully functional in SCO UNIX 3.2.0. I am unsure of ODT
- X1.0/UNIX 3.2.1. It is broken in ODT 1.1/UNIX 3.2v2. It does work
- Xin 3.2v4/ODT 2.0.
- X
- XI found it in /usr/lib/libinet.a on the ISC system I used to
- Xcompile for ISC. It works fine there. I automatically put
- XWORKING_SELECT into the Makefile.
- X
- XIt works fine on the Sun and SVR4, naturally.
- X
- X3. SCO MULTISCREEN BUG
- X
- XThere has been a bug in the multiscreen driver for some time
- Xwherein a MEDIA COPY (screen dump) sequence ("ESC [ 2 i") leaves
- Xthe "ESC [ 2" part "active". When a screen dump (Cursor 5)
- Xcommand is given, I do the sacreen dump, then send a "l" to the
- Xscreen to work around the bug ("ESC 2 [ l" unlocks the keyboard,
- Xessentially a no-op). If and when it gets fixed, you'll see an
- X"l" show up on your screen after a screen dump sequence. To fix
- Xthis, comment out the
- X#define MULTISCREEN_DUMP_BUG
- Xat the top of ecuscrdump.c.
- X
- XThe bug remains in place for every SCO product from XENIX 2.0.6
- Xthrough UNIX 3.2v4. It is a minor nuisance and there are a great
- Xmany other things they have fixed/improved in these years that
- Xwere much more important.
- X
- XNote that from multiscreens, screen dump produces a dump of the
- Xactual screen contents, including ecu-generated output. When
- Xusing a non-multiscreen terminal, screen dump dumps only the
- Xshared memory virtual screen as received from the host.
- X
- XIf, at a multiscreen, you wish a screen dump free of ecu output
- X"pollution," use Shift-Tab (BkTab) to redraw the screen, then
- Xperform the screen dump. If you are not on a multiscreen, then the
- Xscreen dump comes from the (sometimes inexact) screen memory
- Xrepresentation and this step is not necessary.
- X
- X4. GCC
- X
- XIn case you didn't know, GCC is a great C compiler. It generates
- Xexcellent code and gives excellent diagnostics and warnings.
- XThere are more options available than for a Coup de Ville, so you
- Xhave to be careful if you get too fancy. I should know -- I
- Xthink I may have done it. With Configure and config.c, I have
- Xtried to choose the best option set for ECU and it's utilities.
- XIf you want to play around, you can place GCC_EXTRA_CFLAGS
- Xdefinitions in a config.local file and experiment away.
- X
- XI tried -pedantic and -ansi under SCO, but there are just too many
- Xcomplaints about the development system heaader files:
- X
- X 1. #ident not allowed in ANSI C (boo hiss on ANSI <again>)
- X 2. unterminated character constant in curses.h (an apostrophe
- X in a -comment- threw gcc for a loop)
- X 3. bit fields not unsigned in machdep.h
- X 4. blah etc. etc.
- X
- XI VERY reluctantly hacked my development system's header files so
- XI could exploit the more critical error checking, but I do not
- Xrecommend you do it for purposes of making ECU. Hopefully since
- XI have done it and fixed what gcc reported, you don't have to.
- X
- XOn the Sun, you cannot use -ansi because of the whole way ioctl
- X2nd parameter defines are built (I refuse to demand you run gcc's
- Xfixincludes to use my software). Compilation proceeds with no
- Xerror, but few if any of your ioctls will work. Also, with
- X-pedantic, you get one hundred gazillion complaints about text
- Xafter #else and #endif. I hacked my compiler to omit that one
- Xpedantic complaint and made a test run with -ansi and -pedantic.
- XAs of version 3.15, I get no other warnings outside of some
- Xfunkiness in va_args. With that exercise complete, I bid -ansi
- Xand -pedantic adieu for a while with a good feeling about the
- Xfuture should the ANSI KGB actually seize real power in Cyberdom.
- X
- XGcc's idea of prototype validity is just too much for me. With
- XMSC ANSI, prototype arguments are tested at *reference* time not
- X*definition* time. Thus with MSC it is convenient to define a
- Xfile with all the prototypes in it and include it everywhere. To
- Xdo that with gcc, you'd have to include *every* header file you
- Xever use just to make sure structs and types referred to are
- Xdefined.
- X
- XOther than all this, the code fares pretty well with -ansi
- X-pedantic I guess I am just not prepared for all the various
- Xflavors of "ANSI" yet ... and they grow more numerous ... and
- Xthe throathold tightens on venerable code.
- X
- XWith the warnings I have enabled, you may get warnings about
- Xvariables possibly clobbered by longjmp. Worry not. You may get
- Xwarnings about /* in comments, but they will be from system
- Xheader files, not my code :-).
- X
- XI have used gcc 1.40, 2.1 and 2.2.2 to compile ecu on SunOS and
- XSCO UNIX.
- X
- X5. XTERMS
- X
- XIf you are using an xterm to run ecu,
- X
- X1. the maximum geometry is 80x43
- X2. 4014 emulation is untested
- X3. you should use the following resources:
- X
- XXTerm*titeInhibit: true # enable screen clear functions normally
- XXTerm*curses: true # curses bug fix
- X
- XIf titeInhibit fails to work (some versions which use terminfo as
- Xtheir basis do fail), then remove the ti and te entries from
- X/etc/termcap.
- X
- XThe file models/funckeymap has keyboard definitions for a number
- Xof xterm implementations. Use kbdtest3 to determine what key
- Xsequences are generated by each function key. If a key produces
- Xno output or ambiguous output (Home and End both produce the same
- Xsequence), use xev to determine the keysym associated with the
- Xkeys in question. Use xmodmap to map the keys to unique
- Xsequences. For instance, on the SunOS MIT server, IPX key
- Xpresses of Home and End produce:
- X
- XHome:
- XKeyPress event, serial 13, synthetic NO, window 0xd00001,
- X root 0x8006d, subw 0x0, time 2225786294, (124,70), root:(385,331),
- X state 0x0, keycode 75 (keysym 0xffd8, F27), same_screen YES,
- X ^^^
- X |
- X `--- name to use with xmodmap
- X XLookupString gives 0 characters: ""
- X
- XEnd:
- XKeyPress event, serial 15, synthetic NO, window 0xd00001,
- X root 0x8006d, subw 0x0, time 2225787104, (124,70), root:(385,331),
- X state 0x0, keycode 119 (keysym 0xffde, R13), same_screen YES,
- X ^^^
- X |
- X `-- name to use with xmodmap
- X XLookupString gives 0 characters: ""
- X
- XThen, choose unique strings to map the keys to. I generally use
- Xthe SCO function key sequences (described in the very first entry
- Xin the distribution model/funckeymap). Construct XTerm translations
- Xfor the chosen sequences. An example for Home (F27) and End (R13)
- Xis shown below.
- X
- XXTerm*VT100*Translations: #override\
- X <Key>F27: string(0x1b) string("[H") \n \
- X <Key>R13: string(0x1b) string("[F") \n \
- X Shift<Key>Tab: string(0x1b) string("[Z")
- X
- XIncluded in the above is a mapping for "backwards Tab," Shift Tab.
- XMost servers map Shift Tab to generate the same as unshifted Tab
- X(or not mapped at all).
- X
- XRun kbdtest3 and see if all keys now produce a unique sequence.
- XIf not, repeat the above process until you have each key producing
- Xa unique sequence.
- X
- XSometimes, you just won't be able to get a particular key to work.
- XFor instance, one X server I used refused to generate an event for
- XShift Keypad 5 (Shift<Key>KP_5). In these cases, you will have to
- Xchoose another key, perhaps a higher numbered function key. Likewise,
- Xif you are using a keyboard unaffected by the True Blue Path,
- Xyou may not have a key marked "Home" or "End" (I pity you :-> heh):
- Xchoose a replacement you are unlikely to need otherwise.
- X
- X6. SCO UNIX MEMMOVE() AND GCC
- X
- XUse of memmove has been eliminated. See memmove/README for some
- Xhistory.
- X
- X7. FAS/i
- X
- XFor the brave, an instrumented version of FAS 2.08 is included
- Xwith this release for those who need driver instrumentation at
- Xthe cost of performance and portability. It is not supported (Do
- XNot Contact Uwe Doering). I am not at all interested in starting
- Xa new tty faction. Uwe has done a brilliant job of striking a
- Xbalance between compatibility and performance. I only name this
- Xthing FAS/i to show the derivation from FAS while marking it as
- Xdifferent.
- X
- X8. EXCEL LOGFILE INTERFACE
- X
- XThe excel logfile utility posted to comp.sources.misc for ECU 3.0
- Xremains compatible with this release of ECU.
- X
- X9. KBDTEST3
- X
- XThis program is included to help you inspect your keyboard for
- Xmaking funckeymap entries or for preparing you to ask for help
- Xfrom me in getting your keyboard functional.
- X
- X cc -o kbdtest3 kbdtest.c
- X run it, following the instructions
- X
- XOnce you have installed a new funckeymap, the ECU interactive
- Xcommand "kbdtest" may assist in verifying it works.
- X
- XI would appreciate your mailing me the output file (kbdtest3.out)
- Xfrom each keyboard you try out regardless of what you do otherwise
- X(if your keyboard is not a SCO multiscreen or ISC virtual console).
- XThis will assist me in making funckeymap entries for futures
- Xreleases.
- X
- X-------------------------------------------------------------------------
- XThis program, it sources, objects and utilities are placed in the
- Xpublic domain.
- X
- XWarren H. Tucker wht@n4hgf.Mt-Park.GA.US {gatech,emory}!n4hgf!wht
- XTuckerWare (404)587-5766
- X150 West Lake Drive
- XRoswell, GA 30075
- SHAR_EOF
- chmod 0644 README ||
- echo 'restore of README failed'
- Wc_c="`wc -c < 'README'`"
- test 23554 -eq "$Wc_c" ||
- echo 'README: original size 23554, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= README.3.00 ==============
- if test -f 'README.3.00' -a X"$1" != X"-c"; then
- echo 'x - skipping README.3.00 (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting README.3.00 (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'README.3.00' &&
- XNOTE TO PRE-REVISION-3 USERS:
- X
- XThere have been *MANY* changes to ecu since revision 2.8. It is
- Xworth re-reading this file and *at least* the table of contents of
- Xthe manual to see what's changed. No effort has been spared to
- Xremain compatible with the previous version, but some changes
- Xwere necessary.
- X
- XNotably, your pre rev-3 ~/.ecu/phone file must have a special
- Xline added manually to the top of it: #ECUPHONE. See
- Xmodels/phone for an example.
- X
- XIn general:
- X
- X $i0 = 5
- X whilei $i0 != 0
- X {
- X do 'read-new-man'
- X ifs %logname != 'confused'
- X break
- X $i0 = $i0 - 1
- X }
- X ifs %logname == 'confused'
- X system 'mail -s help wht@n4hgf.Mt-Park.GA.US < flame.txt'
- X
- SHAR_EOF
- chmod 0644 README.3.00 ||
- echo 'restore of README.3.00 failed'
- Wc_c="`wc -c < 'README.3.00'`"
- test 702 -eq "$Wc_c" ||
- echo 'README.3.00: original size 702, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= README.3.10 ==============
- if test -f 'README.3.10' -a X"$1" != X"-c"; then
- echo 'x - skipping README.3.10 (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting README.3.10 (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'README.3.10' &&
- X
- XNOTE TO PRE-REVISION-3.10 USERS:
- X
- X1. If you have been using the ALT-a through ALT-z single-key procedure
- Xexecution, reread mapkeys/README.
- X
- X2. Termination of file transfers by SIGINT did not cause termination
- Xof procedfure execution in pre-3.10 versions. In this version, it does.
- X
- X3. Several files that previously had to reside in ~/.ecu now may have
- Xsystem wide defaults in the ECU library directory (/usr/local/lib/ecu).
- X
- SHAR_EOF
- chmod 0644 README.3.10 ||
- echo 'restore of README.3.10 failed'
- Wc_c="`wc -c < 'README.3.10'`"
- test 427 -eq "$Wc_c" ||
- echo 'README.3.10: original size 427, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= README.3.20 ==============
- if test -f 'README.3.20' -a X"$1" != X"-c"; then
- echo 'x - skipping README.3.20 (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting README.3.20 (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'README.3.20' &&
- X
- XNOTE TO PRE-REVISION-3.20 USERS:
- X
- X1. The functionality of the "nonansikeys" file is now provided by
- Xthe "funckeymap" file. Convesrion may be as simple as renaming
- Xthe file. However, there are differences.
- X
- X o You must have a ~/.ecu/funckeymap file (and/or one in the library
- X directory)
- X
- X2. Termination of file transfers by SIGINT did not cause termination
- Xof procedfure execution in pre-3.10 versions. In this version, it does.
- X
- X3. Several files that previously had to reside in ~/.ecu now may have
- Xsystem wide defaults in the ECU library directory (/usr/local/lib/ecu).
- X
- X4. Starting with 3.20, all keyboards must have a funckeymap entry
- X(see README.KEYBRD) matching the terminal type of the executing
- Xscreen. Previous versions assumed terminal type "ansi"
- Xindicated an SCO AT-attached keyboard as part of a multiscreen.
- XOther terminal types required a similar entry in a file named
- Xnonansikeys. Converting preexisting nonansikeys files to
- Xfunckeymaps files can be accomplished by merely renaming the file.
- XIf you are an SCO user, you must also add one entry to the new file
- Xif it is not already there (the old models/nonansikeys did in
- Xfact contain the required entry). See README.KEYBRD for further
- Xdetail.
- SHAR_EOF
- chmod 0644 README.3.20 ||
- echo 'restore of README.3.20 failed'
- Wc_c="`wc -c < 'README.3.20'`"
- test 1221 -eq "$Wc_c" ||
- echo 'README.3.20: original size 1221, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= README.DEBUG ==============
- if test -f 'README.DEBUG' -a X"$1" != X"-c"; then
- echo 'x - skipping README.DEBUG (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting README.DEBUG (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'README.DEBUG' &&
- XIf you are interested in very verbose debugging help
- Xwhen porting ecu or diagnosing a problem with line selection,
- Xlocking, utmp or ecuungetty, try compiling with
- X
- X -DECUUNGETTY_DEBUG -DECUUNGETTY_CHOWN -DSHARE_DEBUG -DCHOOSE_DEBUG
- X
- XThe majority of the logic tested by this debug suite currently
- Xworks only on SCO UNIX 3.2.0->3.2v2 and most SCO XENIX.
- X
- XThe log file for a simple session appears below.
- X
- X05-10-1992-08:48-26728-hdb_choose_Any baud=9600 current line=''
- X05-10-1992-08:48-26728-must pick new line utmpst=0 lerr=0
- X05-10-1992-08:48-26728-getdvbaud looking for 9600 baud
- X05-10-1992-08:48-26728-getdvbaud returning tty2b
- X05-10-1992-08:48-26728-ISLOCK /usr/spool/uucp/LCK..tty2b status=0 errno=2
- X05-10-1992-08:48-26728-ISLOCK /usr/spool/uucp/LCK..tty2b status=0 errno=2
- X05-10-1992-08:48-26728-UTMP uugetty:u2B:tty2B:26692:101
- X05-10-1992-08:48-26728-CHOOSEANY chose tty2b
- X05-10-1992-08:48-26728-copy_pde trial=0 Lline='/dev/tty2b' pdetty='2b'
- X05-10-1992-08:48-26728-choose_tty_for_pde '2b' 9600
- X05-10-1992-08:48-26728-ISLOCK /usr/spool/uucp/LCK..tty2b status=0 errno=2
- X05-10-1992-08:48-26728-ISLOCK /usr/spool/uucp/LCK..tty2b status=0 errno=2
- X05-10-1992-08:48-26728-UTMP uugetty:u2B:tty2B:26692:101
- XECUUNGET-26728-(26739) ISLOCK /usr/spool/uucp/LCK..tty2b status=0 errno=2
- XECUUNGET-26728-(26739) ISLOCK /usr/spool/uucp/LCK..tty2b status=0 errno=2
- XECUUNGET-26728-(26739) UTMP uugetty:u2B:tty2B:26692
- XECUUNGET-26728-(26739) -g utmp status=101
- XECUUNGET-26728-(26739) /dev/tty2b b000021382a exit code 1
- X05-10-1992-08:48-26728-UNGETTY acquired /dev/tty2b
- X05-10-1992-08:48-26728-UTMPCHK /dev/tty2b st=0 ut=101
- X05-10-1992-08:48-26728-CRLOCK /usr/spool/uucp/LCK..tty2b status=0 errno=Error 0
- X05-10-1992-08:48-26728-LOCKTTY /dev/tty2b status 0 errno=Error 0
- X05-10-1992-08:48-26728-ISLOCK /usr/spool/uucp/LCK..tty2b status=-11 errno=0
- X05-10-1992-08:48-26728-UTMP uugetty:u2B:tty2B:26692:104
- X05-10-1992-08:48-26728-UTMPCHK /dev/tty2b st=-11 ut=104
- X05-10-1992-08:48-26728-ISLOCK /usr/spool/uucp/LCK..tty2b status=-11 errno=0
- X05-10-1992-08:48-26728-lclose Liofd=-1 Lline=/dev/tty2b line_lock_status=-11
- X05-10-1992-08:48-26728-choose_tty_for_pde rtn=1 line='/dev/tty2b' errmsg='' itmp=-11
- X05-10-1992-08:48-26728-copy_pde 2 Lline='/dev/tty2b' reopen=1
- X05-10-1992-08:48-26728-ISLOCK /usr/spool/uucp/LCK..tty2b status=-11 errno=0
- X05-10-1992-08:48-26728-lopen Liofd=-1 Lline=/dev/tty2b line_lock_status=-11
- X05-10-1992-08:48-26728-ISLOCK /usr/spool/uucp/LCK..tty2b status=-11 errno=0
- X05-10-1992-08:48-26728-UTMP uugetty:u2B:tty2B:26692:104
- X05-10-1992-08:48-26728-UTMPCHK /dev/tty2b st=-11 ut=104
- X05-10-1992-08:48-26728-LOCKTTY /dev/tty2b status 0 errno=Permission denied
- X05-10-1992-08:48-26728-getdvline looking for tty2b
- X05-10-1992-08:48-26728-getdvline tty2b found
- X
- X05-10-1992-08:48-26728-UUCPDIAL /usr/lib/uucp/dialgT2500 4269068P exit status0x8200
- X05-10-1992-08:48-26728-ISLOCK /usr/spool/uucp/LCK..tty2b status=-11 errno=0
- X05-10-1992-08:48-26728-lclose Liofd=3 Lline=/dev/tty2b line_lock_status=-11
- XECUUNGET-26728-(26742) ISLOCK /usr/spool/uucp/LCK..tty2b status=-11 errno=0
- XECUUNGET-26728-(26742) UTMP uugetty:u2B:tty2B:26692
- XECUUNGET-26728-(26742) -t utmp status=104
- XECUUNGET-26728-(26742) -t /dev/tty2b b000021382a exit code 1
- X05-10-1992-08:48-26728-UNGETTY -t /dev/tty2b status 0100
- XECUUNGET-26728-(26743) ISLOCK /usr/spool/uucp/LCK..tty2b status=-11 errno=0
- XECUUNGET-26728-(26743) UTMP uugetty:u2B:tty2B:26692
- XECUUNGET-26728-(26743) -r utmp status=104
- XECUUNGET-26728-(26743) -r /dev/tty2b b000021382a exit code 0
- X05-10-1992-08:48-26728-UNGETTY returned /dev/tty2b
- SHAR_EOF
- chmod 0644 README.DEBUG ||
- echo 'restore of README.DEBUG failed'
- Wc_c="`wc -c < 'README.DEBUG'`"
- test 3562 -eq "$Wc_c" ||
- echo 'README.DEBUG: original size 3562, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= README.FUNCKEY ==============
- if test -f 'README.FUNCKEY' -a X"$1" != X"-c"; then
- echo 'x - skipping README.FUNCKEY (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting README.FUNCKEY (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'README.FUNCKEY' &&
- XMost function keys consist of multi-character sequences starting
- Xwith ESCape. How long do you wait after seeing an ESC before you
- Xdecide the key is an "ESCape" and not the first character of a
- Xfunction key sequence? Not very long, huh? But what if the
- Xsource may be an xterm, a serial line, a telnet/rlogin network
- Xconnection, or even a radio packet TNC. The ESC could arrive a
- Xlong time before the next character in a sequence. There is no
- Xsingle answer. I try to do what I can to guess, but you may want
- Xto play with the 'eto' interactive command to diddle the timeout.
- XDon't make the timeout too short or ECU won't recognize the HOME
- Xkey and you'll have to go somewhere and kill ECU from another
- Xterminal.
- X
- XFunction keys work fairly well so long as you
- Xfollow these suggestions (feel free to experiment with each to
- Xsee if they are appropriate for your keyboard):
- X
- X1. After pressing ESCape, expect a delay before it is processed.
- XWait for a second or so before pressing any other keys:
- X
- X2. Don't press and hold ESC or extended keys (avoid auto-repeat).
- X
- X3. After pressing a key you think should be accepted, if you hear
- Xa bell or if nothing happens, wait a half a second or so and try
- Xthe key again.
- X
- XGreater magicians than me have trouble in this area and many
- Xhigh class programs don't get it right either. I've lost a
- Xgreat deal of sleep over this one. Maybe it is stable now.
- X
- XStarting with 3.20, all keyboards must have a funckeymap entry
- X(see README.KEYBRD) matching the terminal type of the executing
- Xscreen. Previous versions assumed terminal type "ansi"
- Xindicated an SCO AT-attached keyboard as part of a multiscreen.
- XOther terminal types required a similar entry in a file named
- Xnonansikeys. Converting preexisting nonansikeys files to
- Xfunckeymaps files can be accomplished by merely renaming the file.
- XIf you are an SCO user, you must also add one entry to the new file
- Xif it is not already there (the old models/nonansikeys did in
- Xfact contain the required entry). See README.KEYBRD for further
- Xdetail.
- SHAR_EOF
- chmod 0644 README.FUNCKEY ||
- echo 'restore of README.FUNCKEY failed'
- Wc_c="`wc -c < 'README.FUNCKEY'`"
- test 2028 -eq "$Wc_c" ||
- echo 'README.FUNCKEY: original size 2028, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= README.GENDIAL ==============
- if test -f 'README.GENDIAL' -a X"$1" != X"-c"; then
- echo 'x - skipping README.GENDIAL (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting README.GENDIAL (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'README.GENDIAL' &&
- XThis is a schematic hint to delvers and hackers:
- X
- XGendial UUCP dialers can be used by ECU alongside a non-SCO
- XUUCP package by using extra Devices entries. uucico continues
- Xto use Dialers facilities familiar to it. ECU can use the
- Xmore flexible/robust C programs.
- X
- X#/etc/uucp/Devices or wherever
- X# normal entry
- XACU ttya - 19200 t3000
- X# extra entry
- XECUt3000 ttya - 110-34000 /usr/local/lib/ecu/dialgT3000
- X
- XThen, use '=ECUt3000' instead of 'ttya' for the device
- X
- X.--[ dialing directory ]-- /u1/wht/.ecu/phone ---------------------------------.
- X| entry name | telephone number | tty | baud P | description |
- X| ....... | 1(...)...-.... |2b |19200 N | ....... .... ...... |
- X| al.--[ entry: cis-help ]---------------------------------------. |
- X| cc| | |
- X| ch| telephone number 1(800)848-4480V | |
- X| ch| device =ECUt3000______ | |
- X| ci| baud rate 9600 |..... .... |
- X| ci| parity E |...... .... |
- X| ci| description CIS Help 74,74 + NETWORK |..... .... |
- X| ci| debug level 0 (dialer -x value 0-9) |. ...... .. |
- X| co| DCD watch t |..... .... |
- X| dr| | |
- X| em| Enter tty (e.g. 1a), Any or [=/]Devices-type | |
- X| em| ESC: exit END: finish ^U: erase ^B: back TAB: fwd | |
- X| gs`------------------------------------------------------------' |
- X| .. | ...-.... |Any | 2400 E | |
- X+------------------------------------------------------------------------------+
- X| |
- X| |
- X`------------------------------------------------------------------------------'
- X
- X
- SHAR_EOF
- chmod 0644 README.GENDIAL ||
- echo 'restore of README.GENDIAL failed'
- Wc_c="`wc -c < 'README.GENDIAL'`"
- test 2165 -eq "$Wc_c" ||
- echo 'README.GENDIAL: original size 2165, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= README.KEYBRD ==============
- if test -f 'README.KEYBRD' -a X"$1" != X"-c"; then
- echo 'x - skipping README.KEYBRD (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting README.KEYBRD (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'README.KEYBRD' &&
- XECU 3.20 presents itself to the world by default as a much
- Xbetter clone of an SCO multiscreen terminal than ever before.
- X
- XThis includes
- X video display control and
- X key codes emitted by pressed function keys
- X
- XIn addition, many MS-DOS video control sequences are supported.
- X
- XThese features are described in tedious detail in the manual. What is
- Xmissing from the manual -- and what this README attempts to
- Xdescribe -- is how ECU keyboard management really looks from the
- Xmacro perspective.
- X
- XKeyboard management is divided into two parts:
- X
- X o Function key recognition
- X o Function key action
- X
- XFunction key recognition means detecting function key presses
- Xin the ecu keyboard input stream. This is controlled by the
- X~/.ecu/funckeymap file.
- X
- XFunction key action means what ecu does with a function key once
- Xit gets it. This is controlled by the ~/.ecu/keys file.
- X
- XFunction Key Recognition
- X------------------------
- X
- XYou have to use funckeymap entries to get ecu to recognize the
- Xfunction keys. Pre-3.20 users take note: funckeymaps serves the
- Xpurpose previously handled by ~/.ecu/nonansikeys. This is a rare
- Xbackward compatibility problem (the 2nd in ECU history).
- XStarting with 3.20, SCO multiscreens require an entry, whereas
- Xearlier versions had multiscreen support built in. The TERM name
- Xfor SCO multiscreens is "ansi", hence the name "nonansikeys". I
- Xthink you'll agree the new name is more appropriate.
- X
- XIf ~/.ecu/funckeymap does not exist, ECU searches for a file
- Xby the same name in the library directory, usually /usr/local/lib/ecu).
- X
- XAt startup,
- XECU selects an entry in ~/.ecu/funckeymap whose label matches
- Xthe terminal type of the executing screen (the TERM environment
- Xvariable). If ecu is started
- Xnon-conversationally (/dev/null for stdin), this is not done.
- XThe environment variable ECUFUNCKEY, if found, overrides the
- XTERM variable for funckeymap keyboard management only. TERM is always
- Xused for identifying the display.
- X
- XSee the manual sections titled "Supported Terminals" thru "Line Editing".
- XThere are some additional notes in the distribution file
- Xmodels/funckeymap. Please forgive any conflicts. I can only
- Xtype so fast and the code gets priority.
- X
- XAn example entry for an SCO multiscreen console:
- X
- X#+-------------------------------------------------------------------
- X# SCO multiscreen ($TERM=ansi)
- X#--------------------------------------------------------------------
- Xansi
- Xansi43
- Xsco
- X F1:F1: esc [ M
- X F2:F2: esc [ N
- X F3:F3: esc [ O
- X F4:F4: esc [ P
- X F5:F5: esc [ Q
- X F6:F6: esc [ R
- X F7:F7: esc [ S
- X F8:F8: esc [ T
- X F9:F9: esc [ U
- X F10:F10: esc [ V
- X F11:F11: esc [ W
- X F12:F12: esc [ X
- X Home:Home: esc [ H
- X End:End: esc [ F
- X PgUp:PgUp: esc [ I
- X PgDn:PgDn: esc [ G
- X CUU:CUU: esc [ A
- X CUL:CUL: esc [ D
- X CU5:CU5: esc [ E
- X CUR:CUR: esc [ C
- X CUD:CUD: esc [ B
- X Ins:Ins: esc [ L
- X BkTab:BackTab: esc [ Z
- X
- XECU tries to support any "reasonable" video terminal as an ECU
- Xconsole. Video differences are handled by curses and
- Xtermcap/terminfo. The keyboard is normalized with funckeymap.
- XHopefully, someone has already constructed a funckeymap entry for
- Xyour keyboard. If not, you must construct one.
- X
- XFor this, make several experiments with kbdtest3.
- XStart a terminal session in the ecu distribution directory
- Xand run kbdtest3 (assuming it has been made).
- XKbdtest3 will prompt you to press each function key in return.
- XThe program is generally self-explanatory, but some notes are
- Xworthy of note:
- X
- X o If it asks you for a key not on your keyboard, pick some
- X reasonable alternate
- X
- X o If you simply cannot find an alternate, you will have to type
- X a slash ('/') to signify no key choice exists.
- X
- X o If you are on an xterm, you may get spurious or no response
- X for the "unusual" keys like Home and End. Just type a
- X slash for the time being and go on. When you are finished,
- X re-read the manual section titled "Function Key Mapping
- X (Recognition)". There are also some notes in models/funckeymap.
- X There are guidelines in there for using xmodmap to achieve
- X reasonable X mapping for spurious or dead keys.
- X A notorious example is the xterm shift-Tab that generates
- X the single character sequence 0x09 just like the tab key does.
- X
- X XTerm*VT100*Translations: #override\
- X Shift <Key>Tab: string(0x1b) string("[Z") \n \
- X
- X in ~/.Xdefaults takes care of this.
- X
- XRepeat the kbdtest3 and hackery exercises until you have an
- Xacceptable entry. Acceptable means a working key for each of
- Xecu's 23 function keys where each key produces a
- Xunique key sequence.
- X
- XKbdtest3 writes funckeymap entries to ./kbdtest3.out. When you
- Xedit the file, you will see the results of each kbdtest3
- Xrun appended one after the other. Presumabaly you quit using kbdtest3
- Xwhen you were satisfied, so skip to the bottom of the file and examine the
- Xlast entry. If it looks good, cut that section out and put
- Xit in ~/.ecu/funckeys. Also, -*PLEASE*- send it to wht@n4hgf.Mt-Park.GA.US
- Xso I can archive it. Include the environment details
- Xsuch as "Wyse 232XKQ Rom revision 2.3" or "Pluton 9001 console
- Xunder RiskOs 1.4".
- X
- XNow ecu can recognize your function keys and map them to internal
- Xvalues. Command screens needing up and down arrows, insert and
- Xso forth will work.
- X
- XFunction Key Actions
- X--------------------
- X
- XFunction key actions are determined by ecu program code when
- Xyou are executing ecu interactive commands. When you are
- Xin the interactive mode, keyboard actions are governed by
- Xstartup definitions or ~/.keys actions. These are described
- Xin the manual section titled "Function Key Actions", but a
- Xfew quick notes here might serve well:
- X
- X o startup default actions
- X All of the 23 function keys save 2 are preset to generate
- X the same sequence they would on an SCO. See the manual
- X subsection "Standard Function Keys" for a list
- X The 'Home' and 'Cursor 5' keys have reserved meanings
- X and may not be overriden.
- X
- X o ~/.keys and the interactive command fkey
- X You can override the defaults by loading a custom keyset
- X you have placed in ~/.fkeys. The interactive command
- X fkey may be explicitly used to load a keyset.
- X If you use a logical dialing directory name to connect
- X to a remote and ~/.keys has an entry whose name (sometimes
- X called the label) matches the directory entry name, ECU
- X will load the ~/.keys entry automatically.
- X See "Standard Function Keys" for details.
- X
- SHAR_EOF
- chmod 0644 README.KEYBRD ||
- echo 'restore of README.KEYBRD failed'
- Wc_c="`wc -c < 'README.KEYBRD'`"
- test 6660 -eq "$Wc_c" ||
- echo 'README.KEYBRD: original size 6660, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= README.OPENWIN ==============
- if test -f 'README.OPENWIN' -a X"$1" != X"-c"; then
- echo 'x - skipping README.OPENWIN (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting README.OPENWIN (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'README.OPENWIN' &&
- XIf you are using Open Windows on a Sparc, try these hints:
- X
- XDate: Tue, 28 Apr 92 16:41:42 EDT
- XFrom: ifsbd!cma (Mark Ashton)
- XTo: n4hgf!wht
- XSubject: Key mapping for ecu in Openwin shelltool
- X
- XCreate a ~/.ttyswrc file containing the following:
- X
- Xmapi R7 \E[H
- Xmapi R9 \E[I
- Xmapi R11 \E[E
- Xmapi R13 \E[F
- Xmapi R15 \E[G
- Xmapi F1 \E[M
- Xmapi F2 \E[N
- Xmapi F3 \E[O
- Xmapi F4 \E[P
- Xmapi F5 \E[Q
- Xmapi F6 \E[R
- Xmapi F7 \E[S
- Xmapi F8 \E[T
- Xmapi F9 \E[U
- Xmapi F10 \E[V
- Xmapi F11 \E[W
- Xmapi F12 \E[X
- X
- XSee the shelltool man page for mention of .ttyswrc
- X
- XThen, add 'sun-cmd' to the ansi funckeymap
- X
- X F1:F1: esc [ M
- X F2:F2: esc [ N
- X F3:F3: esc [ O
- X F4:F4: esc [ P
- X F5:F5: esc [ Q
- X F6:F6: esc [ R
- X F7:F7: esc [ S
- X F8:F8: esc [ T
- X F9:F9: esc [ U
- X F10:F10: esc [ V
- X F11:F11: esc [ W
- X F12:F12: esc [ X
- X Home:Home: esc [ H
- X End:End: esc [ F
- X PgUp:PgUp: esc [ I
- X PgDn:PgDn: esc [ G
- X CUU:CUU: esc [ A
- X CUL:CUL: esc [ D
- X CU5:CU5: esc [ E
- X CUR:CUR: esc [ C
- X CUD:CUD: esc [ B
- X Ins:Ins: esc [ L
- X BkTab:BackTab: esc [ Z
- X
- SHAR_EOF
- chmod 0644 README.OPENWIN ||
- echo 'restore of README.OPENWIN failed'
- Wc_c="`wc -c < 'README.OPENWIN'`"
- test 1231 -eq "$Wc_c" ||
- echo 'README.OPENWIN: original size 1231, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= README.PATCHQA ==============
- if test -f 'README.PATCHQA' -a X"$1" != X"-c"; then
- echo 'x - skipping README.PATCHQA (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting README.PATCHQA (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'README.PATCHQA' &&
- XA very few have reported problems with applying patches. This
- Xis confusing, since I use a very strict procedure when making a patch.
- XEvery time I make a new patch, I always reapply each patch to a
- Xcopy of the original release to make a base line for the new
- Xdiff.
- X
- X3.10 --p1--> 3.11 --p2--> 3.12 --p3--> 3.15 \
- X --- diff -c --> p6
- X 3.16development /
- X
- XThen, I copy the 3.15 to a 3.15copy directory and apply the new patch 6
- Xto it.
- X
- X3.15copy --new p6--> 3.16suspect \
- X ------- diff -c --> should produce nothing
- X 3.16development /
- X
- X
- SHAR_EOF
- chmod 0644 README.PATCHQA ||
- echo 'restore of README.PATCHQA failed'
- Wc_c="`wc -c < 'README.PATCHQA'`"
- test 655 -eq "$Wc_c" ||
- echo 'README.PATCHQA: original size 655, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= README.Q-and-A ==============
- if test -f 'README.Q-and-A' -a X"$1" != X"-c"; then
- echo 'x - skipping README.Q-and-A (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting README.Q-and-A (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'README.Q-and-A' &&
- XOn Apr 29, 9:21, Clayton Haapala wrote:
- X>
- X> Warren Tucker writes:
- X> >
- X> > Your question inspired a new README, which I just sent to everyone.
- X> > Does this help any?
- X> >
- X> I run the same ecu binary from two different xterms. One is from the
- X> Sun3 console, the other from a DECstation 5000. I have built keymaps
- SHAR_EOF
- true || echo 'restore of README.Q-and-A failed'
- fi
- echo 'End of ecu320 part 1'
- echo 'File README.Q-and-A is continued in part 2'
- echo 2 > _shar_seq_.tmp
- exit 0
-
- exit 0 # Just in case...
-