[net.micro.mac] uw - multi-window terminal emulator

jdb@mordor.UUCP (John Bruner) (07/20/85)

In the past I have seen a number of articles in "net.micro.mac"
suggesting that someone should implement a multiple-window
terminal emulator on the Macintosh.  I have done so (for 4.2BSD
UNIX), and I am posting the result to "net.sources.mac".  (The
4.2BSD system must provide IPC and pseudo-terminals, but no
kernel changes are required.)

My program is called "uw".  It implements up to seven independent
terminal sessions on a Macintosh connected to a 4.2BSD host by a
serial line.  (It also works over dialups; however, it may not work
over a network because XON/XOFF flow control does poorly in network
environments.)  It emulates an ADM-31 terminal (a "smart" ADM-3A).
The UNIX side is handled by the programs "uw" (server) and "uwtool"
(used to start new windows from the UNIX end).

The distribution includes the source for the 4.2BSD programs
(imagine, *source* in "net.sources.mac":-).  I've only used it on
a VAX, but it should work on any 4.2BSD host.  I believe it can be
made to work on any UNIX which supports something like pseudo-
terminals.  (For instance, I believe I could make it work on the
PDP-11's in the Purdue Engineering Computer Network.  [Sorry.  Those
who know me understand why I had to put that in.])  The protocol
is simple (and is described in a header file included in the
distribution), so perhaps someone will try an implementation for
System V (?).

Since "uw" uses pseudo-ttys, I recommend that potential users
contact their system administrators about the effect on the
available ptys.  A UNIX system with only 16 pty's won't support
very many copies of "uw" running at once.

I believe "uw" will run on a 128K Macintosh, but I don't have one
available to test it.

There is no warranty, express or implied, associated with this
program.  In particular, I cannot promise that it is free from
security loopholes.

There are more things I'd like to do with this program.  If the
feedback is positive I'll probably post newer versions later.
-- 
  John Bruner (S-1 Project, Lawrence Livermore National Laboratory)
  MILNET: jdb@mordor [jdb@s1-c.ARPA]	(415) 422-0758
  UUCP: ...!ucbvax!dual!mordor!jdb 	...!seismo!mordor!jdb

jimb@amdcad.UUCP (Jim Budler) (07/23/85)

In article <2719@mordor.UUCP> jdb@mordor.UUCP (John Bruner) writes:
>...
>					I have done so (for 4.2BSD
>UNIX), and I am posting the result to "net.sources.mac".  (The
>4.2BSD system must provide IPC and pseudo-terminals, but no
>kernel changes are required.)
>...
>I believe "uw" will run on a 128K Macintosh, but I don't have one
>available to test it.
>...

Oh, does it!!!! It works just fine on a 128K!  Thank you!!
-- 
 Jim Budler
 Advanced Micro Devices, Inc.
 (408) 749-5806
 UUCPnet: {ucbvax,decwrl,ihnp4,allegra,intelca}!amdcad!jimb
 Compuserve:	72415,1200

"... Don't sue me, I'm just the piano player!...."

maddog@tolerant.UUCP (Bill Arnett) (07/30/85)

Hurray!  Bravo!  2^32 cheers!

This is by far the most useful program that has been posted to the net to date.
Congratulations to John Bruner for a job well done.  

I do have a few of suggested enhancements:
    -  include an Edit menu (for DAs) and support copy and paste (ala MacT)
    -  horizontal scroll bars so that tall skinny windows can be used more
	effectively
    -  save couple of screenfuls of 'lines off the top' and provide vertical
	scroll bars
    -  window 'zoom':  double click on the title bar of a small window
	increases it to full size; double click on a full size window restores
	it to its original size.
    -  a way to change a window's title
    -  when a window is resized, change the termcap of the associated unix
	session so that editors like vi don't get confused.
    -  interpret ^S and ^Q locally (as it is they work too slowly to be useful)
    -  implement some sort of priority scheme so that long outputs in one
	window do not slow down echoing in another (this would be essential
	if a download was going on in one window and editing in another).

I have been using uw successfully for several days now.  I have had only one
real problem:  sometimes when I start up a new window, there is no prompt.
Killing the window doesn't help: when it is created again there is still no
prompt.  Even quiting the whole program (shutdown; logout; quit) sometimes
doesn't help.  [We run 4.2BSD on a 780].

Again, thanks for a great tool.  New versions are eagerly awaited!
-- 
  Bill Arnett             		{ucbvax}!tolerant!maddog
  Tolerant Systems, Inc. San Jose
  408/946-5667

brian@ut-sally.UUCP (Brian H. Powell) (08/01/85)

> Hurray!  Bravo!  2^32 cheers!
> Congratulations to John Bruner for a job well done.  
   Yes indeed!
 
> I do have a few of suggested enhancements:
	Which I would like to make my own comments about:

>     -  include an Edit menu (for DAs) and support copy and paste (ala MacT)
   Yes, this would be very nice to have.  I miss it from MacTerm.

>     -  horizontal scroll bars so that tall skinny windows can be used more
> 	effectively
   Not imperative, but nice.

>     - interpret ^S and ^Q locally (as it is they work too slowly to be useful)
   Don't do this!!! (***Threat***)  I can't stand not being able to use emacs
effectively because some silly little terminal program thinks it knows what
to do with a ^S.  I can use various UNIX utilities to scroll only a little
bit at a time.

>     -  save couple of screenfuls of 'lines off the top' and provide vertical
> 	scroll bars
   I could do without this.  I don't like the way MacTerm uses up 99.9% of
memory and spins the disk.  Again, I can use various UNIX utilities to help
me use a limited-size screen effectively.

> [ other recommendations omitted ]
The other recommendations were mainly bells and whistles I don't think
are needed, but maybe nice to have.

>   Bill Arnett             		{ucbvax}!tolerant!maddog
>   Tolerant Systems, Inc. San Jose
>   408/946-5667


Brian H. Powell      brian@ut-sally.{ARPA,UUCP}

		 U.S. Mail:		 Southwestern Bell
		P.O. Box 5899		451-0842
		Austin, TX 78763
					 AT&T
					(512) 451-0842

grady@ucbvax.ARPA (Steven Grady) (08/03/85)

In article <125@tolerant.UUCP> maddog@tolerant.UUCP (Bill Arnett) writes:
>    -  when a window is resized, change the termcap of the associated unix
>	session so that editors like vi don't get confused.

4.3 BSD will have a new signal, SIGWINCH, which is sent to indicate a
change in window size.  Of course, this will be more interesting when
4.3 actually gets distributed...

	Steven