This is the MouseX-II distribution.  It is a port of Consortium
X11R6.4pl3 to run on NetBSD/next68k running on `black' hardware.  It is
for the 2bpp 1120x832 grayscale displays and non-ADB keyboards.

THIS IS PRE-ALPHA QUALITY SOFTWARE.  IT IS EXPECTED TO HAVE LURKING
GOTCHAS AND ROUGH EDGES, AND IS NOT RECOMMENDED IF YOU'RE NOT PREPARED
TO GET YOUR HANDS DIRTY WITH THE CODE.

It was developed on NetBSD 1.4T.  I expect changes required for later
NetBSD/next68k versions to be minimal.

Three kernel patches are required; the patch files are in the
sys-patches subdirectory here.  The patch to nextdisplay.c does three
things: (1) it fixes a bug whereby wscons thinks the screen is a good
deal wider than it actually is (it was incorrectly using the
memory-stride width as the displayed width); it increases the
text-console size from 80x34 as much as possible, to 93x37 (if you
don't want this it's easy to snip out); and it makes mmap() work.  The
other two files are to add a device driver interface that gets keyboard
and mouse events directly off the hardware.  This probably could have
been done via wscons, but following the twisty little maze of function
pointers, all different, looked like more hair than adding an interface
to steal events before wscons sees them.  If someone who actually
understands wscons makes this work through the wscons interface, I'm
sure everyone will be delighted; I know I will be.  This interface
works, but it's ugly and shouldn't be necessary.

The X11/ subtree is the X source directory I use.  TRANSCRIPT is the
build script I use; it assumes the DIST/ subdir is populated.  Since
the files are big, I didn't include them, leaving DIST/ empty;
WHERE_I_CAME_FROM describes where to get the necessary files.  If you
have trouble with them, write me and I can probably arrange to get a
copy to you.  patches/ and patches.localized/ are patch trees to apply
to the X source - see how TRANSCRIPT uses them for full details.

There is a parallel distribution of auxiliary stuff which you may find
useful when working with this code, utilities that I use.  To use my
build scripts unchanged you will need these.

I've probably forgotten tons of stuff.  Please feel free to write me
with your experiences.

New in 0.1.2:

- Fixed bug that tended to make twm (and some other programs) hang,
  especially when picking off a menu.  Particularly nasty in twm,
  because it has the server grabbed at that point.

- Server coredump when the screen saver kicks in believed fixed.

- If you SIGTERM the server, it used to then hang until you touch the
  mouse or keyboard before actually exiting.  This is believed fixed.

- It seems there's more than one variety of non-ADB keyboard out there.
  Fortunately, they're all very similar - or at least all the variants
  I've heard of are.  The major difference is that some of them have a
  rectangular RETURN key with \ and | on a key to the right of the ]}
  key; the others have a RETURN key shaped like a backwards L that
  includes the spot to the right of the ]} key, with the \ and |
  characters printed on keypad keys.  The server is designed for the
  former kind, as that's the only kind I have; here's some xmodmap
  input that was sent to me by someone who has the other sort:
	# turn the vol up/down keys into closer replacements
	keycode   9 = backslash bar
	keycode  33 = grave asciitilde
	# add the bar and backslash for the ABP keyboard
	keycode  46 = KP_Equal bar
	keycode  47 = KP_Divide backslash
  I think I have the equivalent of the latter two lines already present
  by default, now; if someone with this style of keyboard could check,
  I'd appreciate it.

- The server claims to have a two-button pointer.  This is the truth,
  and I think it's a very bad idea for the server to lie to clients
  about such things; indeed, I wouldn't mention this at all except that
  a lot of X servers designed for hardware having fewer than three
  buttons on the pointer have kludges of various sorts designed into
  them to try to make up for deficient clients that blindly assume the
  pointer has at least three buttons.  My stance is that this is a
  problem with the clients for making stupid assumptions, not with the
  server for pointing out that those assumptions are stupid.  Doubtless
  someone who disagrees that this is the Right Thing will come up with
  tweaks to fake a third button somehow, especially since some of the
  Consortium clients (such as xterm(!)) make such stupid assumptions;
  that's neither here nor there to me.

Known issues:

- Should get events through wscons, as mentioned above.

- Something's wrong wrt xkb; if you don't use -kb on the server command
  line you don't get input.  (Always?  Sometimes?)  (I thought maybe
  the rework of input involved in fixing the hang-on-SIGTERM would cure
  this; it doesn't seem to have.)

- Has all the same 2bpp protocol issues the first MouseX did.

/~\ The ASCII				der Mouse
\ / Ribbon Campaign
 X  Against HTML	       mouse@rodents.montreal.qc.ca
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B
