Path: utzoo!utgpu!watmath!watdcsu!magore From: magore@watdcsu.waterloo.edu (Mike Gore, Institute Computer Research - ICR) Newsgroups: comp.os.minix Subject: Re: Problems with RS232 stuff in Atari Minix Message-ID: <5431@watdcsu.waterloo.edu> Date: 16 Jan 89 21:28:24 GMT References: <8901121341.AA16586@decwrl.dec.com> <366@lzaz.ATT.COM> <1090@ditsyda.oz> Reply-To: magore@watdcsu.waterloo.edu (Mike Gore, Institute Computer Research - ICR) Organization: U. of Waterloo, Ontario Lines: 28 Hi, Just a few notes. Re: comments on enable/disable on many unix systems. These utilities also send a HUP signal to init and _that_ is what causes init to reread /etc/ttys. There is a common trick one can do if you want to speed up serial I/O - on many older unix systems it's called pseudo-dma. You basically make a _simple_ block I/O interrupt routine that does serial I/O - then transfer whole blocks it collects, or sends, to and from the upper level tty task/structures. A block is either N characters or X system clock ticks - which ever comes first. The idea is that it is MUCH faster to transfer blocks between tasks [ or install into a queue ] then single characters [ nearly the same overhead if done right ] . Note, other then simple character I/O the only "complex" task at this lower level is flow control - all character transformations, signaling [ say SIGINT in V7,etc ] and even echoing are controled from the upper level tty code. [ When I say echoing I don't mean the actual I/O to the device rather I mean that the ttys routine only tansforms the block if nead be and then passes it back to the lower level to be sent out. Of course you have to adjust N and X so that the user doesn't see the delay. ] This method also has an advantage that you can help keep machine dependent code out of the the higher level code. Good Luck, # Mike Gore # Institute for Computer Research. ( watmath!mgvax!root - at home ) # These ideas/concepts do not imply views held by the University of Waterloo.