[comp.binaries.atari.st] v01i051: uw -- UNIX Windows for the ST part 01/04

koreth@ssyx.ucsc.edu (Steven Grimm) (05/01/88)

Submitted-by: ucbvax!ihnp4!laidbak!katzung (Brian Katzung)
Posting-number: Volume 1, Issue 51
Archive-name: uw/part01

[This is a pretty nifty program.  I wish it worked in color (but it does
 run fine under OmniRes.) -sg]

This is part 1 of 2.  This article contains the README for the
client (Atari) side, and the address of the person to contact
for a copy of the server (Unix (tm)) side.

			**** Client Information ****

		UW (Unix (tm) Windows) for the Atari ST

This program was written by Hans-Martin Mosner at the University of
Dortmund in West Germany.  It has since been enhanced by Brad Bosch
and Brian Katzung at Lachman Associates, Inc., in Naperville, Illinois.
We have added quite a lot.  The source code is now about three times what
we started with.  This version seems stable enough to distribute.  We
have a newer, less stable version which supports kermit file transfer in
a uw window, keyboard and mouse locking, subprocess execution, and other
enhancements.  We would like people to try the more stable version and let
us know if any bugs are found.  Since we are still actively developing this
code, we would like to maintain fairly tight control on the source code,
although we would be glad to have help developing new features.  If you have
specific ideas for new features and would like to help, please let us know.
We could send the current source code out to a small number of people willing
to contribute in its development.  We plan on distributing the source code
once our development effort slows down a bit.

We have include a README file which was included with the source code that
we started from.  Please refer to this for more information on the history
of this code.  We have recently tried to contact Hans Martin-Mosner, but
have received no response from his last known address.  Does anyone know
how to get mail to him?

Note that this disk represents a beta test version, and is provided on
a strictly as-is basis, and we assume no responsibility or liability
for any aspect of this software.

This version of uw provides only adm31 emulation and the most basic
UW protocol.  The adm31 emulation has been extended slightly.  See
the end of the Features section for a description of the extensions.

Features added by Brad Bosch and Brian Katzung:

	o Jump scrolling occurs if screen updates can't keep up with
	  transmission from the host.  This and other changes improves
	  screen update speed greatly.

	o The input window may be different than the top window.

	o A printer copy of output to each window may be enabled or
	  disabled on a window-by-window basis in various flavors.

	o <Shift><Help> sends a break.

	o There is a menu item to reset flow control if the Atari and
	  the host get out of synchronization.

	o Fonts "windalt.fnt", "windoth.fnt", and "windtny.fnt" are
	  supported in addition to "windstd.fnt".  The "windtny" font is
	  small enough to allow four 24 x 80 windows on the screen without
	  overlapping.

	o The smaller system font is offered in addition to the larger
	  one.  Some of the characters in the smaller font are "improved"
	  to increase readability.

	o The user may now select whether or not a window will be
	  "topped" when a ^G (BEL) is output to it.

	o The user may choose to have ^G (BEL) flash the screen, ring
	  the bell, neither, or both.

	o When not selecting an input window, pressing the right mouse
	  button on the menu bar toggles the menu bar sensitivity.

	o The close-box works even when the UW protocol is not running.
	  This is useful for changing the font size or other options.

	o The RTS (request to send) and DTR (data terminal ready) lines
	  can be cleared and asserted.

	o Function keys can be used and defined up to 40 characters each.

	o Function keys and other global option values can be saved and
	  loaded.  A file called "win.cnf", if present, is read at startup
	  time.

	o The right mouse button can be used to copy text from the screen
	  and send it to a window as keyboard input.  Click twice on a
	  window border to send copied text.  Click once on the boarder to
	  select the window for input.  Select text by dragging with the
	  right button pressed.  Inside a border, a single right button
	  click selects a word and a double click selects a line.

	o Emulation window size can now be selected when a window is opened.
	  The fixed sizes available in the menu can be changed with a resource
	  editor without recompiling.  Default sizes are font dependent.

	o A window menu item was added to allow the bottom window to be sent
	  to the top even if it is competely hidden.  Another item sends the
	  top window to the bottom.  The latter is somewhat slow due to
	  shortcomings in GEM.

	o The main keyboard digit keys when used while the alt key is down
	  will select that window number to be the top and keyboard input
	  window.  The first window is alt-1, the last is alt-7.  Windows
	  are numbered as gem numbers them.  Alt-key bindings for lower
	  case letters are scanned from the menu strings in the resource
	  file.  These bindings are indicated by the ^E (close box)
	  character.

	o A window menu item was added to shrink the current window to an
	  iconic size.  The second-from-the-top non-iconic window becomes
	  the current window.  The fuller box is used to reverse the process.

	o An option is now available to cause new windows to be created
	  without the sliders and arrows. The title bar (and close and
	  fuller boxes) may also be eliminated by another option.  Menu
	  items have been added to support most of the functionality lost
	  when the window controls are turned off.

	o Additional help information was added to the about dialog.

	o A variable called "locpath" contains the name of a directory to
	  scan after the current directory when looking for configuration
	  and font files.  The string is 64 bytes long and defaults to
	  c:\bin.

	o An RS232 configuration dialog has been added.  There is no pro-
	  vision for putting this information in the configuration file.
	  Bug view:  There is no auto-configuration.  Feature view:  Changes
	  persist across executions.

	o One can now capture host output to a file on a per-window basis.
	  Capture mode is terminated by setting an empty file name.

Extensions to Adm31 emulation:

	o If the host sends a window the sequence ESC [18t, the window will
	  respond with ESC [8;<rows>;<cols>t, where <rows> and <cols> specify
	  the window's size in characters.

	o The insert line and delete line escape sequences (ESC E and ESC R,
	  respectively) allow a repeat count (ie, ESC 5E inserts 5 lines).

Bugs fixed:

	o Exiting in "fast" mode used to leave a window open.  The
	  system would crash on the next run unless you had returned
	  to the desktop.

	o Actions on windows now check that there are windows to act upon.

Known bugs:

	o Because of the extra memory used in the jump scrolling
	  algorithm, the bottom row of pixels of an earlier line
	  sometimes appears immediately below the title bar.

	o GEM doesn't let you completely eliminate the menu bar and
	  increase your workspace.

	o Desk a
ccessories sometimes leave damage on the screen.

	o GEM doesn't send "top" messages to the top window, so you
	  can't use the left mouse button as a short hand to select
	  the top window for input.  Use the right button on the window
	  title bar instead.

	o The rsconf() baud rates listed in the manual as 75 and 50 baud
	  really result in system timer settings for 120 and 80 baud.
	  The RS232 configuration dialog allows you to set these two baud
	  rates, but decodes them as 300 or 200 baud, respectively.

	o The RS232 configuration code uses some trickery to determine the
	  current port configuration.  Some parts of this code may need to
	  be turned off or adapted to run on other hardware or if system
	  calls stop returning undocumented values.

		    **** Server Information ****

The latest Unix(tm)-side server that we know of is version 3.4
(dated September 30, 1986).  The author and contact person is:

	John D. Bruner
	ARPANET/MILNET: jdb@s1-c.ARPA
	UUCP: {seismo,ut-sally,dual,lll-crg}!mordor!jdb


-- Brian Katzung  {ihnp4,spl1}!laidbak!katzung
   Brad Bosch	  {ihnp4,spl1}!laidbak!brad

   Lachman Associates, Inc.
   1901 North Naper Blvd.
   Naperville, IL 60540