
			README
         Hewlett Packard Server Sample Implementation

******************************************************************************
*   Copyright (c) 1986, 1987 by Hewlett-Packard Company
*   Copyright (c) 1986, 1987 by the Massachusetts Institute of Technology
*   
*   Permission to use, copy, modify, and distribute this
*   software and its documentation for any purpose and without
*   fee is hereby granted, provided that the above copyright
*   notice appear in all copies and that both that copyright
*   notice and this permission notice appear in supporting
*   documentation, and that the name of M.I.T. not be used in
*   advertising or publicity pertaining to distribution of the
*   software without specific, written prior permission.
*   
*   HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD
*   TO THIS SOFWARE, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
*   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
*   PURPOSE.  Hewlett-Packard shall not be liable for errors 
*   contained herein or direct, indirect, special, incidental or 
*   consequential damages in connection with the furnishing, 
*   performance, or use of this material.
*   
*   This software is not subject to any license of the American
*   Telephone and Telegraph Company or of the Regents of the
*   University of California.
*   
******************************************************************************

	======================
	DISPLAY CONFIGURATIONS
	======================

	The Hewlett-Packard sample server implementation supports the 
	following display configurations:

	Nickname	HP part number
	Topcat		98???
	Catseye		98550
	Renaissance	98720

	Descriptions:
	  to be added

	=======================
	MULTIPLE SCREEN SUPPORT
	=======================

	The HP X11 sample server supports multiple physical screens
	connected to a single server program.  The file
	/usr/lib/X/Xscreens is read by the X11 server to determine
	information about the system screen configuration.

	Each screen is specified by a line in the file.  A line looks
	like:

	<screen type> <screen index> <path> <type specific options>

	Where:

	<screen type> is either the HP model number or the coloquial
		      nick-name for the device.  This tells the X11
		      server what kind of device you're using.

	<screen index> is the X11 protocol index used to identify each
		       screen.

	<path> is the HP-UX device path-name associated with the screen.

	<type-specific-options> have meaning depending upon the type of
		       device.

	The main pointing device starts out in screen 0.  It is assumed
	that the screens are physically placed from left to right in the
	order they appear in the file.  The main pointing device roams
	between the screens as if they were connected together in a ring
	by their left & right edges.  Moving left from the left- most
	screen will place the pointing device on the right-most screen
	and and moving right from the right-most screen will place the
	pointing device on the left-most screen.

	Example Xscreen files:

	Here is the Xscreen file for a one-screen Topcat-based X11 system:

		Topcat 0 /dev/crt

	Here is the Xscreen file for a three-screen system where the Topcat
	is on the left, the Moberley is in the middle, and the Gatorbox is
	on the right:

		Topcat 0 /dev/crt
		Moberly 1 /dev/moberley
		Gatorbox 2 /dev/gatorbox

	Here is the Xscreen file for a two screen system where the
	Renaissance is on the left, and the Topcat is on the right, 
	and the Topcat is display 0:

		Renaissance 1 /dev/crtren
		Topcat 0 /dev/crt

	Notes:

	There can't be more than MAXSCREENS screens.  MAXSCREENS is a
	compile time constant defined in server/include/misc.h.  It is
	set at 3 at the time of this writing.


	=================
	COMPILATION NOTES
	=================

	If you are trying to compile an HP server, presumably you
	are doing so on HPUX.  HPUX is a combination of ATT SYSV
	and Berkeley versions of UN*X.   It is recommended that,
	as far as the makefiles are concerned, that you treat
	HPUX as Berkeley (i.e. do not define SYSV).  You 
	may run into the following:

	Many programs refer to "rindex()" and "index()" which are not in
	the HPUX /lib/libc.a library (HPUX provides "strrchr" and
	"strchr" instead).  The server code is fixed by the Berklib.o
	file in os/hpux.  The clients are fixed by the Berklib.o in
	libX.a.

	Many of the .c files include <strings.h>, while the normal
	hp-ux systems have only "string.h" in the /usr/include directory.
	Doing a 
	   ln /usr/include/string.h /usr/include/strings.h
	fixes the problem.

	Some modules include "sys/time.h".  HP-UX only provides 
	/usr/include/time.h.  The fix is to
	   ln  /usr/include/time.h /usr/include/sys/time.h.


