Subject: dual headed fun
To: None <port-hp300@NetBSD.ORG>
From: David Carrel <carrel@cisco.com>
List: port-hp300
Date: 10/01/1995 10:35:31
------- =_aaaaaaaaaa0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <19936.812568015.1@cisco.com>

Recently I got my hp380 running with TWO heads.  I thought I'd mention it
here in case anyone else is intertested.

First, you have to get the hardware configured.  I am using catseye
graphics cards.  The cards are normally set to scode 1.  I set the second
card to scode 193.  (Use the only dip switches on the card.)  Since control
registers are memory mapped and the address can't be configured, the scode
has to be greater than 132 so that the card moves up into DIO 2 space.  (Or
so I'm told, Thanks Jason).

Next NetBSD needs to be configured for two heads.  I simply added a new
line in the config for "grf1 at scode?".  The ITEs figure out how many to
build based on the GRFs so you don't need to mess with that.  Then create
/dev/grf1.

Next configure X.  You need to create a /usr/X11R5/lib/X11/X0screens file
with two lines:
	/dev/grf0
	/dev/grf1

And then it still won't work.  The X server has a bug in it.  I'm including
a patch below.  With the patch, X starts up and when you move the mouse off
the side of one screen, it appears on the other.  The two heads are :0.0
and :0.1 and most window managers work beautifully by simply managing two
screens.  I'm running tvtwm, so I have one window manager running and two
virtual desktops.  There is a copy of the Xserver at
	ftp://ftp.cisco.com/carrel/XhpBSD

One problem remains.  When the mouse moves from one screen to the other, it
leaves a mouse turd on the old screen.  (The technical term "turd" comes
from Jason Thorpe.)  The turd goes away when you move the mouse back, but I
still don't like it.  I get mouse turds in some other programs, so I'm
going to dive in and try to fix this one.  Seems to be a problem in the
mouse re-draw stuff, and this server code has had troubles there before.

I'll also put out a new set of sources and binaries based on the 1.1
release after that comes out.

Enjoy

Dave


------- =_aaaaaaaaaa0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <19936.812568015.2@cisco.com>
Content-Description: multi-X patch

*** server/ddx/hpbsd/topcat/tcscrinit.c.orig	Sat Jan  4 00:23:33 1992
--- server/ddx/hpbsd/topcat/tcscrinit.c	Sun Oct  1 09:59:55 1995
***************
*** 152,159 ****
--- 152,161 ----
      VisualRec *visuals;
      DepthRec *depths;
      
+ #if 0
      if (hpfbGeneration != serverGeneration)
      {
+ #endif
  	numVisuals = 1;
  	visuals = (VisualRec *) xalloc(numVisuals*sizeof(VisualRec));
  	if (numPlanes == 1)
***************
*** 187,194 ****
--- 189,199 ----
  		depths[i].vids[0] = visuals[0].vid;
  	    }
  	}
+ #if 0
  	hpfbGeneration = serverGeneration;
      }
+ #endif
+ 
      if (!mfbAllocatePrivates(pScreen,
  			     &cfbWindowPrivateIndex, &cfbGCPrivateIndex))
  	return FALSE;

------- =_aaaaaaaaaa0--