paradis@encore.UUCP (Jim Paradis) (12/28/87)
Here's a progress report on my new-from-the-ground-up TTY driver: it's working. In fact, I'm typing this message using my MINIX PC as a terminal! All that remains now are code cleanups, fixing some glitches in the ANSI support, and performance tuning. I explored numerous workarounds to the message-deadlock problem outlined earlier in this newsgroup, and it turns out that a reasonably elegant workaround requiring minimal impact on other OS source files can be had by using a third party to deliver certain classes of messages. To explain: There are two types of message exchanges that can happen between the FS and the TTY driver: request-response exchanges, and asynchronous responses. Request-response is obvious: the FS sends a message asking for something and the TTY driver does some work and sends a response back. An asynchronous response is an *unsolicited* message from the TTY driver (e.g. a message to indicate that a previously blocked I/O is now complete). These are the messages that can cause problems, as they can "collide" in the message channel with a request message coming down from the FS. My workaround was to create a second channel specifically for asynchronous responses by adding a new system task, called TTASYNC. This task is merely a message relay: instead of the TTY driver sending async messages directly to the filesystem, it sends them to TTASYNC, which in turn sends them to the filesystem. Anyhow, watch this space for a posting of my driver! +----------------+ Jim Paradis linus--+ +--+-------------+ | Encore Computer Corp. necntc--| | | E N C O R E | | 257 Cedar Hill St. ihnp4--+-encore!paradis | +-------------+--+ Marlboro MA 01752 decvax--| +----------------+ (617) 460-0500 talcott--+ ...coated with sesame seeds, and garnished with lark's vomit!