

				========================
				X11R6.3 for Geek Gadgets
				========================



Last update: July 9, 1997

Author: Hans Verkuil (hans@wyst.hobby.nl)


This README gives Amiga specific information on the X11R6.3 port for Geek
Gadgets See ftp://ftp.ninemoons.com/pub/geekgadgets for more information on
this project.


This release is the first official release. The previous releases on the
Geek Gadgets 1 and 2 CDROMs were betas.

The X server should run on standard Amigas that have a 68020 CPU or higher.
Standard OCS/ECS/AGA modes up to 256 colors (for AGA) are supported.  There
are also drivers for CybergraphX systems and Picasso boards that support 8,
15, 16 and 32 bit screens.  New drivers can be easily added if someone
writes them.  See the XServer/hw/amigaos directory for documentation
(mostly in the comments in Amiga.h) and how the current drivers are
implemented.

Besides this X port you also need the following packages in order to make
full use of this port:

ixemul-47.0 library

fifo-38.4 handler (needed for Xterm)

ixpipe-handler (part of the ixemul distribution)

a2ixlibrary-2.0 binary archive (contains tools for linking with shared
libraries, only needed if you want to program or port X programs)

pdksh-4.9 (also needed for Xterm)

Note that 'sh' (the PD Korn shell) should be made resident. It will not
work properly otherwise.

Not all X programs from the X11R6.3 distribution are guaranteed to work,
many are untested. No doubt several of these programs use the dreaded
'fork()' call. In some of these programs that call can be replaced by
'vfork()', but probably not all.

The X server can accept both TCP/IP connection requests and local requests
through the Unix Domain socket mechanism provided by ixemul-45.1 and up.
If you don't have a TCP/IP networking package running, then you must start
the X server with the option '-pn' (for Partial Network).  If you set the
DISPLAY environment variable to ":0", then you're ready to run the X
server.

If you are going to port X clients to the Amiga, then you should limit your
patches to the absolute minimum. The current X port is very stable because
very few sources had to be patched. In general, if you have to make a
change, think again and check if it isn't a bug from ixemul.library, or if
you have made another mistake somewhere else.

It turns out that the stack requirements of most X programs are fairly
modest, and a stack of 75 Kb should suffice.  However, there may be X
programs there are not so stack-friendly.  For those programs you can set
the stack requirements using the 'ixstack' utility (part of the ixemul
distribution).  Since the X shared libraries cannot be compiled with
-mstackextend, there is little point in compiling your own X client with
automatic stackextension.  I'd appreciate feedback on optimal stacksizes.

A small tool WaitForX is also provided that you can run after starting the
server and before starting any other client. It will wait until the server
is ready to accept connections.

Check the Xgeek manual page for a list of available options, and the manual
pages of the available video drivers for instructions how to specify the
kind of screen you want.

In order to get X up and running you need to do the following:

1) Add "setenv DISPLAY :0" to your user-startup
2) Add "path gg:X11R6.3/bin" to your user-startup
3) Add "resident bin:sh force" to your user-startup
4) Add "/gg/X11R6.3/bin" to your PATH setting so sh can also find the X programs.

There are various methods to actually start the server and clients: see for
example the 'xinit' and 'startx' manual pages. Personally I my own small
Amiga shell script:

run x -pn -pri 1
WaitForX
run twm

Primitive, but it does the job and this has always been sufficient for my
needs.


TO DO
=====

- Add hardware (blitter) support
- Improve keyboard handling: dead key and alt-key handling to obtain
  Latin-1 characters is not yet supported.
- Add hardware support for PEX5 and the CyberVision 64/3D card.
