📄 readme
字号:
support, you must, as root, chmod +rw all tty lines used by ecu. As of this writing, SCO operating systems are the only platform which ecuungetty supports. The 'make install' does not do the chmods, because *you* should make the informed choice to do it.10. The gendial subdirectory contains some rigorous, yet experimental, SCO dialer programs for use with ecu, cu and uucico. They are currently undocumented and "as-is." I have used each of them successfully at one time or another, but some have been modified since they were last proven to work. I use the T2500, Microcom 9624 and USR 2400 entry all the time. Make sure you like the modem options before using one of these dialers. In particular, I enable remote access to Telebits.11. Make neat removes many temporary files that tend to accumulate over time. No make targets are removed. Make clean runs make neat and also removes all .o files. Make clobber runs make clean and also removes executables.--------------------------------------------------------------------Notes:1. KERMIT:C-Kermit 5 (as of version 5A(179)) directly supports ECU's needs.C-Kermit 5 is in beta testing as of this writing and appears tobe in excellent shape. You will need a ~/.kermrc to set up thedesired characteristics. I use:set block 3set win 3set send packet-l 2048set receive packet-l 2048set file name literalset file type binshow2. SELECT(S) and CFLAGS "WORKING_SELECT"ECU uses select() where possible for two purposes:1. wait on a tty (comm line) read with timeout -and-2. timeout (nap replacement).If you have a working select, use -DWORKING_SELECT.The Configure procedure does the job for you for systems I know about.SCO XENIX V/386 Release 2.3.1 (and evidently 2.3.2) have abroken-dead, yet fixable, BSD-style select() feature. Also,select() is missing from libc.a. While ecu does not *require*select(S), it is much more efficient to use it. The x386selsubdirectory in this release has information (thanks tocsch@netcs, ivar@acc, and ag@elgar) on how to fix the kernel andto add select() to libc.a. You'll have to add WORKING_SELECT toconfig.local if you do this.Select(S) is fully functional in SCO UNIX 3.2.0. I am unsure of ODT1.0/UNIX 3.2.1. It is broken in ODT 1.1/UNIX 3.2v2. It does workin 3.2v4/ODT 2.0.I found it in /usr/lib/libinet.a on the ISC system I used tocompile for ISC. It works fine there. I automatically putWORKING_SELECT into the Makefile.It works fine on the Sun and SVR4, naturally.3. SCO MULTISCREEN BUGThere has been a bug in the multiscreen driver for some timewherein a MEDIA COPY (screen dump) sequence ("ESC [ 2 i") leavesthe "ESC [ 2" part "active". When a screen dump (Cursor 5)command is given, I do the screen dump, then send a "l" to thescreen to work around the bug ("ESC 2 [ l" unlocks the keyboard,essentially a no-op). If and when it gets fixed, you'll see an"l" show up on your screen after a screen dump sequence. To fixthis, comment out the#define MULTISCREEN_DUMP_BUGat the top of ecuscrdump.c.The bug remains in place for every SCO product from XENIX 2.0.6through UNIX 3.2v4. It is a minor nuisance and there are a greatmany other things they have fixed/improved in these years thatwere much more important.Note that from multiscreens, screen dump produces a dump of theactual screen contents, including ecu-generated output. Whenusing a non-multiscreen terminal, screen dump dumps only theshared memory virtual screen as received from the host.If, at a multiscreen, you wish a screen dump free of ecu output"pollution," use Shift-Tab (BkTab) to redraw the screen, thenperform the screen dump. If you are not on a multiscreen, then thescreen dump comes from the (sometimes inexact) screen memoryrepresentation and this step is not necessary.4. GCCIn case you didn't know, GCC is a great C compiler. It generatesexcellent code and gives excellent diagnostics and warnings.There are more options available than for a Coup de Ville, so youhave to be careful if you get too fancy. I should know -- Ithink I may have done it. With Configure and config.c, I havetried to choose the best option set for ECU and it's utilities.If you want to play around, you can place GCC_EXTRA_CFLAGSdefinitions in a config.local file and experiment away.I tried -pedantic and -ansi under SCO, but there are just too manycomplaints about the development system header files: 1. #ident not allowed in ANSI C (boo hiss on ANSI <again>) 2. unterminated character constant in curses.h (an apostrophe in a -comment- threw gcc for a loop) 3. bit fields not unsigned in machdep.h 4. blah etc. etc.I VERY reluctantly hacked my development system's header files soI could exploit the more critical error checking, but I do notrecommend you do it for purposes of making ECU. Hopefully sinceI have done it and fixed what gcc reported, you don't have to.On the Sun, you cannot use -ansi because of the whole way ioctl2nd parameter defines are built (I refuse to demand you run gcc'sfixincludes to use my software). Compilation proceeds with noerror, but few if any of your ioctls will work. Also, with-pedantic, you get one hundred gazillion complaints about textafter #else and #endif. I hacked my compiler to omit that onepedantic complaint and made a test run with -ansi and -pedantic.As of version 3.15, I get no other warnings outside of somefunkiness in va_args. With that exercise complete, I bid -ansiand -pedantic adieu for a while with a good feeling about thefuture should the ANSI KGB actually seize real power in Cyberdom.Gcc's idea of prototype validity is just too much for me. WithMSC ANSI, prototype arguments are tested at *reference* time not*definition* time. Thus with MSC it is convenient to define afile with all the prototypes in it and include it everywhere. Todo that with gcc, you'd have to include *every* header file youever use just to make sure structs and types referred to aredefined.Other than all this, the code fares pretty well with -ansi-pedantic I guess I am just not prepared for all the variousflavors of "ANSI" yet ... and they grow more numerous ... andthe throathold tightens on venerable code.With the warnings I have enabled, you may get warnings aboutvariables possibly clobbered by longjmp. Worry not. You may getwarnings about /* in comments, but they will be from systemheader files, not my code :-).I have used gcc 1.40, 2.1 and 2.2.2 to compile ecu on SunOS andSCO UNIX. 5. XTERMSIf you are using an xterm to run ecu,1. the maximum geometry is 80x432. 4014 emulation is untested3. you should use the following resources:XTerm*titeInhibit: true # enable screen clear functions normallyXTerm*curses: true # curses bug fixIf titeInhibit fails to work (some versions which use terminfo astheir basis do fail), then remove the ti and te entries from/etc/termcap.The file models/funckeymap has keyboard definitions for a numberof xterm implementations. Use kbdtest3 to determine what keysequences are generated by each function key. If a key producesno output or ambiguous output (Home and End both produce the samesequence), use xev to determine the keysym associated with thekeys in question. Use xmodmap to map the keys to uniquesequences. For instance, on the SunOS MIT server, IPX keypresses of Home and End produce:Home:KeyPress event, serial 13, synthetic NO, window 0xd00001, root 0x8006d, subw 0x0, time 2225786294, (124,70), root:(385,331), state 0x0, keycode 75 (keysym 0xffd8, F27), same_screen YES, ^^^ | `--- name to use with xmodmap XLookupString gives 0 characters: ""End:KeyPress event, serial 15, synthetic NO, window 0xd00001, root 0x8006d, subw 0x0, time 2225787104, (124,70), root:(385,331), state 0x0, keycode 119 (keysym 0xffde, R13), same_screen YES, ^^^ | `-- name to use with xmodmap XLookupString gives 0 characters: ""Then, choose unique strings to map the keys to. I generally usethe SCO function key sequences (described in the very first entryin the distribution model/funckeymap). Construct XTerm translationsfor the chosen sequences. An example for Home (F27) and End (R13)is shown below.XTerm*VT100*Translations: #override\ <Key>F27: string(0x1b) string("[H") \n \ <Key>R13: string(0x1b) string("[F") \n \ Shift<Key>Tab: string(0x1b) string("[Z")Included in the above is a mapping for "backwards Tab," Shift Tab.Most servers map Shift Tab to generate the same as unshifted Tab(or not mapped at all).Run kbdtest3 and see if all keys now produce a unique sequence.If not, repeat the above process until you have each key producinga unique sequence.Sometimes, you just won't be able to get a particular key to work.For instance, one X server I used refused to generate an event forShift Keypad 5 (Shift<Key>KP_5). In these cases, you will have tochoose another key, perhaps a higher numbered function key. Likewise,if you are using a keyboard unaffected by the True Blue Path,you may not have a key marked "Home" or "End" (I pity you :-> heh):choose a replacement you are unlikely to need otherwise.6. SCO UNIX MEMMOVE() AND GCCUse of memmove has been eliminated. See memmove/README for somehistory.7. FAS/iFor the brave, an instrumented version of FAS 2.08 is includedwith this release for those who need driver instrumentation atthe cost of performance and portability. It is not supported (DoNot Contact Uwe Doering). I am not at all interested in startinga new tty faction. Uwe has done a brilliant job of striking abalance between compatibility and performance. I only name thisthing FAS/i to show the derivation from FAS while marking it asdifferent.8. EXCEL LOGFILE INTERFACEThe excel logfile utility posted to comp.sources.misc for ECU 3.0remains compatible with this release of ECU.9. KBDTEST3This program is included to help you inspect your keyboard formaking funckeymap entries or for preparing you to ask for helpfrom me in getting your keyboard functional. cc -o kbdtest3 kbdtest.c run it, following the instructionsOnce you have installed a new funckeymap, the ECU interactivecommand "kbdtest" may assist in verifying it works.I would appreciate your mailing me the output file (kbdtest3.out)from each keyboard you try out regardless of what you do otherwise(if your keyboard is not a SCO multiscreen or ISC virtual console).This will assist me in making funckeymap entries for futuresreleases.-------------------------------------------------------------------------This program, it sources, objects and utilities are placed in thepublic domain.Warren H. Tucker wht@n4hgf.Mt-Park.GA.US {gatech,emory}!n4hgf!whtTuckerWare (404)587-5766150 West Lake DriveRoswell, GA 30075
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -