[net.arch] smarter terminal device drivers

mac@uvacs.UUCP (Alex Colvin) (04/25/85)

The suggestion of (101@daisy) to have the tty driver automatically switch break
tables isn't just a useful generalization.  It's necessary to make the break
tables work.  Everyone seems to assume that the process can be scheduled, run,
process the input, and make a system call with a new break table, before the
next character arrives.  This works fine on small machines with slow input, but
even UN*X falls down here when the load is heavy.

Allowing user programs to provide the break tables and transition rules is
fairly elegant, and amounts to allowing them to program the input drivers.
However, allowing user programs to hang arbitrary subroutines onto operating
system hooks (in LISP terminology) isn't always a good idea.  On time-sharing
systems this creates headaches for security.  Here we are also assuming that the
tty driver is executing on the same machine.

On *my* company's operating system we had a separate computer ("front end")
running the tty drivers.  No overlap in address space, not even a common
instruction set.  Furthermore, during the system's evolution at least four
different machine architectures were used for front ends.  It was suggested that
we provide a secure, common, interpreted instruction set for user-written tty
interfaces.  The solution adopted at Dartmouth was to do this in a micro stuffed
into the terminal itself.

						mac the na"if

jack@boring.UUCP (05/01/85)

Providing multiple break/echo tables and transition rules
isn't necesary if you delay echoing etc. until the character
is being read.
This doesn't mean that you have to wait until it is transferred
to user space, only until the user program has done a read.
Scenario :
User		Kernel			User program.

Type A		Store it.
Type B		Store it.
					Read 80 chars, terminate on ' '
		Echo A and B
Type C		Echo C and store it.
Type ' '	Store ' ' and echo it.
		Copy 'ABC ' to user space.
		Wake user up.

Note that it is debatable whether the space should be echoed.
I think that it should, since the user program can make provisions
not to echo it (assuming there are both an 'echo map' and a 'break map'.

I think that delayed echo is usually a neat feature, since you
can't mess up your screen by typing ahead to a program that
doesn't expect it, and that it will easy the implementation
of a break- and echo-map.


-- 
	Jack Jansen, {decvax|philabs|seismo}!mcvax!jack
	The shell is my oyster.

hmm@unido.UUCP (05/02/85)

A minor problem with the invisible type-ahead:
You cannot easily correct errors you made when typing ahead.
Maybe there should be a possibility to turn this off, i.e,
make it echo when the character is typed.

	Hans-Martin Mosner
	Universitaet Dortmund (Germany)
	ihnp4!hpfcla!hpbbn!unido!hmm 
	      seismo!mcvax!unido!hmm